@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&family=Noto+Sans+JP:wght@400;500;700;900&display=swap');

:root { --black:#0b0b0b; --white:#f5f5f5; --yellow:#ffd600; --line:rgba(245,245,245,.22); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--black); }
body { margin:0; background:var(--black); color:var(--white); font-family:'Montserrat','Noto Sans JP',sans-serif; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; }
a { color:inherit; text-decoration:none; }
.nav { position:fixed; inset:0 0 auto; z-index:10; display:flex; align-items:center; justify-content:space-between; height:76px; padding:0 4vw; border-bottom:1px solid rgba(245,245,245,.14); background:rgba(11,11,11,.55); backdrop-filter:blur(30px); -webkit-backdrop-filter:blur(30px); font-size:11px; letter-spacing:.14em; }
.brand { font-weight:500; white-space:nowrap; }.brand strong { color:var(--yellow); font-weight:700; }.nav-links { display:flex; gap:2.6vw; color:rgba(245,245,245,.68); }.nav-links a:hover { color:var(--white); }.contact { color:var(--yellow); border-bottom:1px solid var(--yellow); padding-bottom:4px; }
.hero { position:relative; display:flex; min-height:100svh; align-items:center; overflow:hidden; padding:120px 8vw 80px; }.hero-art { position:absolute; inset:0; background:linear-gradient(90deg,rgba(11,11,11,.95) 0%,rgba(11,11,11,.58) 45%,rgba(11,11,11,.3)),url('paint-art.jpg') center/cover; opacity:.62; mix-blend-mode:screen; }.hero-type { position:absolute; right:3vw; bottom:-1vw; z-index:1; display:flex; flex-direction:column; align-items:flex-end; font-size:clamp(100px,18vw,290px); font-weight:900; line-height:.75; letter-spacing:-.09em; color:rgba(245,245,245,.08); }.hero-type span:nth-child(2) { color:rgba(255,214,0,.17); }.hero-copy { position:relative; z-index:2; max-width:700px; }.kicker,.eyebrow { font-size:11px; letter-spacing:.2em; font-weight:600; }.kicker { color:var(--yellow); margin:0 0 28px; }.hero h1 { margin:0; font-size:clamp(52px,8vw,124px); line-height:.98; letter-spacing:-.08em; font-weight:800; }.hero h1 em { color:var(--yellow); font-style:normal; }.hero-note { max-width:440px; margin:38px 0 0; color:rgba(245,245,245,.74); line-height:2; font-size:14px; }.scroll { position:absolute; z-index:2; right:5vw; bottom:42px; color:var(--yellow); font-size:10px; letter-spacing:.2em; }.scroll span { display:inline-block; margin-left:10px; font-size:16px; }
.section { padding:160px 8vw; border-top:1px solid var(--line); }.wrap { max-width:1320px; margin:0 auto; }.eyebrow { display:flex; gap:18px; color:rgba(245,245,245,.55); margin-bottom:56px; }.eyebrow span { color:var(--yellow); }.section h2 { margin:0 0 48px; font-size:clamp(38px,5.2vw,84px); line-height:1.12; letter-spacing:-.08em; font-weight:700; }.accent { color:var(--yellow); }.lead { max-width:660px; color:rgba(245,245,245,.72); font-size:15px; line-height:2.05; }.principles { display:grid; grid-template-columns:repeat(3,1fr); gap:6vw; margin-top:110px; }.principle { border-top:1px solid var(--line); padding-top:22px; }.principle strong { color:var(--yellow); font-size:44px; font-weight:500; }.principle p { margin:24px 0 0; line-height:1.9; color:rgba(245,245,245,.72); font-size:14px; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:center; }.split h2 { font-size:clamp(36px,4vw,64px); }.split p { max-width:580px; color:rgba(245,245,245,.72); font-size:14px; line-height:2.2; }.art-block { aspect-ratio:1/1.15; background:url('president.jpg') center/cover; filter:grayscale(.8); position:relative; }.art-block:after { content:''; position:absolute; inset:18px; border:1px solid rgba(255,214,0,.65); }.art-block span { position:absolute; z-index:1; left:24px; bottom:22px; color:var(--yellow); font-size:10px; letter-spacing:.18em; }.signature { color:var(--white)!important; margin-top:38px; font-weight:600; }
.company-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0 10vw; border-top:1px solid var(--line); }.company-item { display:grid; grid-template-columns:130px 1fr; gap:20px; border-bottom:1px solid var(--line); padding:22px 0; font-size:13px; }.company-item span { color:var(--yellow); font-size:11px; letter-spacing:.12em; }.company-item p { margin:0; color:rgba(245,245,245,.78); line-height:1.8; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:72px; }.section-heading h2 { margin:0; }.section-heading p { color:rgba(245,245,245,.58); font-size:13px; }.cases { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }.case { margin:0; overflow:hidden; }.case img { width:100%; height:380px; object-fit:cover; filter:grayscale(.75) contrast(1.1); transition:filter .5s, transform .5s; }.case:hover img { filter:grayscale(0); transform:scale(1.04); }.case-2 { margin-top:80px; }.case-3 { margin-top:20px; }.case-4 { margin-top:-30px; }.case-5 { margin-top:50px; }.case figcaption { display:flex; justify-content:space-between; padding-top:16px; border-top:1px solid var(--line); margin-top:16px; font-size:11px; letter-spacing:.1em; }.case figcaption span { color:var(--yellow); }.case figcaption strong { display:block; font-weight:500; }.case figcaption small { display:block; max-width:250px; margin-top:8px; color:rgba(245,245,245,.5); font-size:11px; line-height:1.7; }
.rules { border-top:1px solid var(--line); margin-top:90px; }.rules article { display:grid; grid-template-columns:180px 1fr; gap:30px; padding:36px 0; border-bottom:1px solid var(--line); }.rules article>strong { color:var(--yellow); font-size:clamp(60px,8vw,120px); font-weight:500; line-height:.8; letter-spacing:-.08em; }.rules h3 { margin:0 0 12px; font-size:20px; font-weight:600; }.rules p,.step p { max-width:650px; margin:0; color:rgba(245,245,245,.64); font-size:13px; line-height:1.9; }.steps { max-width:920px; border-top:1px solid var(--line); }.step { display:grid; grid-template-columns:100px 1fr; gap:24px; padding:28px 0; border-bottom:1px solid var(--line); }.step>strong { color:var(--yellow); font-size:28px; font-weight:500; }.step h3 { margin:0 0 8px; font-size:18px; font-weight:600; }
footer { padding:120px 8vw 48px; border-top:1px solid var(--line); color:rgba(245,245,245,.6); font-size:11px; line-height:2; }.footer-mark { margin-bottom:70px; color:var(--white); font-size:clamp(72px,12vw,180px); font-weight:900; line-height:.76; letter-spacing:-.1em; }.footer-mark span { color:var(--yellow); }.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s ease,transform .8s ease; }.reveal.is-visible { opacity:1; transform:none; }
@media (max-width:800px) { .nav { height:64px; }.nav-links { display:none; }.hero { padding:100px 6vw 70px; }.hero-type { right:-3vw; font-size:28vw; }.hero-note { font-size:13px; }.section { padding:110px 6vw; }.principles,.split,.company-grid { grid-template-columns:1fr; }.principles { gap:40px; margin-top:70px; }.split { gap:50px; }.company-item { grid-template-columns:100px 1fr; }.section-heading { display:block; }.section-heading p { margin-top:20px; margin-bottom:50px; }.cases { grid-template-columns:1fr 1fr; gap:28px 12px; }.case img { height:240px; }.case-2,.case-3,.case-4,.case-5 { margin-top:0; }.case-3 { grid-column:1 / -1; }.case-3 img { height:330px; }.rules { margin-top:60px; }.rules article { grid-template-columns:78px 1fr; gap:18px; }.rules article>strong { font-size:64px; }.rules h3 { font-size:16px; }.step { grid-template-columns:58px 1fr; }.footer-mark { margin-bottom:50px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.reveal { opacity:1; transform:none; transition:none; }.case img { transition:none; } }
