:root { --ink:#171816; --paper:#eeece5; --acid:#bdcda7; --line:rgba(23,24,22,.2); --font-serif:"Cormorant Garamond",serif; --font-sans:"Noto Sans JP",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-sans),sans-serif; font-weight:300; }
a { color:inherit; text-decoration:none; }
.header { position:fixed; z-index:100; top:0; left:0; width:100%; height:100px; display:flex; align-items:center; justify-content:space-between; padding:0 4vw; color:#f4f1e9; border-bottom:1px solid rgba(255,255,255,.18); background:rgba(12,13,11,.78); -webkit-backdrop-filter:blur(14px) saturate(1.15); backdrop-filter:blur(14px) saturate(1.15); box-shadow:0 8px 30px rgba(0,0,0,.08); }
section[id],footer[id] { scroll-margin-top:100px; }
.logo { display:flex; align-items:flex-end; gap:9px; line-height:.75; }
.logo span { font:500 38px/1 var(--font-serif); letter-spacing:-3px; font-style:italic; }
.logo small { font-size:8px; letter-spacing:.28em; padding-bottom:3px; }
nav { display:flex; gap:36px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
nav a { opacity:.72; transition:.2s; } nav a:hover { opacity:1; }
nav a.nav-active { opacity:1; }
.language-switch { display:flex; align-items:center; gap:6px; font:500 9px var(--font-sans); letter-spacing:.14em; }
.language-switch button { appearance:none; border:0; padding:5px 2px; background:transparent; color:inherit; opacity:.42; cursor:pointer; font:inherit; letter-spacing:inherit; }
.language-switch button.active { opacity:1; border-bottom:1px solid currentColor; }
.language-switch span { opacity:.35; }
.menu-toggle { display:none; }
.header-contact { font-size:11px; text-transform:uppercase; letter-spacing:.13em; border-bottom:1px solid currentColor; padding-bottom:5px; }
.header-contact span { margin-left:16px; }
.hero { min-height:100svh; position:relative; overflow:hidden; color:#f1eee7; background-color:#111210; background-image:linear-gradient(90deg,rgba(9,10,9,.18),rgba(9,10,9,.04)),url('./images/iw-gold-background.jpg'); background-size:cover; background-position:center; }
.hero:before,.hero-grain { content:""; position:absolute; inset:0; pointer-events:none; }
.hero:before { background:linear-gradient(110deg,rgba(0,0,0,.2),transparent 48%,rgba(192,129,37,.09)),radial-gradient(circle at 70% 75%,rgba(196,170,108,.1),transparent 32%); }
.hero-grain { opacity:.3; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E"); mix-blend-mode:soft-light; }
.hero-copy { position:absolute; left:10vw; right:8vw; top:25%; }
.eyebrow { font-size:10px; letter-spacing:.28em; font-weight:400; }
.hero h1 { margin:3vh 0 7vh; font:400 clamp(90px,14vw,215px)/.67 var(--font-serif); letter-spacing:-.075em; }
.hero-subline { display:flex; align-items:baseline; gap:4vw; margin-left:10vw; white-space:nowrap; }
.hero-works { font-size:clamp(78px,11vw,170px); color:var(--acid); }
.hero h1 em { font-size:clamp(34px,5.2vw,82px); font-weight:400; color:#f1eee7; letter-spacing:-.055em; }
.rotating-word { display:block; min-height:.78em; width:max-content; max-width:100%; font-size:clamp(72px,10.5vw,162px); line-height:.72; animation:word-swap 1.5s ease-in-out; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@keyframes word-swap { 0% { opacity:0; transform:translateY(10px); filter:blur(5px); } 18%,78% { opacity:1; transform:translateY(0); filter:blur(0); } 100% { opacity:0; transform:translateY(-7px); filter:blur(3px); } }
.hero-bottom { display:flex; align-items:end; justify-content:space-between; margin-left:1vw; }
.hero-bottom p { font-size:16px; line-height:1.9; letter-spacing:.08em; }
.circle-link { width:65px; height:65px; border:1px solid rgba(255,255,255,.5); border-radius:50%; display:grid; place-items:center; transition:.3s; }
.circle-link:hover { background:#fff; color:#111; transform:translateY(5px); }
.hero-index { position:absolute; right:4vw; bottom:4vh; font-size:9px; letter-spacing:.2em; writing-mode:vertical-rl; }
.section { display:grid; grid-template-columns:24% 76%; padding:130px 6vw; }
.section-label { font-size:9px; font-weight:500; letter-spacing:.24em; padding-top:13px; }
.section-label span { display:inline-block; margin-right:24px; color:#7b7c75; }
.statement-content .lead { margin:0 0 90px; font:400 clamp(40px,5vw,76px)/1.35 var(--font-serif); letter-spacing:-.04em; }
.statement-grid { display:grid; grid-template-columns:1fr 1fr; gap:8vw; padding-left:20%; }
.statement-grid p { font-size:13px; line-height:2.25; margin:0; }
.manifesto { border-block:1px solid var(--line); padding:22px 0; overflow:hidden; white-space:nowrap; }
.manifesto p { font:400 13px var(--font-serif); letter-spacing:.32em; margin:0; transform:translateX(-2vw); }
.services { background:var(--ink); color:#e8e6df; }
.section-label.light span { color:#777970; }
.services h2,.works h2 { font:400 clamp(58px,7.4vw,116px)/.9 var(--font-serif); letter-spacing:-.05em; margin:0 0 90px; }
.service-list { border-top:1px solid rgba(255,255,255,.2); }
.service-list article { min-height:145px; display:grid; align-items:center; grid-template-columns:8% 34% 1fr 5%; border-bottom:1px solid rgba(255,255,255,.2); transition:.3s; }
.service-list article:hover { padding-left:15px; background:rgba(255,255,255,.025); }
.service-list span { font:400 11px var(--font-serif); color:#898b83; }
.service-list h3 { font:400 clamp(27px,3vw,44px) var(--font-serif); margin:0; }
.service-list p { max-width:420px; font-size:12px; line-height:2; color:#abaea7; }
.service-list b,.capability-grid b { font-weight:300; justify-self:end; }
.works { background:#10110f; color:#eceae3; position:relative; }
.works:before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(150deg,transparent 0 64%,rgba(192,126,35,.08) 64.2%,transparent 65%); }
.works-content,.works .section-label { position:relative; z-index:1; }
.works-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; }
.works h2 em { color:#b6965e; font-weight:400; }
.works-heading > p { max-width:340px; font-size:12px; line-height:2; margin-bottom:100px; }
.capability-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.16); }
.work-card { background:#111; overflow:hidden; }
.work-card img { display:block; width:100%; aspect-ratio:16/8.2; object-fit:cover; filter:saturate(.82) contrast(1.04); transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s; }
.work-card:hover img { transform:scale(1.025); filter:saturate(1) contrast(1.02); }
.work-card-copy { min-height:105px; padding:20px 22px; display:grid; grid-template-columns:50px 1fr auto; align-items:center; }
.work-card-copy span { font:10px var(--font-serif); color:#888; }
.work-card-copy strong { font:400 clamp(23px,2.4vw,38px) var(--font-serif); }
.work-card-copy b { font-weight:300; }
.global { background:#33372f; color:#eceae2; min-height:90vh; position:relative; overflow:hidden; }
.global:after { content:""; position:absolute; width:60vw; height:60vw; border:1px solid rgba(255,255,255,.12); border-radius:50%; right:-15vw; top:-20vw; box-shadow:0 0 0 8vw rgba(255,255,255,.018),0 0 0 16vw rgba(255,255,255,.012); }
.giant { position:relative; z-index:1; font:400 clamp(70px,11vw,170px)/.72 var(--font-serif); letter-spacing:-.07em; margin:40px 0 120px; }
.giant i { color:var(--acid); margin-left:12vw; font-weight:400; }
.global-note { display:grid; grid-template-columns:1fr 1fr; gap:7vw; align-items:end; position:relative; z-index:1; }
.global-note span { font:11px/1.8 var(--font-serif); letter-spacing:.12em; }
.global-note p { font-size:12px; line-height:2.1; max-width:430px; }
footer { background:#b9c9a5; padding:120px 6vw 40px; }
footer h2 { font:400 clamp(65px,10vw,155px)/.74 var(--font-serif); letter-spacing:-.065em; margin:70px 0 90px; }
footer h2 em { font-weight:400; margin-left:10vw; }
.mail { display:flex; justify-content:space-between; border-bottom:1px solid rgba(0,0,0,.5); padding:0 0 18px; font:400 clamp(20px,2.2vw,34px) var(--font-serif); }
.footer-bottom { display:grid; grid-template-columns:2fr 2fr 2fr 1fr; gap:30px; align-items:end; margin-top:100px; padding-top:35px; border-top:1px solid rgba(0,0,0,.2); }
.footer-bottom p { font-size:9px; line-height:1.8; letter-spacing:.08em; margin:0; }
.footer-logo span { font-size:52px; }
.videos-page { min-height:100vh; background:#10110f; color:#eceae3; }
.videos-header { position:fixed; }
.about-header { position:fixed !important; }
.videos-intro { min-height:78vh; padding:190px 8vw 90px; position:relative; overflow:hidden; background-image:linear-gradient(110deg,rgba(0,0,0,.2),transparent 55%),url('./images/iw-gold-background.jpg'); background-size:cover; background-position:center; }
.videos-intro:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(to bottom,transparent 55%,#10110f 100%); }
.videos-intro>* { position:relative; z-index:1; }
.videos-intro h1 { margin:7vh 0 10vh; font:400 clamp(90px,13vw,200px)/.68 var(--font-serif); letter-spacing:-.07em; }
.videos-intro h1 em { color:#b6965e; font-weight:400; margin-left:12vw; }
.videos-intro-bottom { display:flex; justify-content:space-between; align-items:end; gap:40px; }
.videos-intro-bottom p { font-size:13px; line-height:2; letter-spacing:.06em; }
.videos-intro-bottom>span { font:10px var(--font-serif); letter-spacing:.2em; }
.video-gallery { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; padding:1px; background:rgba(255,255,255,.15); }
.video-item { background:#10110f; padding:3vw; }
.video-frame { position:relative; width:100%; aspect-ratio:16/9; overflow:hidden; background:#050505; }
.video-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-meta { display:grid; grid-template-columns:45px 1fr auto; gap:15px; align-items:start; padding:22px 2px 12px; }
.video-meta>span { font:10px var(--font-serif); color:#888; }
.video-meta h2 { margin:0; font:400 clamp(20px,2vw,32px)/1.15 var(--font-serif); }
.video-meta p { margin:0; text-align:right; font-size:8px; line-height:1.7; letter-spacing:.12em; color:#888; }
.vimeo-more { padding:130px 8vw; background:#191a17; }
.vimeo-more p { font-size:12px; color:#999; }
.vimeo-more a { margin-top:55px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.4); display:flex; justify-content:space-between; font:400 clamp(32px,5vw,72px) var(--font-serif); }
.videos-footer { background:#b9c9a5; color:#171816; padding:45px 6vw; display:grid; grid-template-columns:1fr auto 1fr; gap:30px; align-items:end; }
.videos-footer p,.videos-footer>a { margin:0; font-size:9px; letter-spacing:.1em; }
.videos-footer>a { justify-self:end; }
@media (max-width:800px) {
  .header { height:76px; padding:0 22px; background:rgba(12,13,11,.92); } section[id],footer[id] { scroll-margin-top:76px; } .header-contact { display:none; } .language-switch { margin-left:auto; }
  .header nav { position:fixed; z-index:99; top:76px; left:0; right:0; display:flex; flex-direction:column; gap:0; max-height:0; padding:0 22px; overflow:hidden; opacity:0; pointer-events:none; background:rgba(12,13,11,.97); border-bottom:1px solid rgba(255,255,255,.18); transition:max-height .35s ease, opacity .25s ease, padding .35s ease; }
  .header nav.is-open { max-height:calc(100svh - 76px); padding:12px 22px 24px; opacity:1; pointer-events:auto; }
  .header nav a { width:100%; min-height:52px; display:flex; align-items:center; border-bottom:1px solid rgba(255,255,255,.12); font-size:12px; opacity:.78; }
  .header nav a:last-child { border-bottom:0; }
  .menu-toggle { appearance:none; display:grid; place-content:center; gap:5px; width:44px; height:44px; margin-left:8px; padding:0; border:0; background:transparent; color:inherit; cursor:pointer; }
  .menu-toggle span { display:block; width:21px; height:1px; background:currentColor; transform-origin:center; transition:transform .25s ease, opacity .2s ease; }
  .menu-toggle.is-open span:nth-child(1) { transform:translateY(6px) rotate(45deg); }
  .menu-toggle.is-open span:nth-child(2) { opacity:0; }
  .menu-toggle.is-open span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); }
  .hero-copy { left:7vw; right:7vw; top:27%; } .hero h1 { font-size:25vw; line-height:.72; margin:4vh 0 8vh; } .hero-subline { margin-left:0; gap:4vw; max-width:100%; } .hero-works { font-size:18vw; } .hero h1 em { font-size:6.5vw; } .rotating-word { font-size:clamp(50px,15vw,110px); min-height:.9em; }
  .hero-bottom { align-items:center; } .hero-bottom p { font-size:12px; }
  .section { display:block; padding:85px 7vw; } .section-label { margin-bottom:65px; }
  .statement-content .lead { font-size:11vw; margin-bottom:65px; } .statement-grid { grid-template-columns:1fr; padding:0; gap:25px; }
  .services h2,.works h2 { font-size:16vw; margin-bottom:60px; }
  .service-list article { grid-template-columns:13% 1fr 8%; padding:28px 0; } .service-list h3 { font-size:27px; } .service-list p { grid-column:2/4; } .service-list b { grid-column:3; grid-row:1; }
  .works-heading { display:block; } .works-heading > p { margin:0 0 55px; } .capability-grid { grid-template-columns:1fr 1fr; } .work-card-copy { min-height:90px; grid-template-columns:35px 1fr auto; padding:16px; }
  .global { min-height:auto; } .giant { font-size:18vw; margin:0 0 80px; } .global-note { grid-template-columns:1fr; }
  footer { padding:85px 7vw 35px; } footer h2 { font-size:18vw; margin:55px 0 70px; } footer h2 em { margin-left:0; }
  .footer-bottom { grid-template-columns:1fr 1fr; margin-top:70px; } .footer-logo { grid-column:1/3; }
  .videos-intro { min-height:70vh; padding:145px 7vw 70px; } .videos-intro h1 { font-size:21vw; margin:6vh 0 9vh; } .videos-intro h1 em { margin-left:0; } .videos-intro-bottom { align-items:start; flex-direction:column; }
  .video-gallery { grid-template-columns:1fr; } .video-item { padding:7vw; } .video-meta { grid-template-columns:32px 1fr auto; }
  .vimeo-more { padding:90px 7vw; } .videos-footer { grid-template-columns:1fr 1fr; } .videos-footer>p { display:none; }
}
@media (max-width:480px) {
  .header { padding:0 18px; }
  .logo span { font-size:34px; }
  .language-switch button { min-width:32px; min-height:40px; }
  .hero { min-height:100svh; }
  .hero-copy { top:25%; }
  .hero .eyebrow { font-size:8px; letter-spacing:.2em; }
  .rotating-word { font-size:14.5vw; }
  .hero-works { font-size:18vw; }
  .hero h1 em { font-size:6.2vw; }
  .hero-bottom p { max-width:68%; font-size:11px; line-height:1.8; }
  .circle-link { width:52px; height:52px; flex:0 0 52px; }
  .section { padding:72px 6vw; }
  .statement-content .lead { font-size:10.5vw; }
  .statement-grid p,.service-list p,.works-heading > p,.global-note p { font-size:11px; line-height:2; }
  .capability-grid { grid-template-columns:1fr; }
  .work-card img { aspect-ratio:16/9; }
  .global-note { gap:25px; }
  footer h2 { font-size:17vw; }
  .mail { font-size:18px; overflow-wrap:anywhere; }
  .footer-bottom { grid-template-columns:1fr; gap:24px; }
  .footer-logo { grid-column:1; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none!important; animation:none!important; } }
.about-page{min-height:100vh;background:var(--paper)}.about-header{position:absolute}.about-hero{min-height:88vh;padding:190px 8vw 90px;color:#f1eee7;position:relative;overflow:hidden;background-image:linear-gradient(105deg,rgba(0,0,0,.25),transparent 58%),url('images/iw-gold-background.jpg');background-size:cover;background-position:center}.about-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 60%,rgba(16,17,15,.55));pointer-events:none}.about-hero>*{position:relative;z-index:1}.about-hero h1{margin:7vh 0 9vh;font:400 clamp(78px,11vw,172px)/.72 var(--font-serif);letter-spacing:-.07em}.about-hero h1 em{color:#c4a260;font-weight:400;margin-left:11vw}.about-hero-note{display:flex;justify-content:space-between;align-items:end}.about-hero-note p{margin:0;font-size:13px;line-height:2}.about-belief h2,.message-content h2{margin:0 0 80px;font:400 clamp(48px,6vw,94px)/1.1 var(--font-serif);letter-spacing:-.045em}.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding-left:18%}.about-copy p,.message-body p{font-size:13px;line-height:2.2}.company-profile{background:#171816;color:#eceae3}.profile-content h2{margin:0 0 85px;font:400 clamp(58px,7vw,108px)/.86 var(--font-serif)}.profile-content h2 em{color:#b6965e;font-weight:400}.profile-content dl{margin:0;border-top:1px solid rgba(255,255,255,.2)}.profile-content dl>div{display:grid;grid-template-columns:28% 1fr;gap:30px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.2)}.profile-content dt{font-size:10px;color:#8c8e87}.profile-content dd{margin:0;font-size:14px;line-height:1.8}.profile-link,.map-link{margin-top:55px;display:flex;justify-content:space-between;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.4);font:400 clamp(22px,4vw,58px) var(--font-serif)}.message-kicker{margin:0 0 60px;font:400 20px/1.35 var(--font-serif);color:#777970}.message-body,.message-signature{max-width:720px;margin-left:18%}.message-signature{margin-top:60px;padding-top:28px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.access-section{background:#33372f;color:#eceae2}.access-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:65px}.access-heading h2{margin:0;font:400 clamp(62px,8vw,126px)/.75 var(--font-serif)}.access-heading h2 em{color:#bdcda7;font-weight:400}.map-frame{position:relative;width:100%;aspect-ratio:16/7;min-height:360px;overflow:hidden;filter:grayscale(1) sepia(.15)}.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.map-link{font-size:22px}.about-footer .footer-bottom{grid-template-columns:2fr 2fr 1fr}@media(max-width:800px){.about-hero{min-height:76vh;padding:145px 7vw 70px}.about-hero h1{font-size:19vw}.about-hero h1 em{margin-left:0}.about-hero-note{align-items:start;flex-direction:column;gap:28px}.about-belief h2,.message-content h2{font-size:12vw}.about-copy{grid-template-columns:1fr;padding:0}.profile-content dl>div{grid-template-columns:1fr;gap:10px}.message-body,.message-signature{margin-left:0}.access-heading{display:block}.access-heading h2{font-size:17vw;margin-bottom:45px}.map-frame{aspect-ratio:4/5;min-height:430px}}
