:root{--paper:#f5f5f3;--paper-2:#ececea;--cream:#fafaf8;--ink:#252624;--muted:#5d5f59;--gold:#68664f;--gold-2:#d4d1b6;--dark:#20211f;--line:rgba(30,32,28,.15);--line-soft:rgba(30,32,28,.07);--sans:-apple-system,BlinkMacSystemFont,"Helvetica Neue","PingFang HK","PingFang TC","Microsoft JhengHei",sans-serif;--serif:var(--sans);--fraunces:var(--sans);--mono:var(--sans);--max:1280px}
body{font-family:var(--sans)}
section[id]{scroll-margin-top:100px}
.container{width:min(var(--max),100% - 96px);margin-inline:auto;position:relative;z-index:2}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.nav{position:absolute;left:0;right:0;top:0;background:transparent;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;z-index:20}
.nav-inner{height:88px}
.nav.scrolled{position:fixed;background:rgba(248,248,246,.86);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 1px 0 rgba(30,32,28,.08)}
.nav.scrolled::after{content:"";position:absolute;left:0;right:0;top:100%;height:16px;background:linear-gradient(to bottom,rgba(30,32,28,.12),rgba(30,32,28,0));pointer-events:none}
.brand-mark{font-size:24px;font-weight:700;letter-spacing:.04em;display:flex;align-items:center;gap:13px}
.brand-mark span{font-size:10px;font-weight:600;letter-spacing:.13em;border-left:1px solid #b8b9b3;padding-left:13px}
.nav-links{gap:30px;font-size:12px;letter-spacing:.04em}
.nav-links a{color:var(--ink);opacity:1;position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1.5px;background:var(--ink);transition:right .4s cubic-bezier(.22,.61,.36,1)}
.nav-links a:hover::after{right:0}
.nav-links a[aria-current=true]{color:var(--ink)}
.nav-links a[aria-current=true]::after{right:0}
.nav-links a:hover{color:var(--muted)}
.nav-cta{font-size:12px;letter-spacing:.04em;background:var(--ink);color:white;padding:10px 20px}
.nav-cta:hover{background:#454640;color:white}
.menu-btn{color:var(--ink);border-color:var(--line);border-radius:50%}
.mobile-menu{z-index:19;background:rgba(245,245,243,.97);gap:30px}
.mobile-menu a{color:var(--ink)}
.mobile-menu[hidden]{display:none}
.hero{background:var(--paper);color:var(--ink);min-height:100svh;padding:112px 0 22px;display:flex;align-items:stretch;overflow:hidden}
.hero-inner{display:flex;flex-direction:column;justify-content:space-between;position:relative;z-index:2}
.page-geometry{position:fixed;inset:0;z-index:1;pointer-events:none;overflow:hidden;--light-x:65%;--light-y:36%;--light-opacity:0}
.page-geometry svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke-width:1;vector-effect:non-scaling-stroke}
.geometry-lines{stroke:#777b70;opacity:.14}
.geometry-light{position:absolute;inset:0;background:radial-gradient(ellipse 250px 210px at var(--light-x) var(--light-y),rgba(255,255,255,.9),rgba(255,255,255,.35) 42%,rgba(110,117,98,.065) 72%,transparent 100%);opacity:var(--light-opacity);transition:opacity .4s ease}
.page-geometry .geometry-illuminated{stroke:#8e9879;stroke-width:1.5;opacity:var(--light-opacity);mask-image:radial-gradient(circle 250px at var(--light-x) var(--light-y),#000,transparent 90%);-webkit-mask-image:radial-gradient(circle 250px at var(--light-x) var(--light-y),#000,transparent 90%);transition:opacity .4s ease}
.hero-kicker{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--muted);letter-spacing:.13em}
.hero-kicker span:last-child{font-size:10px;letter-spacing:.14em}
.letter-art{position:relative;width:min(100%,1060px);margin:12px auto 8px;isolation:isolate}
.letter-art h1{margin:0;max-width:none;width:100%;font-size:inherit;line-height:1;letter-spacing:0}
.letter-art h1 img{width:100%;height:auto;max-height:49svh;object-fit:contain;filter:drop-shadow(0 2px 1px rgba(53,55,46,.22)) drop-shadow(0 10px 6px rgba(40,43,34,.12)) drop-shadow(0 27px 18px rgba(40,43,34,.14)) drop-shadow(0 52px 44px rgba(40,43,34,.16));animation:letter-breathe 12s cubic-bezier(.45,0,.55,1) infinite;will-change:transform}
@keyframes letter-breathe{0%,100%{transform:translate3d(0,4px,0)}50%{transform:translate3d(0,-4px,0)}}
.letter-art.motion-paused h1 img,.letter-art.preview-open h1 img,.letter-art.offscreen h1 img{animation-play-state:paused}
.letter-art.offscreen h1 img{will-change:auto}
.hero-motion-controls{display:flex;align-items:center;gap:18px}
.motion-toggle{border:0;background:none;color:var(--muted);font:inherit;letter-spacing:inherit;cursor:pointer;min-height:32px;padding:4px 0}
.motion-toggle:hover{color:var(--ink)}
.motion-toggle:disabled{cursor:default;opacity:.65}
@media(hover:hover) and (pointer:fine){.letter-art:hover h1 img{animation-play-state:paused}}
.art-label{position:absolute;right:0;bottom:0;font-size:10px;color:var(--muted);letter-spacing:.15em;writing-mode:vertical-rl}
.work-preview{position:fixed;top:0;left:0;width:min(420px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow:hidden;border-radius:20px;padding:8px;background:rgba(250,250,248,.9);border:1px solid rgba(255,255,255,.95);box-shadow:0 22px 65px rgba(30,32,28,.2),inset 0 0 0 1px rgba(255,255,255,.6);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);pointer-events:none;z-index:30;color:var(--ink)}
.work-preview[hidden]{display:none}
.work-preview:not([hidden]){animation:preview-in .38s cubic-bezier(.22,.61,.36,1) both}
@keyframes preview-in{from{opacity:0;scale:.96}to{opacity:1;scale:1}}
.preview-image{height:min(260px,36svh);display:flex;align-items:center;justify-content:center;border-radius:13px;background:#e8e9e4;overflow:hidden}
.preview-image img{width:100%;height:100%;object-fit:contain}
.preview-image img[hidden],.preview-error[hidden]{display:none}
.preview-error{font-size:12px;color:var(--muted)}
.preview-info{padding:15px 13px 10px}
.preview-kicker{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.14em;color:var(--muted)}
.preview-info h3{margin:8px 0 12px;font-size:18px;font-weight:600;line-height:1.4;letter-spacing:-.02em}
.preview-info dl{display:grid;gap:5px;font-size:11px;line-height:1.65}
.preview-info dl>div{display:grid;grid-template-columns:65px 1fr;gap:10px}
.preview-info dt{color:var(--muted)}
.preview-info dd{margin:0}
.preview-info p{font-size:10px;color:var(--muted);margin-top:9px;padding-top:9px;border-top:1px solid var(--line-soft)}
.preview-controls{display:flex;align-items:center;gap:10px}
.preview-controls [hidden]{display:none}
.hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 0 24px}
.hero-bottom>div:first-child{display:flex;align-items:center;gap:38px}
.hero-bottom h2{font-size:clamp(22px,2.15vw,32px);font-weight:600;line-height:1.45;letter-spacing:-.035em}
.hero-bottom p{font-size:12px;line-height:1.9;color:var(--muted)}
.hero-actions{display:flex;flex-direction:column;align-items:center;gap:10px}
.primary-button{background:var(--ink);color:white;border-radius:999px;padding:15px 24px;font-size:12px;display:flex;gap:34px;align-items:center;transition:background .2s,transform .2s}
.primary-button:hover{background:#44473e;transform:translateY(-2px)}
.primary-button span{font-size:19px;line-height:1}
.effect-toggle{font:11px var(--sans);border:0;background:none;color:var(--muted);min-height:32px;padding:4px 12px;cursor:pointer}
.effect-toggle[aria-expanded=true]{color:var(--ink)}
.effect-toggle span{margin-left:10px}
.hero-footnote{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:10px;letter-spacing:.08em}
.hero-footnote a{color:var(--ink)}
.proof-strip{display:flex;align-items:center;justify-content:space-between;gap:26px;padding:46px 0;border-bottom:1px solid var(--line)}
.proof-strip>div{display:flex;flex-direction:column;gap:4px}
.proof-strip strong{font-size:32px;font-weight:500;line-height:1.2;letter-spacing:-.05em}
.proof-strip span,.proof-strip p{font-size:11px;color:var(--muted)}
.proof-strip p{max-width:170px;line-height:1.9}
section:not(.hero){padding:104px 0}
.about{background:var(--paper);border:0}
.sec-head{gap:16px 24px;margin-bottom:54px}
.sec-head .no{font-size:13px;line-height:2;color:var(--muted);align-self:start}
.sec-head h2{font-size:clamp(26px,3.2vw,42px);font-weight:550;letter-spacing:-.045em;line-height:1.25}
.sec-head .sub{font-size:14px;line-height:1.9}
.about-copy .lead{font-size:25px;font-weight:500;line-height:1.65;letter-spacing:-.025em}
.about-copy p{font-size:14px;line-height:2}
.about-fig{gap:12px;align-items:start}
.about-fig figure{border:0;border-radius:12px;background:#eeeee9}
.about-fig figure:nth-child(2){margin-top:65px}
.about-fig figcaption{font-size:10px;letter-spacing:.02em;border:0;padding:12px}
#services{background:#edeeea}
.svc-list{border-top:1px solid var(--line)}
.svc{grid-template-columns:64px 1fr minmax(0,440px);padding:28px 0}
.svc .idx{font-size:12px;color:var(--muted)}
.svc h3{font-size:22px;font-weight:500;letter-spacing:-.02em}
.svc p{font-size:13px}
.work-cat{margin-bottom:96px}
.cat-head{gap:16px;flex-wrap:wrap}
.cat-head h3{font-size:20px;letter-spacing:-.035em}
.cat-head .cn{font-size:11px;letter-spacing:.04em;white-space:normal}
.project{grid-template-columns:minmax(260px,.9fr) 1.4fr;gap:64px;padding:56px 0}
.project .tag{font-size:10px;letter-spacing:.06em;border-color:var(--line);color:var(--muted)}
.project h4{font-weight:550;font-size:30px;letter-spacing:-.025em;line-height:1.4}
.project .en{font-size:12px;line-height:1.7}
.project .desc{font-size:14px;line-height:1.9}
.project-synopsis{display:grid;gap:16px;margin-top:22px}
.project--app .info{position:relative}
.app-mark{display:block;width:36px;height:36px;object-fit:contain;margin:0 0 14px;border-radius:9px;background:#f1f1ec}
.gallery.app-gallery{display:flex;flex-direction:row;align-items:flex-end;justify-content:center;min-height:420px;padding:10px 0 26px;overflow:visible}
.gallery.app-gallery .gallery-item,.gallery.app-gallery .gallery-item:only-child{width:38%;align-self:flex-end;margin:0;padding:0;--card-angle:0deg}
.gallery.app-gallery .gallery-item+.gallery-item{margin-top:0;margin-left:-16%}
.gallery.app-gallery .gallery-item:nth-child(1){z-index:1;--card-angle:-6deg}
.gallery.app-gallery .gallery-item:nth-child(2){z-index:3;--card-angle:0deg}
.gallery.app-gallery .gallery-item:nth-child(3){z-index:2;--card-angle:6deg}
.gallery.app-gallery figure{transform-origin:50% 100%}
.gallery.app-gallery .gallery-item:hover,.gallery.app-gallery .gallery-item.is-highlighted,.gallery.app-gallery .gallery-item:focus-within{z-index:12}
.course-gallery .gallery-item{width:92%}
.project-subhead{display:flex;align-items:baseline;gap:14px;margin:42px 0 -8px;padding-top:32px;border-top:1px solid var(--line)}
.project-subhead span{font-size:10px;color:var(--muted);letter-spacing:.06em}
.project-subhead h3{font-size:16px;font-weight:500;letter-spacing:-.02em}
.project-subhead em{font-size:11px;font-style:normal;font-weight:400;color:var(--muted);letter-spacing:.02em;margin-left:8px}
@media(max-width:600px){.app-mark{width:31px;height:31px;margin-bottom:12px}.gallery.app-gallery{min-height:320px;padding:4px 0 16px}.gallery.app-gallery .gallery-item,.gallery.app-gallery .gallery-item:only-child{width:42%;padding:0}.gallery.app-gallery .gallery-item+.gallery-item{margin-left:-18%}.gallery.app-gallery .gallery-item:nth-child(1){--card-angle:-5deg}.gallery.app-gallery .gallery-item:nth-child(3){--card-angle:5deg}.course-gallery .gallery-item{width:95%}.project-subhead{margin-top:24px;padding-top:24px}.project-subhead h3{font-size:15px}.project-subhead em{display:block;margin:4px 0 0;font-size:10px}}
.meta{font-size:12px;gap:12px}
.meta .row b{font-size:10px;letter-spacing:.02em}
.project .notes{font-size:12px}
.gallery{columns:auto;display:flex;flex-direction:column;gap:0;padding:8px 3px 10px}
.gallery-item{position:relative;z-index:1;width:88%;align-self:flex-start;padding:8px 0;--card-angle:-.65deg}
.gallery-item:nth-child(even){align-self:flex-end;--card-angle:.65deg}
.gallery-item+.gallery-item{margin-top:-22px}
.gallery-item:only-child{width:96%;align-self:center;--card-angle:0deg}
.gallery figure{position:relative;overflow:visible;border:1px solid rgba(255,255,255,.95);border-radius:13px;margin:0;background:#fafaf7;transform:rotate(var(--card-angle));box-shadow:0 6px 20px rgba(35,38,28,.07);transition:transform .4s cubic-bezier(.22,.61,.36,1),box-shadow .4s cubic-bezier(.22,.61,.36,1)}
.gallery figure::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 0 0 100vmax rgba(19,22,18,.26);pointer-events:none;opacity:0;transition:opacity .2s ease}
.gallery-open{position:relative;display:block;width:100%;border:0;padding:0;background:none;border-radius:12px 12px 0 0;cursor:zoom-in;color:var(--ink)}
.gallery-open img{width:100%;height:auto;border-radius:12px 12px 0 0}
.gallery-open:focus-visible{outline-offset:5px}
.gallery-zoom{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:32px;height:32px;background:rgba(250,250,248,.9);border:1px solid rgba(255,255,255,.9);border-radius:50%;font-size:17px;opacity:0;transition:opacity .2s}
.gallery figcaption{font-size:11px;letter-spacing:.02em;line-height:1.6;border:0;padding:12px 16px 28px;color:var(--muted)}
.work>.container.gallery-focus-scope{z-index:25}
.gallery-item.is-highlighted{z-index:5}
.gallery-item.is-highlighted figure{transform:translateY(-7px) rotate(0deg);box-shadow:0 18px 40px rgba(30,32,25,.16)}
.gallery-item.is-highlighted figure::after,.gallery-item.is-highlighted .gallery-zoom{opacity:1}
.gallery-lightbox{position:fixed;inset:0;width:min(1040px,calc(100vw - 40px));max-width:none;max-height:calc(100svh - 40px);margin:auto;padding:0;border:1px solid rgba(255,255,255,.85);border-radius:20px;background:#f6f6f2;color:var(--ink);overflow:auto;box-shadow:0 30px 100px rgba(0,0,0,.24)}
.gallery-lightbox::backdrop{background:rgba(20,23,19,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.gallery-lightbox[open]{animation:lightbox-in .34s cubic-bezier(.22,.61,.36,1) both}
@keyframes lightbox-in{from{opacity:0;scale:.96;translate:0 12px}to{opacity:1;scale:1;translate:0 0}}
.lightbox-shell{padding:20px}
.lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}
.lightbox-kicker{font-size:9px;color:var(--muted);letter-spacing:.16em}
.lightbox-header h2{font-size:18px;font-weight:550;line-height:1.5;margin-top:4px}
.gallery-lightbox button{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;font-size:22px;color:var(--ink);cursor:pointer}
.gallery-lightbox button:hover{background:#e9ebe3}
.gallery-lightbox button:disabled{opacity:.35;cursor:default}
.lightbox-image{display:flex;align-items:center;justify-content:center;min-height:160px;background:#e7e9e1;border-radius:10px;overflow:hidden}
.lightbox-image img{width:auto;max-width:100%;height:auto;max-height:min(64svh,640px);object-fit:contain}
.lightbox-image [hidden]{display:none}
.lightbox-image p{padding:40px;font-size:14px}
.lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:16px}
.lightbox-footer p{font-size:12px;color:var(--muted)}
.lightbox-navigation{display:flex;align-items:center;gap:16px;white-space:nowrap}
#lightboxCount{font-size:11px;font-variant-numeric:tabular-nums}
.cta-line{font-size:11px;letter-spacing:.04em;min-height:36px}
.vogue{background:transparent;color:var(--ink);border:0}
.vogue .sec-head h2,.vogue .sec-head .sub,.vogue-inner p{color:var(--ink)}
.vogue .sec-head .no,.vogue .eyebrow{color:var(--muted)}
.vogue-inner h3{font-weight:500;letter-spacing:-.03em}
.vogue figure{border:0;border-radius:14px}
.footer::before{display:none}
.footer h2{font-weight:500;letter-spacing:-.03em}
.footer .sub{font-size:14px}
.footer :focus-visible{outline-color:white}
.reveal{opacity:1;transform:none}
.fx-w>span{transform:none}
a:active,button:active{opacity:.75}
@media(min-width:1600px){.letter-art{width:1180px}.hero{padding-top:130px}.hero-bottom{padding-bottom:36px}}
@media(max-width:1000px){.hero-bottom>div:first-child{gap:22px}.hero-bottom p{max-width:190px}.project{gap:32px}.container{width:calc(100% - 64px)}}
@media(max-width:820px){.about-grid,.project{grid-template-columns:1fr}.project .info{position:static}.hero-bottom>div:first-child{display:block}.hero-bottom p{margin-top:12px;max-width:none}.svc{grid-template-columns:40px 1fr}.svc p{grid-column:2}.proof-strip p{display:none}}
@media(max-width:600px){
  .container{width:calc(100% - 40px)}
  .nav-inner{height:76px}.brand-mark{font-size:22px}.brand-mark span{font-size:9px}
  .hero{padding:100px 0 20px;min-height:100svh}
  .geometry-lines{opacity:.1}
  .hero-kicker{font-size:11px}.hero-kicker span:last-child{font-size:8px;letter-spacing:.05em;max-width:145px;text-align:right}
  .letter-art{margin:34px auto 26px;width:calc(100% + 12px);align-self:center}
  .letter-art h1 img{max-height:none}.art-label{display:none}
  .hero-bottom{display:block;padding:10px 0 28px}.hero-bottom h2{font-size:27px;line-height:1.45}
  .hero-bottom p{font-size:12px;margin-top:16px}
  .hero-actions{flex-direction:row;gap:8px;justify-content:space-between;margin-top:26px}
  .primary-button{padding:13px 19px;gap:20px;font-size:11px}.effect-toggle{font-size:10px;padding:4px}
  .hero-footnote{font-size:9px;letter-spacing:0}.pointer-hint{display:none}
  .hero-footnote{gap:8px;align-items:center}.hero-motion-controls{gap:0}.motion-toggle{white-space:nowrap;font-size:9px;min-height:36px}
  .preview-controls{gap:5px;flex-wrap:wrap;justify-content:flex-end}.preview-image{height:min(210px,30svh)}.preview-info h3{font-size:16px}.preview-info{padding:12px 10px 8px}
  .proof-strip{padding:32px 0;gap:20px}.proof-strip strong{font-size:26px}.proof-strip span{font-size:9px}
  section:not(.hero){padding:66px 0}.sec-head{gap:12px;margin-bottom:34px}.sec-head h2{font-size:26px}.sec-head .sub{font-size:12px}
  .about-copy .lead{font-size:22px}.about-copy p{font-size:13px}.about-grid{gap:26px}.about-fig figure:nth-child(2){margin-top:35px}
  .svc{gap:12px;padding:24px 0}.svc h3{font-size:21px}.svc p{font-size:12px}
  .cat-head .rule{display:none}.cat-head{gap:6px;display:block}.cat-head h3{font-size:20px}.cat-head .cn{display:block;margin-top:5px}
  .project{padding:36px 0;gap:25px}.project h4{font-size:26px}.gallery{columns:1}.work-cat{margin-bottom:55px}
  .gallery-item{width:95%;--card-angle:-.35deg}.gallery-item:nth-child(even){--card-angle:.35deg}.gallery-item+.gallery-item{margin-top:-16px}.gallery-zoom{opacity:1}.gallery figcaption{font-size:10px;padding-bottom:23px}
  .gallery-lightbox{width:calc(100vw - 24px);max-height:calc(100svh - 24px);border-radius:15px}.lightbox-shell{padding:14px}.lightbox-header h2{font-size:15px}.lightbox-footer{gap:12px;align-items:flex-start}.lightbox-navigation{gap:8px}.lightbox-footer p{font-size:10px}.lightbox-image img{max-height:52svh}
  .footer{padding:70px 0 28px}.footer h2{font-size:30px}.contact-row{gap:28px}.footer-bottom{margin-top:54px}.footer-bottom img{height:29px;max-width:100%}.contact-item .val{font-size:18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.primary-button:hover{transform:none}.geometry-light,.page-geometry .geometry-illuminated{transition:none}}
@media(prefers-reduced-motion:reduce){.letter-art h1 img{animation:none;transform:none}.gallery figure,.gallery-item.is-highlighted figure{transform:none;transition:none}.gallery figure::after,.gallery-zoom{transition:none}}


/* =========================================================================
   Consolidated base + structure (moved from index.html inline styles so the
   site relies on a single stylesheet). Values match the previously rendered
   design; no visual change intended.
   ========================================================================= */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);line-height:1.8;overflow-x:hidden;-webkit-font-smoothing:antialiased}
::selection{background:var(--ink);color:var(--cream)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.skip{position:absolute;left:-999px;top:12px;z-index:10001;background:var(--ink);color:var(--cream);padding:10px 16px;font-weight:600}
.skip:focus{left:12px}

/* nav structural pieces previously only in inline styles */
.nav-inner{display:flex;align-items:center;justify-content:space-between}
.nav-links{display:flex;align-items:center}
.nav-cta{display:inline-flex;align-items:center;border-radius:999px}
.menu-btn{display:none}
.mobile-menu{display:none;position:fixed;inset:0;flex-direction:column;justify-content:center;align-items:center}
.mobile-menu.open{display:flex}

/* section layout previously only in inline styles */
.sec-head{display:grid;grid-template-columns:auto 1fr}
.sec-head h2{align-self:end}
.sec-head .sub{grid-column:2}
.about-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start}
.about-fig{display:grid;grid-template-columns:1fr 1fr}
.about-fig figure{overflow:hidden}
.about-fig img{width:100%;height:auto}
.svc{display:grid;border-bottom:1px solid var(--line);align-items:baseline;transition:padding-left .4s cubic-bezier(.22,.61,.36,1)}
.svc:hover{padding-left:10px}
.svc:hover h3{color:var(--gold)}
.cat-head{display:flex;align-items:center;margin-bottom:8px}
.cat-head .rule{flex:1;height:1px;background:var(--ink);opacity:.25}
.project{display:grid;border-bottom:1px solid var(--line)}
.project .info{position:sticky;top:96px;align-self:start}
.project .tag{display:inline-block;border:1px solid var(--line);padding:6px 12px;border-radius:999px}
.project h4{margin:20px 0 6px}
.project .en{margin-bottom:22px}
.meta{display:grid;margin:22px 0}
.meta .row{display:grid;grid-template-columns:58px 1fr;gap:12px;color:var(--muted)}
.project .notes{list-style:none;display:grid;gap:8px;margin-top:16px}
.project .notes li{position:relative;padding-left:16px}
.project .notes li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--gold);border-radius:50%}
.cta-line{display:inline-flex;align-items:center;border-bottom:1px solid var(--ink);padding-bottom:4px;transition:gap .4s cubic-bezier(.22,.61,.36,1)}
.cta-line:hover{gap:14px;color:var(--gold);border-color:var(--gold)}

/* vogue + footer layout previously only in inline styles */
.vogue-inner{display:grid;grid-template-columns:1fr 1.4fr;gap:48px;align-items:center}
.vogue-inner h3{font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.25}
.vogue-inner p{margin-top:14px}
.vogue img{width:100%;height:auto}
.footer{background:var(--dark);color:var(--cream);padding:110px 0 36px;position:relative;overflow:hidden}
.footer h2{font-size:clamp(2.2rem,5.5vw,4rem);line-height:1.12;text-align:center}
.footer .sub{color:var(--cream);opacity:.6;text-align:center;max-width:520px;margin:16px auto 52px}
.contact-row{display:flex;justify-content:center;gap:64px;flex-wrap:wrap;position:relative;z-index:1}
.contact-item{display:flex;flex-direction:column;align-items:center;gap:10px}
.contact-item .lbl{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--cream);opacity:.55}
.contact-item .val{font-size:1.25rem;transition:color .25s ease}
.contact-item:hover .val{color:var(--gold-2)}
.footer-bottom{margin-top:80px;padding-top:26px;border-top:1px solid rgba(247,240,219,.14);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;position:relative;z-index:1}
.footer-bottom img{height:34px;width:auto;object-fit:contain}
.footer-bottom small{font-size:9px;letter-spacing:.14em;color:var(--cream);opacity:.6}
.footer-bottom .legal{font-size:10px;letter-spacing:.16em;color:var(--cream);opacity:.55}

/* responsive rules previously only in inline styles */
@media(max-width:860px){.nav-links,.nav-cta{display:none}.menu-btn{display:inline-flex;align-items:center;justify-content:center}}
@media(max-width:820px){.vogue-inner{grid-template-columns:1fr}}
@media(max-width:760px){.svc{grid-template-rows:auto auto}}

/* =========================================================================
   apple-design improvements
   ========================================================================= */
/* §1 response: press feedback on pointer-down (scale), not opacity-only */
.primary-button{transition:background .2s ease,transform .15s ease-out;will-change:transform}
.primary-button:active{transform:translateY(0) scale(.97);opacity:1}
.nav-cta:active{transform:scale(.96)}
.menu-btn:active{transform:scale(.94)}
.effect-toggle:active,.motion-toggle:active{transform:scale(.96)}
.gallery-open:active img{transform:scale(.985)}
button:active{opacity:.9}

/* §11 frame-level smoothness: hint compositor for hover-animated layers */
.gallery figure{will-change:transform,box-shadow}
.gallery-item.is-highlighted figure{will-change:transform,box-shadow}

/* §14 reduced transparency: make frost solid */
@media(prefers-reduced-transparency:reduce){
  .nav.scrolled,.work-preview{background:#f8f8f6;backdrop-filter:none;-webkit-backdrop-filter:none}
  .mobile-menu{background:#f5f5f3}
}
/* §14 increased contrast: near-solid surfaces with defined border */
@media(prefers-contrast:more){
  .nav.scrolled,.work-preview,.mobile-menu{background:#ffffff;border:1px solid var(--ink)}
}

/* §4 flexibility: 44px tap targets on touch devices */
@media(hover:none) and (pointer:coarse){
  .nav-cta,.effect-toggle,.motion-toggle,.cta-line,.primary-button{min-height:44px}
}
/* §14 reduced motion: no entrance animations */
@media(prefers-reduced-motion:reduce){
  .work-preview:not([hidden]){animation:none}
  .gallery-lightbox[open]{animation:none}
}

/* short screens (landscape phones / small phones): keep headline + CTA above the fold */
@media(max-height:700px){
  .hero{padding:64px 0 12px}
  .letter-art{margin:6px auto 6px}
  .letter-art h1 img{max-height:40svh}
}

/* =========================================================================
   Fix: the consolidated base rules above were appended after the media
   queries, so they re-overrode these mobile/tablet rules. Re-assert the
   overrides last so they win the cascade.
   ========================================================================= */
@media(max-width:820px){
  .about-grid{grid-template-columns:1fr}
  .project .info{position:static}
}
@media(max-width:600px){
  .about-grid{gap:26px}
  .footer{padding:70px 0 28px}
  .footer h2{font-size:30px}
  .contact-row{gap:28px}
  .contact-item .val{font-size:18px}
  .footer-bottom{margin-top:54px}
  .footer-bottom img{height:29px;max-width:100%}
}

