body .inline-owner-dialog.inline-preview-panel{position:fixed;inset:16px 16px auto auto;margin:0;width:min(380px,calc(100vw - 32px));max-height:calc(100dvh - 110px);overflow:auto;box-shadow:0 12px 50px #0004}
body .inline-preview-panel textarea{min-height:70px}
body .inline-positioned-text{display:inline-block}
.editorial-upload-tools{display:none;grid-column:1/-1;justify-content:flex-end}
.inline-owner-editing .editorial-upload-tools{display:flex}
.editorial-work-link{display:block}
html body .inline-image-empty{display:none!important}
.editorial-extra-media{grid-column:1/-1;display:grid;gap:24px;width:100%}
.editorial-extra-media:has(>.editorial-media-tools:only-child){display:none}
.inline-owner-editing .editorial-extra-media:has(>.editorial-media-tools:only-child){display:grid}
.editorial-media-tools{display:none;justify-content:flex-end;gap:12px}
.inline-owner-editing .editorial-media-tools{display:flex}
.editorial-extra-media video{display:block;width:100%;max-height:85vh;background:#000}
.editorial-extra-media,.inline-media-drafts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),320px));gap:40px;align-items:start}
.editorial-media-tools,.editorial-extra-media>.inline-media-drafts{grid-column:1/-1}
body .editorial-extra-media>.image-open img,body .inline-media-drafts>img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.owner-text-host{position:relative}.owner-text-box{position:absolute;z-index:7;width:min(360px,80%);white-space:pre-wrap;overflow-wrap:anywhere;font-size:18px;line-height:1.8;color:var(--ink)}
.inline-upload-previews video{width:180px;max-height:150px}
.inline-image-resizer{position:fixed;z-index:990;pointer-events:none;border:2px solid #9864d5;box-sizing:border-box}
.inline-image-resizer .resize-handle{position:absolute;width:18px;height:18px;padding:0;border:2px solid white;border-radius:4px;background:#8251b6;pointer-events:auto;touch-action:none}
.resize-handle.nw{left:-9px;top:-9px;cursor:nwse-resize}.resize-handle.ne{right:-9px;top:-9px;cursor:nesw-resize}.resize-handle.sw{left:-9px;bottom:-9px;cursor:nesw-resize}.resize-handle.se{right:-9px;bottom:-9px;cursor:nwse-resize}
html body .inline-content-deleted{display:none!important}
body.inline-owner-editing.inline-delete-mode :is(main,.site-header,.footer) :is(img,canvas,button,a,h1,h2,h3,p,span,label,nav,figure):hover{cursor:crosshair;outline:2px dashed #df5555;outline-offset:3px}
body.inline-owner-editing.inline-position-mode :is(main,.site-header,.footer) :is(img,canvas,button,a,h1,h2,h3,p,span,label,nav,figure){cursor:grab;touch-action:none;user-select:none;-webkit-user-drag:none}
body.inline-owner-editing.inline-position-mode .inline-dragging{cursor:grabbing;outline:2px solid #a47bd3;outline-offset:4px;transition:none!important}
/* Category navigation sits between the hero and portfolio heading. */
body.portfolio-home #works{display:flex;flex-direction:column}
body.portfolio-home #works>.gallery-category-nav{order:-1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;width:100%;margin:0;padding:0;overflow:visible}
body.portfolio-home #works>.gallery-category-nav button{min-width:0;min-height:54px;padding:14px 8px;font-size:clamp(12px,1vw,16px);text-align:center;white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px){body.portfolio-home #works>.gallery-category-nav{grid-template-columns:repeat(var(--portfolio-categories,6),minmax(0,1fr))}body.portfolio-home #works>.gallery-category-nav button{min-height:44px;padding:10px 4px;font-size:13px}}
/* Company introduction occupies the full column beside the brand image. */
body .company-feature{grid-template-columns:1fr 1fr;gap:8%;align-items:stretch}
body .company-feature .company-copy{max-width:none;width:100%;padding:32px 0;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:18px}
body .company-copy h2{font-size:clamp(36px,3.5vw,60px);line-height:1.4;margin:0}
body .company-feature .company-copy .company-intro{max-width:none;width:100%;font-size:clamp(17px,1.15vw,22px);line-height:2.1;white-space:pre-line;margin:0;overflow-wrap:anywhere}
body .company-copy .line-link{display:none}
@media(max-width:760px){body .company-feature{grid-template-columns:1fr;gap:28px}body .company-feature .company-copy{padding:0;gap:16px}body .company-copy h2{font-size:34px}body .company-feature .company-copy .company-intro{font-size:16px;line-height:2}}
/* Shared day/night palette. Images keep their original colors. */
html[data-theme=light]:root{--bg:#faf9f6;--ink:#24212b;--muted:#66606e;--line:#ddd8e2;--panel:#f0edf3;--accent:#7042af;color-scheme:light}
body .theme-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;min-width:20px;min-height:20px;padding:2px;border:1px solid currentColor;border-radius:50%;font:12px/1 Arial,sans-serif;color:inherit;background:transparent;cursor:pointer}
body .theme-toggle:hover{background:var(--panel);color:var(--ink)}
html[data-theme=light] body.portfolio-home .portfolio-masthead{background:var(--bg);color:var(--ink)}
html[data-theme=light] body.portfolio-home .portfolio-masthead-media{background:radial-gradient(ellipse at 50% 48%,#eee6fb 0%,#f6f2fa 48%,#faf9f6 100%)}
html[data-theme=light] .portfolio-masthead-nav{border-color:var(--line)}
html[data-theme=light] .portfolio-particle-canvas{filter:brightness(0);}
html[data-theme=light] .portfolio-glitter-warp{filter:brightness(.42) saturate(1.2);opacity:.6}
html[data-theme=light] .portfolio-masthead .portfolio-masthead-subtitle,html[data-theme=light] .portfolio-masthead .portfolio-masthead-copy>a.portfolio-identity-pill{color:#44334f;-webkit-text-fill-color:transparent;background-image:linear-gradient(110deg,#44334f 0%,#44334f 38%,#7545ae 44%,#ab6cd3 50%,#7545ae 56%,#44334f 62%,#44334f 100%);border-color:#96869e}
html[data-theme=light] body.editorial-image-page .site-header.is-scrolled{background:#faf9f6f5;color:var(--ink)}
html[data-theme=light] body .inline-owner-bar{background:var(--panel);color:var(--ink);border-color:var(--line);box-shadow:0 -4px 24px #32214015}
html[data-theme=light] body .inline-owner-dialog,html[data-theme=light] body .inquiry,html[data-theme=light] body .lightbox{background:var(--bg);color:var(--ink);border-color:var(--line)}
html[data-theme=light] body .action,html[data-theme=light] body .solid-button,html[data-theme=light] body .inline-owner-bar button,html[data-theme=light] body .inline-owner-dialog button{background:#7042af;color:#fff}
html[data-theme=light] body .inline-upload-entry,html[data-theme=light] body .console #owner-status{color:#7042af}
html[data-theme=light] body input::placeholder,html[data-theme=light] body textarea::placeholder{color:#77707f}
html[data-theme=light] body input[type=file]::file-selector-button{background:var(--panel);color:var(--ink);border-color:var(--line)}
html[data-theme=light] body .reference-hero h1{background-image:linear-gradient(110deg,#24212b 30%,#7042af,#655376)}
@media(prefers-reduced-motion:reduce){html[data-theme=light] .portfolio-masthead .portfolio-masthead-subtitle,html[data-theme=light] .portfolio-masthead .portfolio-masthead-copy>a.portfolio-identity-pill{background-image:none;-webkit-text-fill-color:#44334f}}
@media(max-width:760px){body .portfolio-owner-actions{gap:10px}body .theme-toggle{width:18px;height:18px;min-width:18px;min-height:18px;font-size:11px}}
/* Editorial image detail: full viewport cover, credits/prose/photo, image archive. */
body.editorial-image-page .site-header{position:fixed;inset:0 0 auto;height:86px;padding:0 4.7%;background:transparent;border:0;color:#fff;transition:background .25s;z-index:30}
body.editorial-image-page .site-header.is-scrolled{background:#08070df5;border-bottom:1px solid var(--line)}
body.editorial-image-page .site-header .main-nav,body.editorial-image-page .site-header .nav-cta,body.editorial-image-page .site-header .brand small{display:none}
body.editorial-image-page .brand strong{font-size:20px;font-weight:400;letter-spacing:.06em}
body.editorial-image-page .editorial-article{padding:0;width:100%;max-width:none}
body.editorial-image-page .editorial-width{width:90.6%;max-width:1800px;margin-inline:auto}
body.editorial-image-page .editorial-cover{position:relative;height:100svh;min-height:620px;color:#fff}
body.editorial-image-page .editorial-cover>.image-open{width:100%;height:100%;display:block;max-width:none}
body.editorial-image-page .editorial-cover>.image-open img{width:100%;height:100%;max-height:none;object-fit:cover}
body.editorial-image-page .editorial-cover>.image-open:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#0003,transparent 30%,#0001 50%,#0009)}
body.editorial-image-page .editorial-cover>.image-open>span{display:none}
body.editorial-image-page .editorial-cover-copy{position:absolute;left:7%;bottom:17%;width:43%;pointer-events:none}
body.editorial-image-page .editorial-cover-copy h1{font:500 18px/1.6 var(--sans);letter-spacing:.12em;margin:0 0 20px;text-transform:uppercase}
body.editorial-image-page .editorial-cover-copy p{font-size:13px;line-height:1.9;margin:0;color:#fff}
body.editorial-image-page .editorial-cover-meta{position:absolute;bottom:7.5%;left:7%;right:7%;display:flex;justify-content:space-between;font-size:12px;gap:24px;pointer-events:none}
body.editorial-image-page .editorial-intro{display:grid;grid-template-columns:15% 50% 1fr;gap:3%;padding-block:100px 80px;align-items:start}
body.editorial-image-page .editorial-credits{font-size:12px;line-height:1.8}
body.editorial-image-page .editorial-credits>div{margin-bottom:26px}
body.editorial-image-page .editorial-credits h3{font:500 11px/1.8 var(--sans);margin-bottom:5px}
body.editorial-image-page .editorial-credits p{font-size:12px;color:var(--muted)}
body.editorial-image-page .editorial-collect{border:1px solid var(--line);width:36px;height:36px;margin-right:8px}
body.editorial-image-page .editorial-prose{font-size:14px;line-height:1.95;color:var(--muted);text-align:justify}
body.editorial-image-page .editorial-prose p{margin-bottom:20px;white-space:pre-line}
body.editorial-image-page .editorial-prose h2{font:400 16px/1.8 var(--sans);color:var(--ink);margin:0 0 16px}
body.editorial-image-page .editorial-article figure{margin:0}
body.editorial-image-page .editorial-article figure .image-open{display:block;width:100%}
body.editorial-image-page .editorial-article figure img{width:100%;height:auto;max-height:none;object-fit:contain}
body.editorial-image-page .editorial-spread{display:grid;grid-template-columns:37% 1fr;gap:4%;padding-bottom:80px;align-items:start}
body.editorial-image-page .editorial-filmstrip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;padding-bottom:80px}
body.editorial-image-page .editorial-filmstrip .image-open{width:100%;display:block}
body.editorial-image-page .editorial-filmstrip img{width:100%;height:100%;aspect-ratio:2/3;object-fit:cover;max-height:none}
body.editorial-image-page .editorial-photos{padding:50px 0 70px;background:var(--panel)}
body.editorial-image-page .editorial-photos h2{text-align:center;font:400 16px/1.8 var(--sans);margin-bottom:36px;letter-spacing:.07em}
body.editorial-image-page .editorial-photo-grid{columns:3;column-gap:24px}
body.editorial-image-page .editorial-photo-grid figure{break-inside:avoid;margin-bottom:24px}
body.editorial-image-page .editorial-end{display:flex;justify-content:space-between;gap:20px;padding-block:36px;font-size:13px}
body.editorial-image-page.inline-owner-editing .editorial-cover-copy,body.editorial-image-page.inline-owner-editing .editorial-cover-meta{pointer-events:auto}
@media(max-width:760px){body.editorial-image-page .site-header{height:64px;padding-inline:16px}body.editorial-image-page .brand strong{font-size:15px}body.editorial-image-page .site-header .menu-toggle{display:none}body.editorial-image-page .editorial-cover{min-height:680px}body.editorial-image-page .editorial-cover-copy{left:7%;width:86%;bottom:19%}body.editorial-image-page .editorial-cover-copy h1{font-size:16px}body.editorial-image-page .editorial-cover-meta{bottom:6%;flex-direction:column;gap:28px}body.editorial-image-page .editorial-cover-meta>span:last-child{text-align:right}body.editorial-image-page .editorial-width{width:calc(100% - 32px)}body.editorial-image-page .editorial-intro{display:flex;flex-direction:column;gap:30px;padding-block:50px}body.editorial-image-page .editorial-intro>figure{width:100%}body.editorial-image-page .editorial-spread{grid-template-columns:1fr;gap:20px;padding-bottom:40px}body.editorial-image-page .editorial-filmstrip{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-bottom:40px}body.editorial-image-page .editorial-photo-grid{columns:2;column-gap:12px}body.editorial-image-page .editorial-photo-grid figure{margin-bottom:12px}body.editorial-image-page .editorial-photos{padding-block:35px}}
.portfolio-glitter-warp{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.9}
/* Shared midnight palette, matched to the particle hero's outer background. */
html:root{--bg:#08070d;--ink:#efedf5;--muted:#aaa5b8;--line:#302b3e;--panel:#15121e;--accent:#c4adff;color-scheme:dark}
body .contact-section,body .reference-hero,body .reference-about{background:var(--bg);color:var(--ink)}
body .reference-brand-panel,body .owner-image-slot img{background:var(--panel)}
body .reference-hero h1{background-image:linear-gradient(110deg,#efedf5 30%,#bfa3ff,#e4dcf4)}
body .contact-section .action,body .action,body .solid-button{background:#c4adff;color:#171021}
body .inline-owner-bar{background:#171222;border-top:1px solid #524263;box-shadow:0 -4px 24px #0006}
body .inline-owner-bar button,body .inline-owner-dialog button{background:#c4adff;color:#171021}
body .inline-upload-entry{color:#ddd0ff;border-color:#79638f}
body .inline-owner-dialog,body .inquiry{background:#100d18;border-color:#494054;box-shadow:0 20px 80px #0008}
body .inline-owner-editing .inline-editable{outline-color:#aa85db}
body.inline-owner-editing .inline-editable,body.inline-owner-editing .inline-editable:hover{outline-color:#aa85db}
body .lightbox{background:#08070d;color:var(--ink)}
body .save-project[aria-pressed=true]{background:#c4adff;color:#171021}
body .console #owner-status{color:#c4adff}
body input::placeholder,body textarea::placeholder{color:#a39aae;opacity:1}
body input:focus,body textarea:focus,body select:focus{border-color:#b69bdc}
body input[type=file]::file-selector-button{background:#211a2e;color:#efedf5;border:1px solid #594968;border-radius:4px;padding:7px 10px;margin-right:10px}
body a:focus-visible,body button:focus-visible,body input:focus-visible,body select:focus-visible,body textarea:focus-visible,body summary:focus-visible{outline-color:#c4adff}
body ::selection{background:#74549e;color:white}
/* LIN Portfolio v2 — structural directions, shared interaction contract */
.inline-upload-entry{display:none;white-space:nowrap;border:1px solid #153d30;padding:8px 12px;color:#153d30;font-size:13px}.inline-owner-editing .inline-upload-entry{display:block}.inline-upload-previews{display:flex;flex-wrap:wrap;gap:10px}.inline-upload-previews img{width:100px;height:90px;object-fit:contain}@media(max-width:760px){.search-tools:has(.inline-upload-entry){flex-wrap:wrap}}
.inline-owner-bar{position:fixed;bottom:0;inset-inline:0;z-index:1000;display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 20px;background:#153d30;color:white;box-shadow:0 -3px 15px #0002;font:14px/1.5 'Microsoft YaHei',sans-serif}.inline-owner-bar button{padding:9px 15px;background:#fff;color:#153d30;border-radius:4px}.inline-owner-bar span{flex:1}.inline-owner-dialog{z-index:1100;width:min(520px,92vw);padding:24px}.inline-owner-dialog h2{font-size:24px;margin-bottom:20px}.inline-owner-dialog form{display:grid;gap:14px}.inline-owner-dialog button{padding:10px 18px;margin-top:14px;background:#153d30;color:#fff}.inline-owner-dialog img{max-height:230px;object-fit:contain}.inline-owner-dialog textarea{min-height:140px}.inline-owner-editing .inline-editable{cursor:pointer;outline:1px dashed #36a778;outline-offset:3px}.inline-owner-editing .inline-editable:hover{outline:3px solid #36a778}.inline-owner-editing .floating-work{transform:none!important;filter:none!important;opacity:1!important}.inline-owner-editing{padding-bottom:100px}
body.portfolio-home .floating-gallery{margin-inline:0}
.portfolio-owner-actions{display:flex;align-items:center;gap:16px}.portfolio-admin-entry{font:14px/1.2 'Microsoft YaHei',sans-serif;padding:9px 6px;white-space:nowrap}.portfolio-admin-entry:hover{text-decoration:underline}.owner-image-slot{border:1px solid var(--line);padding:18px;margin:18px 0;display:grid;gap:12px}.owner-image-slot img{width:160px;height:120px;object-fit:contain;background:#eee}.owner-image-slot strong{font-size:14px}.portfolio-masthead-nav .portfolio-owner-actions{justify-self:end}@media(max-width:760px){.portfolio-masthead-nav{grid-template-columns:auto 1fr!important;row-gap:8px;height:auto!important;min-height:68px}.portfolio-nav-links{grid-row:2;grid-column:1/-1;justify-content:center;padding-bottom:8px}.portfolio-owner-actions{grid-column:2;grid-row:1}.portfolio-admin-entry{font-size:12px}}
.portfolio-home .works{padding-top:0;margin-top:0}.portfolio-home .works-intro{padding:112px 0 55px;max-width:720px}.portfolio-home .works-intro h2{font-size:clamp(54px,7vw,104px);line-height:1.08;margin:18px 0 24px;letter-spacing:-.04em}.portfolio-home .works-intro>p:last-child{font-size:16px;color:var(--muted);max-width:480px;line-height:1.9}.gallery-category-nav{display:flex;gap:clamp(22px,4vw,64px);align-items:center;border-block:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.gallery-category-nav::-webkit-scrollbar{display:none}.gallery-category-nav button{flex:none;min-height:62px;padding:8px 0;font-size:15px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.gallery-category-nav button[aria-pressed=true]{color:var(--ink);border-color:var(--ink)}.portfolio-home .floating-gallery{position:relative;height:620px;margin:0 -6vw 55px;background:#fff;overflow:hidden;isolation:isolate;--mx:0;--my:0}.portfolio-home .floating-work{position:absolute;left:var(--fx);top:var(--fy);width:clamp(130px,14vw,230px);aspect-ratio:4/5;transform:translate3d(calc(var(--mx)*18px),calc(var(--my)*14px),0) rotate(var(--fr));transition:transform .55s cubic-bezier(.2,.75,.2,1),opacity .35s,filter .35s;z-index:1;outline-offset:8px}.portfolio-home .floating-work:nth-child(3n){width:clamp(110px,11vw,185px)}.portfolio-home .floating-work:nth-child(4n){width:clamp(150px,17vw,270px)}.portfolio-home .floating-work img{width:100%;height:100%;object-fit:cover;box-shadow:0 14px 30px #1112;transition:transform .55s cubic-bezier(.2,.75,.2,1),box-shadow .35s}.portfolio-home .floating-work span{position:absolute;left:0;bottom:-30px;font-size:11px;white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}.portfolio-home .floating-work:hover,.portfolio-home .floating-work:focus-visible,.portfolio-home .floating-work.is-active{z-index:5;transform:translate3d(calc(var(--mx)*18px),calc(var(--my)*14px),0) rotate(0) scale(1.16)}.portfolio-home .floating-work:hover img,.portfolio-home .floating-work:focus-visible img,.portfolio-home .floating-work.is-active img{box-shadow:0 22px 48px #1113}.portfolio-home .floating-work:hover span,.portfolio-home .floating-work:focus-visible span,.portfolio-home .floating-work.is-active span{opacity:1;transform:none}.portfolio-home .floating-work.is-dim{opacity:.28;filter:grayscale(.8)}
.console{padding-block:50px}.console h1{font-size:44px}.console p{margin:12px 0}.console-tabs,.console-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px;margin:24px 0}.console-tabs{border-block:1px solid var(--line);padding:15px 0}.console-tabs button{padding:10px 0;border-bottom:1px solid}.console-actions span{font-size:12px;color:var(--muted)}.console-columns{display:grid;grid-template-columns:250px 1fr;gap:50px}.console-columns aside button{display:block;text-align:left;padding:14px;width:100%;border-bottom:1px solid var(--line)}.console-columns aside .selected{background:var(--panel)}.console-album{border:1px solid var(--line);padding:24px;margin-block:25px}.console h2,.console h3{margin:20px 0}.console-images{padding-left:25px}.console-images li{display:flex;gap:10px;align-items:center;margin:10px 0}.console-images button{font-size:11px;white-space:nowrap;min-height:44px}.console input[type=checkbox]{width:20px}.console input[type=file]{font-size:12px}.console-actions label{flex-direction:row;align-items:center}.console #owner-status{color:#5e6239;white-space:pre-line}.console #login-form{max-width:450px}.console #login-form button{margin-top:20px}@media(max-width:760px){.console-columns{grid-template-columns:1fr;gap:20px}.console h1{font-size:34px}.console-album{padding:15px}.console-images li{flex-wrap:wrap}.console-images input{width:100%}}
:root{--bg:#f6f5f1;--ink:#252824;--muted:#676b64;--line:#d9dcd3;--panel:#edece6;--accent:#736148;--serif:'Songti SC','Noto Serif CJK SC','SimSun',serif;--sans:'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;color-scheme:light}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.8 var(--sans);-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0}button:disabled{opacity:.55;cursor:wait}img{display:block;width:100%;height:auto}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif)}[hidden]{display:none!important}a,button,input,select,textarea,summary{outline-offset:6px}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #8d9d9a}.wrap{max-width:1504px;width:calc(100% - 120px);margin-inline:auto}.kicker{font-size:11px;letter-spacing:.19em;line-height:1.6}.skip{position:fixed;top:-100px;background:var(--bg);z-index:50;padding:12px}.skip:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.site-header{height:96px;padding:0 4.15%;display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--bg);border-bottom:1px solid var(--line);position:relative;z-index:10}.brand{display:flex;align-items:center;gap:13px;flex-shrink:0}.brand-mark{width:32px;height:32px}.brand-mark img{width:100%;height:100%;object-fit:contain}.brand strong{font-size:17px;letter-spacing:.06em;font-weight:600;display:block}.brand small{font-size:8px;letter-spacing:.21em;display:block;margin-top:3px}.main-nav{display:flex;gap:38px}.main-nav a{display:flex;gap:10px;align-items:center;font-size:13px;min-height:44px}.main-nav small{font-size:9px;letter-spacing:.1em;opacity:.6}.header-actions{display:flex;align-items:center;gap:20px}.nav-cta{border-bottom:1px solid;min-height:44px;font-size:13px;display:flex;gap:26px;align-items:center}.search-open{font-size:26px;width:44px;height:44px}.menu-toggle{display:none;width:44px;height:44px}.action,.solid-button{display:inline-flex;justify-content:space-between;align-items:center;gap:38px;background:var(--ink);color:var(--bg);padding:13px 23px;font-size:14px;min-height:50px}.line-link{border-bottom:1px solid;padding:12px 0;display:inline-block;font-size:14px}.index{font:italic 16px Georgia,serif;color:var(--muted)}
.hero{position:relative;height:calc(100svh - 96px);min-height:640px;max-height:1060px;color:#fff}.hero-media{position:absolute;inset:0;overflow:hidden;background:#302e29}.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity .7s ease}.hero-slide.is-active{opacity:1}.hero-slide img{height:100%;object-fit:cover;object-position:center}.hero-media:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#00000003 30%,#0000008c 100%);pointer-events:none}.hero-copy{position:absolute;left:4.15%;bottom:140px;z-index:2;max-width:650px}.hero h1{font-size:clamp(44px,4.3vw,74px);line-height:1.42;letter-spacing:.045em;margin:18px 0}.hero-description{font-size:14px;max-width:430px;opacity:.85;line-height:1.9}.hero-link{display:inline-flex;gap:50px;align-items:center;border-bottom:1px solid #ffffff80;padding:16px 0 10px;font-size:13px;margin-top:10px}.hero-caption{position:absolute;bottom:36px;left:4.15%;z-index:3;display:flex;gap:32px;align-items:center;font-size:11px;letter-spacing:.08em}.hero-caption span{opacity:.6}.slide-control{position:absolute;right:4.15%;bottom:27px;z-index:4;display:flex;align-items:center;gap:15px;font-size:11px;color:#fff}.slide-control .rule{height:1px;width:75px;background:#ffffff70}.slide-control button{width:44px;height:44px;font-size:23px}
.works{padding-top:92px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:36px;margin-bottom:38px}.section-heading h2{font-size:42px;line-height:1.5;margin-top:15px}.section-aside{font-size:13px;color:var(--muted);line-height:1.9}.work-tools{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;padding:15px 0 23px}.filters{display:flex;flex-wrap:wrap;gap:25px}.filters button{padding:8px 0;font-size:13px;min-height:44px;color:var(--muted);border-bottom:1px solid transparent}.filters button[aria-pressed=true]{color:var(--ink);border-color:var(--ink)}.filters sup{margin-left:5px;font-size:10px}.search-tools{display:flex;align-items:center;gap:24px;font-size:12px}.search-tools>button{min-height:44px;white-space:nowrap}.search-tools>button[aria-pressed=true]{text-decoration:underline}.search{display:flex;gap:10px;align-items:center;max-width:220px}.search>span{font-size:23px}.search input{width:100%;min-width:0;background:none;border:0;border-bottom:1px solid var(--line);font-size:12px;padding:12px 0}.project-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:48px}.project-card:nth-child(even){padding-top:90px}.card-media{position:relative;overflow:hidden}.card-images{display:block;aspect-ratio:1.46;background:var(--panel);position:relative}.card-images img{height:100%;object-fit:cover;position:absolute;inset:0;opacity:0;transition:opacity .4s,transform .8s}.card-images img.active{opacity:1}.card-images:hover img.active{transform:scale(1.025)}.plan-card .card-images{background:white}.plan-card .card-images img{object-fit:contain;padding:16px}.image-kind{position:absolute;bottom:17px;left:20px;background:#161a1799;color:#fff;font-size:10px;letter-spacing:.1em;padding:4px 10px;pointer-events:none}.save-project{position:absolute;right:16px;top:14px;width:44px;height:44px;color:#fff;border:1px solid #ffffff60;background:#2225;font-size:24px;line-height:1}.save-project[aria-pressed=true]{background:#eee;color:#222}.card-switch{position:absolute;bottom:10px;right:15px;display:flex}.card-switch button{width:44px;height:44px;background:#2228;color:white;font-size:20px}.card-info{display:flex;align-items:start;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.card-info h3{font-size:23px;font-family:var(--serif);line-height:1.5}.card-info p{font-size:11px;color:var(--muted);margin-top:10px}.card-info .arrow{margin-left:auto;font-size:24px}.empty-state{padding:50px;text-align:center}.empty-state button{text-decoration:underline;display:block;margin:auto}.material-feature{margin-top:120px;display:grid;grid-template-columns:1fr .8fr;gap:12%;align-items:center}.material-feature>div:first-child{height:660px;overflow:hidden}.material-feature img{height:100%;object-fit:cover}.material-copy h2{font-size:42px;line-height:1.65;margin:25px 0}.material-copy>p:not(.kicker){font-size:14px;max-width:360px;color:var(--muted)}.material-copy .line-link{margin-top:25px}.about{margin-top:120px;padding-top:50px;border-top:1px solid var(--line)}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:10%;padding:36px 0 45px}.about h2{font-size:46px}.about h2 small{display:block;font:13px var(--sans);margin-top:20px;color:var(--muted)}.intro{font-size:17px;line-height:2.1}.location{font-size:12px;margin-top:22px;color:var(--muted)}.services{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:0}.services li{border-top:1px solid var(--line);padding:22px 0;display:flex;gap:16px}.services span{font:italic 13px Georgia}.services h3{font-size:14px}.process{margin-block:90px 100px}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px}.process-grid article{border-top:1px solid var(--line);padding-top:20px}.process-grid span{font:italic 20px Georgia;color:var(--muted)}.process-grid h3{font-size:17px;margin:18px 0 10px}.process-grid p{font-size:13px;color:var(--muted);line-height:1.9}.contact-section{background:#222720;color:#f6f5ef;padding:65px 0 75px}.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:8%;margin-top:26px;align-items:center}.contact-grid h2{font-size:clamp(40px,4.5vw,68px);line-height:1.5}.contact-grid p{font-size:13px;margin-bottom:22px;opacity:.7}.contact-section .action{background:#eeeae0;color:#222}.contact-links{margin-top:24px;display:flex;gap:18px;flex-wrap:wrap;font-size:14px}.contact-links a{min-height:44px;padding-top:10px;border-bottom:1px solid #fff5}.wechat-qr{width:150px;margin-top:15px}.footer{padding-block:36px;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:11px;color:var(--muted)}.footer small{display:block;font-size:9px;letter-spacing:.1em}.footer>a:last-child{width:44px;height:44px;text-align:center;font-size:23px}
.detail-top{display:flex;justify-content:space-between;align-items:center;padding-top:30px;font-size:12px;color:var(--muted)}.back-link{display:inline-block;padding:14px 0}.project-heading{padding-top:45px;padding-bottom:48px}.project-heading h1{font-size:clamp(36px,4vw,64px);line-height:1.4;margin:16px 0}.project-heading>p:last-child{font-size:13px;color:var(--muted)}.detail-cover{max-width:1800px;margin:auto}.detail-cover img{max-height:88vh;object-fit:cover}.detail-cover.plan-cover{background:#fff;width:min(1100px,92%)}.detail-cover.plan-cover img{object-fit:contain}.image-open{position:relative;display:block;padding:0;width:100%;cursor:zoom-in}.image-open>span{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:35px;height:35px;background:#181b1870;color:#fff}.project-overview{padding-block:70px;display:grid;grid-template-columns:1fr 2fr;gap:10%}.project-overview dl{margin:0;max-width:270px}.project-overview dl>div{padding:11px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:55px 1fr;font-size:12px;gap:15px}.project-overview dt{color:var(--muted)}.project-overview dd{margin:0}.project-summary{font-size:21px;line-height:1.9;margin:20px 0 32px}.project-overview h2{font-size:22px;margin:24px 0 12px}.project-overview h2+p{font-size:14px;color:var(--muted)}.archive{padding-bottom:55px}.archive .section-heading>button{border-bottom:1px solid;padding:12px 0;font-size:13px}.space-nav{display:flex;gap:25px;border-block:1px solid var(--line);padding:8px 0;position:sticky;top:0;background:var(--bg);z-index:6;flex-wrap:wrap}.space-nav a{font-size:12px;min-height:44px;display:flex;align-items:center}.space-group{scroll-margin-top:100px}.space-group>header{display:flex;gap:20px;align-items:center;margin:40px 0 22px}.space-group>header span{font:italic 16px Georgia;color:var(--muted)}.space-group h3{font-size:25px;font-family:var(--serif)}.space-album{border-block-end:1px solid var(--line);margin:0 0 14px}.space-album summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:25px;padding:22px 0;min-height:125px}.space-album summary::-webkit-details-marker{display:none}.album-stack{width:110px;height:75px;position:relative;background:var(--panel);box-shadow:5px -5px 0 var(--bg),6px -6px 0 var(--line);flex-shrink:0}.album-stack img{width:100%;height:100%;object-fit:cover}.space-album strong{display:block;font-size:18px;font-weight:400}.space-album small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.album-plus{font-size:25px;margin-left:auto}.space-album[open] .album-plus{transform:rotate(45deg)}.album-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px 18px;padding:20px 0 34px;align-items:start}.album-photo-grid img{aspect-ratio:4/5;object-fit:cover}.album-photo-grid.technical{grid-template-columns:1fr 1fr}.album-photo-grid.technical img{aspect-ratio:auto;object-fit:contain}.album-photo-grid figcaption{font-size:11px;color:var(--muted);margin-top:9px}.album-description{font-size:13px;max-width:850px;margin:0 0 15px;color:var(--muted)}.project-end{display:flex;justify-content:space-between;padding-block:60px 90px;border-top:1px solid var(--line);gap:35px;align-items:center}.project-end h2{font-size:35px;margin:16px 0 28px}.next-project small,.next-project strong{display:block}.next-project small{font-size:11px;margin-bottom:15px}.next-project strong{font:28px var(--serif)}.project-film{margin-block:50px}.project-film video{width:100%;max-height:85vh;background:#111}.panorama-view{height:65vh}.project-panorama{margin-block:50px}.project-panorama h2{margin-bottom:20px}.privacy{padding-block:75px;max-width:800px;min-height:70vh}.privacy h1{font-size:40px;margin:20px 0 35px}.privacy p{white-space:pre-line;color:var(--muted)}
dialog{background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:0;max-height:calc(100dvh - 30px);max-width:calc(100% - 30px)}dialog::backdrop{background:#111b;backdrop-filter:blur(7px)}.inquiry{width:620px;padding:35px}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-head h2{font-size:30px}.dialog-note{font-size:14px;margin:18px 0;color:var(--muted)}.icon-button{min-width:44px;min-height:44px;font-size:28px}.contact-dialog-links a{display:inline-block;padding:12px 0;border-bottom:1px solid}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}label{font-size:13px;display:flex;flex-direction:column;gap:7px}input,select,textarea{background:var(--bg);border:1px solid var(--line);padding:12px;width:100%;min-width:0;border-radius:0;font-size:16px}textarea{min-height:90px;resize:vertical}.full{grid-column:1/-1}.consent{display:flex;flex-direction:row;align-items:start;gap:10px;font-size:12px;margin:20px 0}.consent input{width:18px;height:18px;flex-shrink:0;margin-top:3px}.consent a{text-decoration:underline}.form-submit{width:100%}.form-status{font-size:13px;margin-top:12px;white-space:pre-line}.honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.lightbox{width:96vw;height:94dvh;max-width:1900px;background:#151615;color:#f5f4ef;border:0;padding:0 20px 16px}.lightbox-bar{height:58px;display:flex;align-items:center;gap:26px;font-size:13px}.lightbox-bar>span{margin-right:auto}.lightbox-bar>button{min-height:44px}.lightbox-stage{height:calc(94dvh - 155px);overflow:auto;overscroll-behavior:contain}.lightbox-stage img{width:100%;height:100%;object-fit:contain}.lightbox.reading .lightbox-stage img{width:auto;height:auto;max-width:none;min-width:100%;object-fit:initial}.lightbox-controls{display:flex;justify-content:space-between;align-items:center;gap:16px}.lightbox-controls p{font-size:13px;text-align:center}.lightbox-hint{font-size:11px;color:#aaa;text-align:center}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 20px;z-index:40;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s}.toast.visible{opacity:1}
/* Full images in the project archive: source geometry and labels stay intact. */
.album-photo-grid{display:block;columns:3;column-gap:18px}.album-photo-grid figure{break-inside:avoid;margin-bottom:24px}.album-photo-grid img{aspect-ratio:auto;object-fit:contain}.album-photo-grid.technical{columns:2}.detail-cover img{object-fit:contain}
/* Layout 02: a dark projection room, image separate from masthead */
[data-style=cinema]{--bg:#171918;--ink:#ecebe5;--muted:#a9ada8;--line:#3a403b;--panel:#252b27;color-scheme:dark}[data-style=cinema] .hero{height:850px;min-height:0;padding:0 4.15%}[data-style=cinema] .hero-media{inset:180px 4.15% 70px}[data-style=cinema] .hero-copy{left:4.15%;top:34px;bottom:auto;max-width:none;right:4.15%;display:grid;grid-template-columns:1fr 1fr;align-items:center;column-gap:40px}[data-style=cinema] .hero-copy .kicker{grid-column:1/-1}[data-style=cinema] .hero h1{font:48px/1.4 var(--serif);margin:14px 0}[data-style=cinema] .hero-description{justify-self:end}[data-style=cinema] .hero-link{display:none}[data-style=cinema] .hero-caption{bottom:25px}[data-style=cinema] .project-grid{grid-template-columns:1fr 1fr;gap:30px}[data-style=cinema] .project-card:nth-child(even){padding-top:0}
/* Layout 03: designer-led split cover and asymmetrical notebook */
[data-style=atelier]{--bg:#f1eee8;--ink:#362f2a;--line:#d7cfc5;--muted:#75675a}[data-style=atelier] .hero{height:720px;color:var(--ink);margin:40px 4.15% 0;display:grid;grid-template-columns:1fr 1fr;gap:60px}[data-style=atelier] .hero-media{position:relative;grid-column:2;grid-row:1;inset:auto;margin-bottom:60px}[data-style=atelier] .hero-copy{position:relative;grid-column:1;grid-row:1;inset:auto;align-self:center;padding-bottom:60px}[data-style=atelier] .hero h1{font-size:58px}[data-style=atelier] .hero-description{font-size:16px}[data-style=atelier] .hero-link{border-color:var(--ink)}[data-style=atelier] .hero-caption{left:0;bottom:12px}[data-style=atelier] .project-grid{grid-template-columns:1fr 1fr;gap:80px}[data-style=atelier] .card-images{aspect-ratio:4/5}[data-style=atelier] .plan-card .card-images{aspect-ratio:1.2}
/* Layout 04: compact architect's index, plan-first rows */
[data-style=atlas]{--bg:#f9faf8;--ink:#26352e;--muted:#607369;--line:#c8d4ca;--panel:#eef2ed}[data-style=atlas] .hero{height:530px;min-height:0;color:var(--ink);display:grid;grid-template-columns:1fr 1fr;margin:48px 4.15% 0;border-bottom:1px solid var(--line)}[data-style=atlas] .hero-media{position:relative;grid-column:2;grid-row:1;inset:auto;margin-bottom:50px}[data-style=atlas] .hero-copy{position:relative;inset:auto;grid-row:1;grid-column:1;padding:30px 60px 60px 0;align-self:center}[data-style=atlas] .hero h1{font-family:var(--sans);font-size:46px;letter-spacing:0}[data-style=atlas] .hero-caption{bottom:12px;left:0}[data-style=atlas] .hero-link{border-color:var(--ink)}[data-style=atlas] .project-grid{display:block}[data-style=atlas] .project-card{display:grid;grid-template-columns:1fr 1.4fr;gap:50px;padding:28px 0!important;border-top:1px solid var(--line)}[data-style=atlas] .card-info{grid-row:1;grid-column:1;border:0;padding:20px 0}[data-style=atlas] .card-media{grid-column:2;grid-row:1}[data-style=atlas] .card-images{aspect-ratio:2.1}[data-style=atlas] .material-feature{display:none}[data-style=atlas] h2{font-family:var(--sans)}
/* Reference baseline: centered stack, centered hero, equal two-column grid */
[data-style=reference]{--bg:#fff;--ink:#17181a;--panel:#f4f4f6;--line:#e5e5eb;--muted:#8b8c97;--serif:var(--sans)}[data-style=reference] .site-header{height:76px}[data-style=reference] .brand-mark{display:none}.reference-hero{text-align:center;padding:100px 7% 110px;min-height:1050px;background:radial-gradient(at 110% 28%,#e8e2f266,transparent 42%),linear-gradient(#fafafb,#fff)}.reference-deck{height:435px;position:relative;margin:0 auto 36px;max-width:960px;perspective:1000px}.reference-deck img{position:absolute;width:380px;height:430px;object-fit:cover;border-radius:18px;left:calc(50% - 190px);transform:translateX(calc((var(--i) - 1)*220px)) scale(.8) rotateY(calc((var(--i) - 1)*-17deg));box-shadow:0 15px 26px #0002;z-index:1}.reference-deck img:nth-child(2){transform:none;z-index:3}.reference-hero h1{font:750 80px/1.15 var(--sans);letter-spacing:-.07em;max-width:800px;margin:30px auto;background:linear-gradient(110deg,#222 30%,#687ebf,#ab91a9);background-clip:text;color:transparent}.reference-hero>p:not(.kicker){font-size:14px;color:#989ca6;max-width:550px;margin:28px auto}.reference-hero .action{border-radius:30px}[data-style=reference] .project-grid{grid-template-columns:1fr 1fr;gap:24px}[data-style=reference] .project-card:nth-child(even){padding-top:0}[data-style=reference] .card-media{border-radius:14px}[data-style=reference] .card-info{border:0}[data-style=reference] .material-feature{display:none}[data-style=reference] .contact-section{text-align:center;background:white;color:#17181a}[data-style=reference] .contact-grid{display:block}[data-style=reference] .contact-grid>div{margin-top:30px}[data-style=reference] .contact-links{justify-content:center}
/* Owner console */
.admin-shell{max-width:1120px;margin:50px auto;padding:0 24px}.admin-shell h1{font-size:36px}.admin-shell header{display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-tabs{display:flex;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}.admin-tabs button{min-height:44px}.admin-grid{display:grid;grid-template-columns:240px 1fr;gap:35px;margin:30px 0}.admin-grid aside button{display:block;width:100%;padding:10px;text-align:left;border-bottom:1px solid var(--line)}.admin-form{display:grid;gap:16px}.admin-toolbar{display:flex;gap:18px;flex-wrap:wrap;margin:20px 0}.admin-toolbar button,.admin-toolbar a{padding:10px;border:1px solid var(--line)}.admin-shell table{width:100%;border-collapse:collapse;font-size:13px}.admin-shell td,.admin-shell th{padding:12px;border-bottom:1px solid var(--line);text-align:left}.admin-shell textarea{min-height:140px}.admin-shell .message{padding:15px 0;font-size:14px;white-space:pre-line}.admin-login{max-width:480px;margin:60px 0}.admin-login label{margin:24px 0}
@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.main-nav{gap:22px}.main-nav small{display:none}.hero h1{font-size:52px}.project-grid{gap:30px}.services,.process-grid{grid-template-columns:1fr 1fr}.material-feature{gap:7%}.material-feature>div:first-child{height:550px}.material-copy h2{font-size:35px}.brand strong{font-size:15px}}
@media(max-width:760px){html{scroll-padding-top:85px}.wrap{width:calc(100% - 40px)}.site-header{height:80px;padding-inline:20px;gap:12px}.brand-mark{width:28px;height:28px}.brand{gap:9px}.brand strong{font-size:14px}.brand small{font-size:7px}.header-actions{gap:0}.header-actions>.nav-cta,.search-open{display:none}.menu-toggle{display:block}.main-nav{display:none;position:absolute;top:80px;left:0;right:0;padding:20px;background:var(--bg);border-bottom:1px solid var(--line)}.site-header.menu-open .main-nav{display:flex;justify-content:space-between}.hero{height:calc(100svh - 80px);min-height:640px;max-height:900px}.hero-copy{left:20px;right:20px;bottom:145px}.hero h1{font-size:40px;line-height:1.5;letter-spacing:.01em}.hero-description{font-size:13px;max-width:295px}.hero .kicker{font-size:9px}.hero-caption{left:20px;bottom:31px;display:block;font-size:10px;max-width:60%}.hero-caption span{display:block;font-size:9px;margin-top:5px}.slide-control{right:13px;bottom:26px;gap:9px}.slide-control .rule{display:none}.slide-control button{width:35px;height:44px}.works{padding-top:55px}.section-heading{display:block;margin-bottom:25px}.section-heading h2{font-size:32px}.section-aside{margin-top:15px;font-size:12px}.work-tools{display:block;padding-bottom:20px}.filters{gap:20px}.search-tools{justify-content:space-between;gap:16px}.search{max-width:190px}.project-grid{grid-template-columns:1fr;gap:35px}.project-card:nth-child(even){padding-top:0}.card-images{aspect-ratio:1.25}.card-info{gap:16px;padding:18px 0}.card-info h3{font-size:21px}.card-info p{font-size:11px}.material-feature{margin-top:65px;grid-template-columns:1fr;gap:32px}.material-feature>div:first-child{height:440px}.material-copy h2{font-size:32px;margin:20px 0}.about{margin-top:65px;padding-top:35px}.about-grid{grid-template-columns:1fr;gap:30px;padding:25px 0}.about h2{font-size:37px}.intro{font-size:15px}.services{gap:16px}.services h3{font-size:13px}.services li{gap:10px}.process{margin-block:55px}.process-grid{gap:24px}.process-grid h3{font-size:16px}.process-grid p{font-size:12px}.contact-section{padding:45px 0}.contact-grid{grid-template-columns:1fr;gap:35px}.contact-grid h2{font-size:37px}.footer{display:flex;flex-wrap:wrap;align-items:start;gap:20px;padding-block:28px}.footer>span:first-child{width:calc(100% - 50px)}.footer>a:last-child{position:absolute;right:20px}.detail-top{padding-top:14px;font-size:11px}.project-heading{padding-top:25px;padding-bottom:28px}.project-heading h1{font-size:32px}.detail-cover img{max-height:70vh;object-fit:contain}.project-overview{padding-block:35px;grid-template-columns:1fr;gap:30px}.project-overview dl{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.project-summary{font-size:18px}.space-nav{gap:16px;padding:5px 0}.space-nav a{font-size:11px}.space-group>header{margin-top:30px}.space-group h3{font-size:23px}.space-album summary{gap:18px;min-height:105px}.album-stack{width:85px;height:65px}.space-album strong{font-size:16px}.album-photo-grid{grid-template-columns:1fr 1fr;gap:18px 12px}.album-photo-grid.technical{grid-template-columns:1fr}.album-photo-grid img{aspect-ratio:3/4}.project-end{display:block;padding-block:30px 50px}.project-end h2{font-size:30px}.next-project{display:block;margin-top:40px}.next-project strong{font-size:23px}.inquiry{padding:24px 20px}.dialog-head h2{font-size:26px}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.lightbox{width:100vw;height:100dvh;max-width:100%;max-height:100%;padding:0 10px 10px}.lightbox-stage{height:calc(100dvh - 155px)}.lightbox-bar{gap:14px;font-size:11px}.lightbox-controls p{font-size:11px}.privacy h1{font-size:32px}.privacy{padding-block:40px}.admin-grid{grid-template-columns:1fr}.admin-tabs{flex-wrap:wrap}.admin-shell header{display:block}.admin-shell table{font-size:11px}.admin-shell td{padding:8px}
[data-style=cinema] .hero{height:780px;padding:0 20px}[data-style=cinema] .hero-copy{left:20px;right:20px;display:block;top:25px}[data-style=cinema] .hero h1{font-size:35px}[data-style=cinema] .hero-description{font-size:12px}[data-style=cinema] .hero-media{inset:245px 20px 85px}[data-style=cinema] .hero-caption{left:20px;bottom:25px}[data-style=cinema] .project-grid{grid-template-columns:1fr}
[data-style=atelier] .hero,[data-style=atlas] .hero{margin:30px 20px 0;height:auto;min-height:0;display:flex;flex-direction:column;gap:30px}[data-style=atelier] .hero-copy,[data-style=atlas] .hero-copy{padding:0;order:-1;width:100%}[data-style=atelier] .hero h1,[data-style=atlas] .hero h1{font-size:36px}[data-style=atelier] .hero-media,[data-style=atlas] .hero-media{height:440px;width:100%;margin-bottom:70px}[data-style=atelier] .hero-caption,[data-style=atlas] .hero-caption{left:0;bottom:25px;max-width:100%}[data-style=atelier] .project-grid{grid-template-columns:1fr;gap:40px}[data-style=atlas] .project-card{display:flex;flex-direction:column;gap:0;padding-top:0!important}[data-style=atlas] .card-media{order:-1}[data-style=atlas] .card-images{aspect-ratio:1.5}
.reference-hero{padding:50px 20px;min-height:800px;overflow:hidden}.reference-deck{height:290px;margin-bottom:30px}.reference-deck img{height:280px;width:200px;left:calc(50% - 100px);transform:translateX(calc((var(--i) - 1)*115px)) scale(.8) rotateY(calc((var(--i) - 1)*-17deg))}.reference-hero h1{font-size:45px;letter-spacing:-.04em}[data-style=reference] .project-grid{grid-template-columns:1fr}}
[data-style=cinema] .hero h1 br{display:none}
.reference-deck img:nth-child(2):not(.center){z-index:1;transform:translateX(calc((var(--i) - 1)*220px)) scale(.8) rotateY(calc((var(--i) - 1)*-17deg))}.reference-deck img.center{z-index:3;transform:none}.reference-deck img{transition:transform .6s,z-index .3s}.reference-deck>button{position:absolute;top:45%;left:-30px;z-index:4;background:#fff;border-radius:50%;box-shadow:0 5px 20px #0001;width:44px;height:44px;font-size:23px}.reference-deck>button:last-child{left:auto;right:-30px}.reference-hero .scroll-note{font-size:9px!important;letter-spacing:.12em;margin-top:90px!important}.reference-about{background:#f5f5f7;margin-top:100px;padding:85px 0}.reference-about>.wrap{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.reference-brand-panel{height:580px;border-radius:18px;background:#fff;display:flex;flex-direction:column;justify-content:end;padding:40px}.reference-brand-panel strong{font-size:35px;letter-spacing:-.03em}.reference-brand-panel small{font-size:10px;letter-spacing:.2em;margin-top:10px}.reference-about h2{font-weight:700;font-size:46px;line-height:1.15;margin:30px 0}.reference-about p{font-size:13px;color:var(--muted);max-width:500px}.reference-contacts{padding:30px 0;border-block:1px solid var(--line);margin:30px 0}.owner-link{border:1px solid #b3c3ff;padding:8px 14px;border-radius:30px;font-size:12px}[data-style=reference] .works{width:86%;padding-top:90px}[data-style=reference] .section-heading h2{font-weight:700;font-size:34px}[data-style=reference] .contact-section{padding:125px 0}[data-style=reference] .contact-grid h2{font-weight:700;font-size:60px}
@media(max-width:760px){.reference-deck img:nth-child(2):not(.center){transform:translateX(calc((var(--i) - 1)*115px)) scale(.8) rotateY(calc((var(--i) - 1)*-17deg))}.reference-deck>button{left:0}.reference-deck>button:last-child{right:0}.reference-about>.wrap{grid-template-columns:1fr;gap:40px}.reference-brand-panel{height:300px;padding:24px}.reference-brand-panel strong{font-size:24px}.reference-about{padding:40px 0}.reference-about h2{font-size:35px}[data-style=reference] .contact-grid h2{font-size:38px}.owner-link{display:none}}
@media(max-width:760px){.album-photo-grid{columns:2}.album-photo-grid.technical{columns:1}.album-photo-grid img{aspect-ratio:auto}.services{grid-template-columns:1fr 1fr}.process-grid{grid-template-columns:1fr 1fr}}

/* Editable identity masthead: bitmap art stays separate from administrator-editable text. */
.portfolio-masthead{--hero-x:0;--hero-y:0;position:relative;height:calc(100svh - 96px);min-height:660px;max-height:980px;overflow:hidden;background:#030304;color:#fff;isolation:isolate}.portfolio-masthead-media{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}.portfolio-masthead-media>img{width:100%;height:100%;object-fit:cover;transform:translate3d(calc(var(--hero-x)*-18px),calc(var(--hero-y)*-12px),0) scale(1.05);transition:transform .7s cubic-bezier(.2,.7,.2,1);filter:contrast(1.05)}.portfolio-masthead-media:before{content:'';position:absolute;z-index:2;width:54%;aspect-ratio:1;border:1px solid #ffffff2c;border-radius:50%;transform:translate3d(calc(var(--hero-x)*20px),calc(var(--hero-y)*14px),0) rotate(-18deg);animation:identity-orbit 18s linear infinite}.portfolio-masthead-copy{position:absolute;z-index:5;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:45px 5%}.portfolio-masthead-brand{position:absolute;top:32px;left:4.15%;font-size:11px;text-transform:uppercase;color:#ffffff9c}.portfolio-masthead-year{font:400 72px/1 var(--sans);letter-spacing:0;text-shadow:0 0 24px #fff8;animation:identity-rise .9s both}.portfolio-masthead h1{font:300 104px/1.08 var(--sans);letter-spacing:0;margin:24px 0 20px;max-width:1200px;overflow-wrap:anywhere;text-shadow:0 0 30px #ffffff45;animation:identity-rise .9s .12s both}.portfolio-masthead-subtitle{font-size:18px;letter-spacing:0;color:#ffffffd1;animation:identity-rise .9s .24s both}.portfolio-masthead-copy>a{position:absolute;bottom:34px;left:4.15%;display:flex;gap:48px;align-items:center;border-bottom:1px solid #ffffff70;padding:12px 0;font-size:12px}.portfolio-masthead-note{position:absolute;z-index:5;right:4.15%;bottom:42px;font-size:9px;color:#ffffff70}.portfolio-masthead.has-motion .portfolio-masthead-media>img{animation:identity-breathe 10s ease-in-out infinite alternate}.portfolio-masthead.has-motion .portfolio-masthead-year,.portfolio-masthead.has-motion h1{text-shadow:calc(var(--hero-x)*8px) calc(var(--hero-y)*6px) 28px #fff9}@keyframes identity-breathe{to{filter:contrast(1.12) brightness(1.08);scale:1.02}}@keyframes identity-orbit{to{rotate:360deg}}@keyframes identity-rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@media(max-width:760px){.portfolio-masthead{height:calc(100svh - 80px);min-height:650px;max-height:850px}.portfolio-masthead-media>img{object-fit:cover}.portfolio-masthead-media:before{width:120%}.portfolio-masthead-copy{padding-inline:20px}.portfolio-masthead-brand{top:24px;left:20px}.portfolio-masthead-year{font-size:48px}.portfolio-masthead h1{font-size:58px;line-height:1.08;margin:19px 0 16px}.portfolio-masthead-subtitle{font-size:15px}.portfolio-masthead-copy>a{left:20px;bottom:26px}.portfolio-masthead-note{right:20px;bottom:34px;max-width:120px;text-align:right}}
@media(prefers-reduced-motion:reduce){.portfolio-masthead *{animation:none!important;transition:none!important}.portfolio-masthead-media>img{transform:none!important}.portfolio-masthead-media:before{transform:rotate(-18deg)!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* Reference-matched home masthead. All visible type remains administrator-editable HTML. */
body.portfolio-home>.site-header{display:none}
.portfolio-home .portfolio-masthead{height:calc(100svh - 18px);min-height:720px;max-height:none;background:#000;color:#fff;overflow:hidden}
.portfolio-home .portfolio-masthead-media{position:absolute;inset:0;overflow:hidden}
.portfolio-home .portfolio-masthead-media::before{display:none}
.portfolio-home .portfolio-masthead-media>img{width:100%;height:100%;object-fit:cover;object-position:center;transform:none!important;filter:none;transition:none}
.portfolio-home .portfolio-masthead.has-motion .portfolio-masthead-media>img{animation:portfolio-light 9s ease-in-out infinite alternate!important}
.portfolio-masthead-nav{position:absolute;z-index:6;top:44px;left:5.45%;right:5.45%;height:38px;border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff1f;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;font:400 14px/1 '方正粗黑宋简体','FZHei-B01S','FZCuHeiSong-B05S','Microsoft YaHei',sans-serif;text-transform:uppercase}
.portfolio-masthead-nav>a{justify-self:start}
.portfolio-masthead-nav>span:last-child{justify-self:end;font-size:17px}
.portfolio-home-logo{display:block;width:82px;height:30px;object-fit:contain;object-position:left center}
.portfolio-nav-links{display:flex;align-items:center;gap:58px;font-size:15px;text-transform:none}
.portfolio-masthead-copy{position:absolute;z-index:5;inset:0;display:block;padding:0;text-align:center;transform:none}
.portfolio-masthead-copy .portfolio-masthead-year{position:absolute;top:31.5%;left:50%;transform:translate(-50%,-50%);margin:0;font:300 82px/1 var(--sans);text-shadow:0 0 8px #ffffff55;animation:portfolio-enter .8s both}
.portfolio-masthead-copy h1{position:absolute;top:48%;left:50%;width:min(88vw,940px);max-width:none;margin:0;transform:translate(-50%,-50%);font:300 var(--portfolio-title-size)/1 var(--sans);overflow:visible;text-shadow:0 0 8px #ffffff4a;animation:portfolio-enter .8s .1s both}
.portfolio-title-letters{display:flex;width:100%;align-items:center;justify-content:space-between}
.portfolio-title-letters>span{display:block;flex:0 0 auto}
.portfolio-masthead-subtitle{position:absolute;top:63.5%;left:50%;transform:translate(-50%,-50%);margin:0;font:300 20px/1 var(--sans);color:#fff;white-space:nowrap;animation:portfolio-enter .8s .2s both}
.portfolio-masthead-subtitle>span{margin-right:0}
@keyframes portfolio-text-shimmer{0%,15%{background-position:100% 50%}85%,100%{background-position:0% 50%}}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
 .portfolio-masthead .portfolio-masthead-subtitle,.portfolio-masthead .portfolio-masthead-copy>a.portfolio-identity-pill{background-image:linear-gradient(110deg,#ddd5ed 0%,#ddd5ed 38%,#bda1f9 44%,#fff 49%,#fff 51%,#c4adff 56%,#ddd5ed 62%,#ddd5ed 100%);background-size:280% 100%;background-repeat:no-repeat;background-color:transparent;background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:portfolio-enter .8s both,portfolio-text-shimmer 4.8s ease-in-out infinite;text-shadow:none}
 .portfolio-masthead .portfolio-masthead-copy>a.portfolio-identity-pill{animation-delay:.3s,.65s}
}
@media(prefers-reduced-motion:reduce){.portfolio-masthead .portfolio-masthead-subtitle,.portfolio-masthead .portfolio-masthead-copy>a.portfolio-identity-pill{animation:none;background-image:none;color:#fff;-webkit-text-fill-color:#fff}}
.portfolio-masthead-nav,.portfolio-masthead-subtitle,.portfolio-masthead .portfolio-masthead-copy>a.portfolio-identity-pill{font-family:'方正粗黑宋简体','FZHei-B01S','FZCuHeiSong-B05S','Microsoft YaHei',sans-serif;font-weight:400}
.portfolio-masthead-copy>a.portfolio-identity-pill{position:absolute;left:50%;bottom:13.7%;transform:translateX(-50%);min-width:206px;height:54px;padding:0 24px;border:1px solid #ffffffd9;border-radius:28px;display:flex;align-items:center;justify-content:center;font:300 18px/1 var(--sans);text-transform:none;background:#00000032;animation:portfolio-enter .8s .3s both}
.portfolio-masthead.has-motion::after{content:'';position:absolute;z-index:3;left:25%;top:11%;width:50%;aspect-ratio:1/1.18;border:1px solid #ffffff0e;border-radius:50%;pointer-events:none;transform:translate3d(calc(var(--hero-x)*8px),calc(var(--hero-y)*6px),0) rotate(-18deg);animation:portfolio-orbit 24s linear infinite}
@keyframes portfolio-light{from{filter:brightness(.98) contrast(1.02)}to{filter:brightness(1.06) contrast(1.08)}}
@keyframes portfolio-orbit{to{rotate:342deg}}
@keyframes portfolio-enter{from{opacity:0;translate:0 14px}to{opacity:1;translate:0 0}}
@media(max-width:760px){
 .portfolio-home .portfolio-masthead{height:calc(100svh - 12px);min-height:680px;max-height:none}
 .portfolio-home .portfolio-masthead-media>img{object-position:center}
 .portfolio-masthead-nav{top:20px;left:20px;right:20px;height:42px;grid-template-columns:1fr auto 1fr;font-size:10px}
 .portfolio-masthead-nav>span:last-child{font-size:12px}
 .portfolio-identity{max-width:84px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portfolio-home-logo{width:58px;height:26px}
 .portfolio-nav-links{gap:10px;font-size:11px}
 .portfolio-masthead-copy .portfolio-masthead-year{top:29%;font-size:52px}
 .portfolio-masthead-copy h1{top:46%;width:calc(100% - 40px);font-size:var(--portfolio-title-mobile-size)}
 .portfolio-masthead-subtitle{top:58.5%;font-size:14px}
 .portfolio-masthead-copy>a.portfolio-identity-pill{bottom:12%;min-width:170px;height:48px;font-size:15px}
 .portfolio-masthead.has-motion::after{left:-8%;top:18%;width:116%}
}
@media(prefers-reduced-motion:reduce){.portfolio-home .portfolio-masthead-media>img{filter:none!important}.portfolio-masthead.has-motion::after{transform:rotate(-18deg)!important}}

/* Particle Text hero: the label stays as real HTML while canvas paints the animated dots. */
.portfolio-home .portfolio-masthead-media{background:radial-gradient(ellipse at 50% 48%,#171225 0%,#0c0a12 48%,#08070d 100%)}
.portfolio-home .portfolio-masthead-media>img{opacity:0}
.portfolio-home .portfolio-masthead.has-motion::after{border-color:#8b5cf618}
.portfolio-particle-wrap{position:absolute;z-index:2;top:39%;left:50%;width:min(94vw,1400px);height:280px;transform:translate(-50%,-50%);isolation:isolate}
.portfolio-particle-canvas{display:block;width:100%;height:100%;touch-action:none;filter:drop-shadow(0 0 10px #8b5cf688)}
.portfolio-motion-controls{position:absolute;bottom:4%;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:18px;white-space:nowrap;font:12px/1.5 var(--sans);color:#c7bed7}
.portfolio-motion-controls button{font:inherit;min-height:44px;padding:8px 0;border-bottom:1px solid #8d829f;color:inherit}
html[data-motion=reduced] .portfolio-masthead::after,html[data-motion=reduced] .portfolio-masthead-media::before,html[data-motion=reduced] .portfolio-masthead-media>img{animation:none!important}
html[data-motion=reduced] .portfolio-masthead-subtitle,html[data-motion=reduced] .portfolio-identity-pill{animation:none!important}
@media(max-width:760px){.portfolio-motion-controls{gap:12px;font-size:11px;bottom:3%}}
.portfolio-particle-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;opacity:1!important;transform:none!important;font-size:1px!important}
.portfolio-home .works{padding-top:0;margin-top:0}.portfolio-home .works-intro{padding:112px 0 55px;max-width:720px}.portfolio-home .works-intro h2{font-size:clamp(54px,7vw,104px);line-height:1.08;margin:18px 0 24px;letter-spacing:-.04em}.portfolio-home .works-intro>p:last-child{font-size:16px;color:var(--muted);max-width:480px;line-height:1.9}.portfolio-home .works-category-nav{position:sticky;top:0;z-index:8;margin-inline:calc((120px - 100vw)/2);padding:0 max(60px,calc((100vw - 1504px)/2 + 60px));background:var(--bg);border-block:1px solid var(--line);display:flex;gap:34px;overflow:auto}.portfolio-home .works-category-nav .filters{display:flex;gap:34px}.portfolio-home .works-category-nav .filters button{padding:20px 0;font-size:15px;min-height:62px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap}.portfolio-home .works-category-nav .filters button[aria-pressed=true]{color:var(--ink);border-color:var(--ink)}.portfolio-home .works-category-nav .filters sup{margin-left:5px;font-size:10px}.portfolio-home .work-tools{border-top:0;padding:22px 0 20px}
@media(max-width:760px){.portfolio-particle-wrap{top:39%;width:calc(100% - 18px);height:180px}.portfolio-particle-canvas{filter:drop-shadow(0 0 7px #8b5cf677)}}
@media(max-width:760px){.portfolio-home .works-intro{padding:70px 0 36px}.portfolio-home .works-intro h2{font-size:52px}.portfolio-home .works-intro>p:last-child{font-size:14px}.portfolio-home .gallery-category-nav{margin-inline:-20px;padding:0 20px}.portfolio-home .gallery-category-nav{gap:23px}.portfolio-home .gallery-category-nav button{font-size:14px;padding:16px 0;min-height:56px}}
@media(max-width:760px){.portfolio-home .works-intro{padding:70px 0 36px}.portfolio-home .works-intro h2{font-size:52px}.portfolio-home .works-intro>p:last-child{font-size:14px}.portfolio-home .works-category-nav{margin-inline:-20px;padding:0 20px}.portfolio-home .works-category-nav .filters{gap:23px}.portfolio-home .works-category-nav .filters button{font-size:14px;padding:16px 0;min-height:56px}.portfolio-home .work-tools{padding-top:16px}}
@media(prefers-reduced-motion:reduce){.portfolio-particle-canvas{filter:none}}

.image-detail{padding-top:36px;padding-bottom:60px}.image-detail-nav{display:flex;justify-content:space-between;gap:20px;margin-bottom:26px;font-size:14px}.image-detail figure{margin:0;text-align:center}.image-detail .image-open{display:inline-block;width:auto;max-width:100%;background:transparent}.image-detail .image-open img{display:block;width:auto;height:auto;max-width:100%;max-height:78vh;object-fit:contain;margin:auto}
/* Halve only the two marked gaps around the works introduction. */
body.portfolio-home .works-intro{padding-top:24px;padding-bottom:27.5px}
@media(max-width:760px){body.portfolio-home .works-intro{padding-top:20px;padding-bottom:18px}}
/* The fan is the homepage project index; retain the hidden records for shared filters. */
body.portfolio-home .project-grid{display:none!important}
body.portfolio-home main>.about,body.portfolio-home main>.process{display:none}
/* Card Spread: count-adaptive fan, outward lift and spring-driven neighbour push. */
body.portfolio-home .floating-gallery.card-spread{height:270px;margin:0 0 255px;overflow:visible;isolation:isolate;background:transparent;--spread-drift:0px}
body.portfolio-home .card-spread .floating-work{left:50%;top:50%;width:168px;height:252px;aspect-ratio:2/3;margin:0;border:1px solid #262626;border-radius:12px;background:#f5f5f5;box-shadow:0 5px 12px #00000040;opacity:1!important;filter:none!important;z-index:var(--card-order);transform:translate(-50%,-50%) scale(var(--spread-scale,1)) translate(var(--spread-x),var(--spread-y)) rotate(var(--spread-angle))!important;transition:none;transform-origin:center;will-change:transform}
body.portfolio-home .card-spread .floating-work img{display:block;width:100%;height:100%;object-fit:cover;border-radius:12px;box-shadow:none;transform:none}
body.portfolio-home .card-spread .floating-work:hover,body.portfolio-home .card-spread .floating-work:focus-visible,body.portfolio-home.inline-owner-editing .card-spread .floating-work{transform:translate(-50%,-50%) scale(var(--spread-scale,1)) translate(var(--spread-x),var(--spread-y)) rotate(var(--spread-angle))!important}
body.portfolio-home .card-spread .floating-work span{position:absolute;left:8px;right:8px;bottom:9px;padding:8px;background:#101010b8;border-radius:5px;color:white;font-size:10px;line-height:1.5;white-space:normal;opacity:0;pointer-events:none;transition:opacity .2s}
body.portfolio-home .card-spread .floating-work span{display:none}
body.portfolio-home .card-spread .floating-work:focus-visible{outline:3px solid #6c51c7;outline-offset:4px}
@media(hover:none){body.portfolio-home .card-spread .floating-work{transform:translate(-50%,-50%) scale(var(--spread-scale,1)) translate(var(--spread-x),var(--spread-y)) rotate(var(--spread-angle))!important}}
@media(max-width:760px){body.portfolio-home .floating-gallery.card-spread{height:340px;margin:0 0 130px}}
@media(prefers-reduced-motion:reduce){body.portfolio-home .card-spread .floating-work{transition:none}}


@media(max-width:760px){.portfolio-home .floating-gallery{height:470px;margin-inline:-20px;margin-bottom:35px}.portfolio-home .floating-work{width:115px}.portfolio-home .floating-work:nth-child(3n){width:94px}.portfolio-home .floating-work:nth-child(4n){width:132px}.portfolio-home .floating-work span{font-size:9px;bottom:-23px}.portfolio-home .floating-work:hover,.portfolio-home .floating-work:focus-visible,.portfolio-home .floating-work.is-active{transform:translate3d(calc(var(--mx)*8px),calc(var(--my)*8px),0) rotate(0) scale(1.08)}}

/* Readable typography. The particle canvas and its geometry deliberately stay unchanged. */
body{font-size:18px;line-height:1.85}
.kicker{font-size:14px;letter-spacing:.15em}
.brand strong{font-size:19px}.brand small{font-size:12px;letter-spacing:.14em}
.main-nav a,.nav-cta{font-size:16px}.main-nav small{font-size:12px}
.action,.solid-button,.line-link,.contact-links{font-size:16px}
.portfolio-masthead-nav{font-size:16px}.portfolio-nav-links{font-size:18px}
.portfolio-owner-actions>span{font-size:19px}.portfolio-admin-entry{font-size:16px}
.portfolio-masthead .portfolio-masthead-subtitle{font-size:23px;line-height:1.45}
.portfolio-masthead-copy>a.portfolio-identity-pill{font-size:21px}
.portfolio-masthead-brand{font-size:14px}.portfolio-masthead-note{font-size:12px}
body .theme-toggle{font-size:14px;width:24px;height:24px;min-width:24px;min-height:24px}
.portfolio-home .works-intro h2{font-size:clamp(58px,7.4vw,110px)}
.portfolio-home .works-intro>p:last-child{font-size:18px;line-height:1.9;max-width:560px}
body.portfolio-home #works>.gallery-category-nav button{font-size:clamp(16px,1.15vw,18px)}
.gallery-category-nav sup,.filters sup{font-size:12px}
.filters button,.search-tools,.search input{font-size:15px}
.search{max-width:260px}.search-tools{gap:22px}
.section-heading h2,.material-copy h2{font-size:46px}
.section-aside,.card-info p,.image-kind{font-size:14px}
.card-info h3{font-size:26px}
body .company-copy h2{font-size:clamp(40px,3.8vw,64px)}
body .company-feature .company-copy .company-intro{font-size:clamp(18px,1.3vw,24px);line-height:1.95}
.material-copy>p:not(.kicker){font-size:17px}
.intro{font-size:19px}.location,.about h2 small{font-size:15px}
.about h2{font-size:50px}.services h3{font-size:17px}.services span{font-size:15px}
.process-grid h3{font-size:20px}.process-grid p{font-size:16px}
.contact-grid h2{font-size:clamp(44px,4.8vw,73px)}.contact-grid p{font-size:16px}
.footer{font-size:14px;line-height:1.75}.footer small{font-size:12px;letter-spacing:.08em}
.hero-description{font-size:17px}.hero-link{font-size:16px}.hero-caption,.slide-control{font-size:14px}
.detail-top{font-size:15px}.project-heading h1{font-size:clamp(39px,4.3vw,69px)}
.project-heading>p:last-child{font-size:16px}
.project-overview dl>div{font-size:15px;grid-template-columns:65px 1fr}
.project-summary{font-size:23px}.project-overview h2{font-size:25px}.project-overview h2+p{font-size:17px;line-height:1.9}
.archive .section-heading>button,.space-nav a{font-size:15px}
.space-group h3{font-size:28px}.space-album strong{font-size:21px}
.space-album small,.album-photo-grid figcaption{font-size:14px}.album-description{font-size:16px}
.next-project small{font-size:14px}.next-project strong{font-size:31px}.project-end h2{font-size:39px}
body.editorial-image-page .brand strong{font-size:22px}
body.editorial-image-page .editorial-cover-copy h1{font-size:22px;letter-spacing:.08em}
body.editorial-image-page .editorial-cover-copy p{font-size:16px;line-height:1.85}
body.editorial-image-page .editorial-cover-meta{font-size:15px}
body.editorial-image-page .editorial-credits{font-size:15px}
body.editorial-image-page .editorial-credits h3{font-size:14px;letter-spacing:.03em}
body.editorial-image-page .editorial-credits p{font-size:15px}
body.editorial-image-page .editorial-prose{font-size:18px;line-height:1.9;text-align:start;overflow-wrap:anywhere}
body.editorial-image-page .editorial-prose h2{font-size:20px}
body.editorial-image-page .editorial-photos h2{font-size:19px}
body.editorial-image-page .editorial-end{font-size:16px}
.privacy h1{font-size:44px}.privacy p{font-size:18px;line-height:1.95}
.dialog-head h2{font-size:33px}.dialog-note,label{font-size:16px}
.consent,.form-status{font-size:15px}.lightbox-bar,.lightbox-controls p{font-size:16px}
.lightbox-hint{font-size:14px}.toast{font-size:16px}
.inline-owner-bar{font-size:16px;gap:10px}.inline-owner-bar button{padding:9px 12px}
.inline-owner-dialog h2{font-size:27px}.inline-upload-entry,.owner-image-slot strong{font-size:16px}
.owner-text-box{font-size:20px}
.console h1{font-size:48px}.console-actions span,.console-images button,.console input[type=file]{font-size:15px}
.admin-shell h1{font-size:40px}.admin-shell table,.admin-shell .message{font-size:16px}
@media(max-width:1100px){.main-nav{gap:18px}.brand strong{font-size:17px}}
@media(max-width:760px){
 body{font-size:17px}.kicker{font-size:13px;letter-spacing:.12em}
 .brand strong{font-size:16px}.brand small{font-size:11px;letter-spacing:.06em}
 .portfolio-nav-links{font-size:14px;gap:24px}.portfolio-admin-entry{font-size:14px}
 .portfolio-owner-actions>span{font-size:15px}.portfolio-masthead-nav{font-size:13px}
 .portfolio-masthead .portfolio-masthead-subtitle{font-size:17px;max-width:calc(100% - 32px);white-space:normal;width:max-content}
 .portfolio-masthead-copy>a.portfolio-identity-pill{font-size:18px}
 body .theme-toggle{font-size:13px;width:22px;height:22px;min-width:22px;min-height:22px}
 .portfolio-home .works-intro h2{font-size:56px}.portfolio-home .works-intro>p:last-child{font-size:17px}
 body.portfolio-home #works>.gallery-category-nav button{font-size:15px}
 .search-tools,.search input{font-size:14px}.search{max-width:180px}.search-tools{gap:12px}
 .section-heading h2,.material-copy h2{font-size:35px}.section-aside{font-size:15px}
 body .company-copy h2{font-size:38px}
 body .company-feature{gap:40px}
 body .company-feature .company-copy .company-intro{font-size:18px;line-height:1.95}
 .contact-grid h2{font-size:40px}.about h2{font-size:40px}.card-info h3{font-size:24px}
 .process-grid h3{font-size:18px}.process-grid p{font-size:15px}.services h3{font-size:16px}
 .hero-description{font-size:16px}.hero .kicker,.hero-caption span{font-size:12px}.hero-caption{font-size:13px}
 .project-heading h1{font-size:35px}.project-summary{font-size:21px}.space-group h3{font-size:26px}
 .space-album strong{font-size:19px}.project-end h2{font-size:33px}.next-project strong{font-size:26px}
 body.editorial-image-page .brand strong{font-size:17px;letter-spacing:.02em}
 body.editorial-image-page .editorial-cover-copy h1{font-size:20px}
 body.editorial-image-page .editorial-cover-copy p{font-size:15px}
 body.editorial-image-page .editorial-prose{font-size:17px;line-height:1.95}
 body.editorial-image-page .editorial-end{font-size:14px}
 .privacy h1{font-size:35px}.privacy p{font-size:17px}
 .lightbox-bar{font-size:14px;gap:10px;flex-wrap:wrap;height:auto;min-height:58px}
 .lightbox-controls p,.lightbox-hint{font-size:13px}.dialog-head h2{font-size:29px}
 .inline-owner-bar{font-size:15px;padding:10px 12px;gap:8px}.inline-owner-bar button{padding:7px 9px}
 .console h1{font-size:37px}.admin-shell table{font-size:14px}
}
@media(max-width:400px){
 body .site-header,body.editorial-image-page .site-header{padding-inline:12px;gap:8px}
 .site-header .brand{gap:8px;min-width:0;flex-shrink:1}
 .site-header .brand-mark{width:24px;height:24px;flex-shrink:0}
 .site-header .brand strong,body.editorial-image-page .site-header .brand strong{font-size:15px;letter-spacing:0}
 .site-header .brand>span:last-child{min-width:0}
 .site-header .brand strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .site-header .header-actions{flex-shrink:0}
}
/* Keep the search controls in one readable row on small screens. */
@media(max-width:760px){
 body.portfolio-home .work-tools>div:first-child:empty{display:none}
 body.portfolio-home .work-tools .search-tools{width:100%;justify-content:space-between;gap:20px}
 body.portfolio-home .work-tools .search{flex-direction:row;align-items:center;flex:1;min-width:0;max-width:220px;gap:8px}
}
/* LIN content: project navigation and portrait proportions within the gallery layout. */
body.portfolio-home #works>.gallery-category-nav{grid-template-columns:repeat(var(--portfolio-categories,6),minmax(0,1fr))}
body.portfolio-home .floating-gallery.card-spread{margin-bottom:70px}
.lin-project-index{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin:0 0 65px}
.lin-project-index a{display:grid;grid-template-columns:30px 1fr;gap:12px 16px;padding:23px 0;border-block:1px solid var(--line);align-items:baseline}
.lin-project-index a>span{font:italic 15px Georgia;color:var(--muted)}
.lin-project-index strong{font:400 29px/1.5 var(--serif)}
.lin-project-index small{grid-column:2;font-size:14px;color:var(--muted)}
.lin-project-index a:hover strong{color:var(--accent)}
body .company-feature.company-portrait>[data-brand-image]{height:auto;aspect-ratio:2/3;align-self:start;overflow:hidden}
body .company-feature.company-portrait>[data-brand-image] img{width:100%;height:100%;object-fit:contain}
body .company-feature.company-portrait .company-copy{padding:0;gap:22px}
body .company-feature.company-portrait .company-copy .company-intro{font-size:18px;line-height:2.1}
.lin-services{display:flex;flex-wrap:wrap;gap:12px 22px;padding-top:22px;margin-top:4px;border-top:1px solid var(--line);width:100%;scroll-margin-top:100px}
.lin-services span{font-size:14px;letter-spacing:.03em;color:var(--muted)}
.editorial-prose .line-link{display:inline-block;font-size:15px;margin-top:24px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.portfolio-home-logo{width:48px;height:42px;object-fit:contain}
/* Project media follow the project owner's chosen reading order. */
.archive>.project-panorama,.archive>.project-film{margin:60px 0;scroll-margin-top:125px}
.project-panorama h2,.project-film h2{font:400 30px/1.5 var(--serif);margin:12px 0 24px}
.panorama-cover{margin-bottom:20px;background:var(--panel)}
.panorama-cover img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:contain}
.project-panorama .panorama-view{height:clamp(320px,45vw,650px);background:var(--panel)}
.project-panorama .panorama-view:fullscreen{height:100vh}
.panorama-status{font-size:15px;color:var(--muted);margin-top:15px}
.project-film video{display:block;aspect-ratio:16/9;object-fit:contain}
.panorama-home{position:relative;min-height:320px;background:#17141e;overflow:hidden;border:1px solid var(--line)}
.panorama-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-top:18px}
.panorama-toolbar>button:not(.action){padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.panorama-view.panorama-unavailable:after{content:'360°';position:absolute;inset:0;display:grid;place-items:center;font:48px var(--sans);color:var(--muted)}
.panorama-dialog{width:96vw;height:94dvh;max-width:1800px;max-height:96dvh;padding:0;background:#0b0a10;color:#fff;border:1px solid #ffffff30}
.panorama-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:0}
.panorama-dialog::backdrop{background:#050407ee;backdrop-filter:blur(10px)}
.panorama-dialog-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 22px;border-bottom:1px solid #ffffff25}
.panorama-dialog-bar strong{font-size:18px;font-weight:500;white-space:nowrap}
.panorama-dialog-bar>div{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.panorama-dialog-bar button{min-height:42px;padding:8px 14px;font-size:14px;border:1px solid #ffffff40;border-radius:24px}
.panorama-dialog-bar [data-pano-close]{font-size:26px;min-width:44px;padding:0}
.panorama-dialog-stage{min-height:0;width:100%;height:100%}
.panorama-dialog .panorama-view{width:100%;height:100%;margin:0}
.panorama-dialog-hint{padding:10px 22px;font-size:14px;color:#c7c2d3;border-top:1px solid #ffffff25}
.panorama-dialog:fullscreen{width:100vw;height:100dvh;max-width:none;max-height:none;border:0}
.project-video-player{position:relative;background:#050505}
.video-play-overlay{position:absolute;inset:0 0 50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#fff;background:linear-gradient(transparent,#0003);text-shadow:0 2px 5px #000}
.video-play-overlay strong{display:grid;place-items:center;width:78px;height:78px;padding-left:5px;border:1px solid #ffffffb0;border-radius:50%;background:#18131d50;backdrop-filter:blur(8px);font-size:40px;font-weight:400}
.video-play-overlay span{font-size:16px;letter-spacing:.06em}
.project-video-player [data-video-status]:empty{display:none}
.project-video-player [data-video-status]{padding:12px;color:#fff;font-size:15px}
.portfolio-particle-canvas:focus-visible{outline:1px solid #b996eb;outline-offset:5px}
/* The reference recording uses a narrower desktop composition. Keep mobile readable. */
@media(min-width:1100px){
 body .wrap{max-width:1204px}
 .portfolio-home .works-intro h2{font-size:88px}
 .portfolio-home .works-intro>p:last-child{font-size:16px;max-width:650px}
 .portfolio-home .portfolio-masthead-subtitle{font-size:19px}
 .portfolio-home .portfolio-identity-pill{font-size:17px!important}
 body.portfolio-home .floating-gallery.card-spread{height:270px;margin-bottom:160px}
 body.portfolio-home .floating-gallery.card-spread:has(~ .lin-project-index){margin-bottom:55px}
}
@media(max-width:760px){
 .panorama-toolbar{gap:8px 18px}.panorama-toolbar>.action{width:100%;text-align:center}
 .panorama-dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border:0}
 .panorama-dialog-bar{padding:10px 12px;gap:10px;align-items:flex-start;flex-wrap:wrap}
 .panorama-dialog-bar>div{gap:8px;width:100%}.panorama-dialog-bar button{font-size:12px;padding:8px 10px}
 .panorama-dialog-bar [data-pano-close]{margin-left:auto}
 .panorama-dialog-hint{font-size:12px;padding:9px 12px}
 .video-play-overlay{bottom:42px;gap:8px}.video-play-overlay strong{width:52px;height:52px;font-size:28px}.video-play-overlay span{font-size:13px}
}
@media(max-width:760px){
 .lin-project-index{grid-template-columns:1fr;gap:22px;margin-bottom:30px}
 .lin-project-index strong{font-size:27px}
 body.portfolio-home .floating-gallery.card-spread{margin-bottom:50px}
 body .company-feature .company-copy .company-intro{font-size:17px;line-height:2}
 .portfolio-home-logo{height:28px;width:36px}
}

.lin-services:empty{display:none}

/* Quiet bilingual project titles, sized to the full-bleed image. */
body.editorial-image-page .editorial-cover-copy{left:6.3%;bottom:13%;width:min(620px,48%)}
body.editorial-image-page .editorial-cover-copy h1{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px;font:400 18px/1.6 var(--sans);letter-spacing:0;margin:0 0 18px;text-transform:none}
.editorial-title-en{font-family:Arial,'Segoe UI',sans-serif;letter-spacing:.15em;text-transform:uppercase}
.editorial-title-cn{font-size:16px;letter-spacing:.06em}
body.editorial-image-page .editorial-cover-copy>p{font:400 13px/1.9 var(--sans);letter-spacing:.035em;max-width:620px}
body.editorial-image-page .editorial-cover-meta{left:6.3%;right:6.3%;bottom:4.8%;font:400 11px/1.7 var(--sans);letter-spacing:.06em}
body.editorial-image-page .editorial-prose .editorial-section-en{font:400 10px/1.7 Arial,'Segoe UI',sans-serif;letter-spacing:.17em;margin-bottom:16px;color:var(--muted)}
.space-group>header small{font:400 10px/1.6 Arial,'Segoe UI',sans-serif;letter-spacing:.15em;color:var(--muted);margin-left:auto}
@media(max-width:760px){
 body.editorial-image-page .editorial-cover-copy{left:7%;width:86%;bottom:16%}
 body.editorial-image-page .editorial-cover-copy h1{font-size:15px;gap:5px 12px;margin-bottom:14px}
 .editorial-title-cn{font-size:14px}
 body.editorial-image-page .editorial-cover-copy>p{font-size:12px;line-height:1.85;max-width:440px}
 body.editorial-image-page .editorial-cover-meta{left:7%;right:7%;font-size:9px;bottom:5%;gap:10px}
 .space-group>header{gap:12px;flex-wrap:wrap}
 .space-group>header small{font-size:9px;letter-spacing:.09em}
}

/* Selected photos follow the same editorial grid as the introduction. */
body.editorial-image-page .editorial-filmstrip.editorial-sequence{display:block;padding-bottom:0}
.sequence-row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:32px;align-items:start;margin-bottom:90px}
.sequence-note{grid-column:1/4;grid-row:1;padding-top:8px}
.sequence-wide>figure{grid-column:5/13;grid-row:1}
.sequence-wide.sequence-reverse>figure{grid-column:1/9}
.sequence-wide.sequence-reverse>.sequence-note{grid-column:10/13}
.sequence-portrait>figure{grid-column:7/12;grid-row:1}
.sequence-portrait>.sequence-note{grid-column:2/6}
.sequence-portrait.sequence-reverse>figure{grid-column:2/7}
.sequence-portrait.sequence-reverse>.sequence-note{grid-column:8/12}
.sequence-pair>figure:first-child{grid-column:1/6}
.sequence-pair>figure:last-child{grid-column:8/13}
body.editorial-image-page .editorial-sequence img{width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
.editorial-sequence .kicker{font-size:10px;letter-spacing:.15em;color:var(--muted)}
.editorial-sequence h3{font:400 20px/1.7 var(--sans);margin:15px 0 12px}
.editorial-sequence h3+p{font:400 14px/1.9 var(--sans);color:var(--muted)}
.editorial-sequence figcaption{padding-top:22px}
.editorial-sequence figcaption h3{font-size:17px;margin:8px 0}
@media(max-width:760px){
 .sequence-row{grid-template-columns:minmax(0,1fr);gap:20px;margin-bottom:48px}
 .editorial-sequence .sequence-row>.sequence-note,.editorial-sequence .sequence-row:not(.sequence-pair)>figure{grid-column:1;grid-row:auto}
 .sequence-note{padding-top:0}
 .sequence-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .sequence-pair>figure:first-child{grid-column:1}
 .sequence-pair>figure:last-child{grid-column:2}
 .editorial-sequence h3{font-size:19px;margin:10px 0}
 .editorial-sequence figcaption h3{font-size:15px}
 .editorial-sequence figcaption h3+p{font-size:12px}
 .editorial-sequence figcaption{padding-top:16px}
}

/* Compact interactive studio card. All channels copy their visible value. */
body .inquiry.contact-card{width:860px;max-width:calc(100vw - 32px);padding:0;border:1px solid var(--line);border-radius:16px;overflow:auto;background:var(--bg);box-shadow:0 28px 100px #0007}
.contact-card::backdrop{background:#08060dcc;backdrop-filter:blur(14px)}
.contact-card-head{display:flex;align-items:center;justify-content:space-between;padding:15px 22px;border-bottom:1px solid var(--line);gap:16px}
.contact-card-head>div{display:flex;align-items:center;gap:12px;font:400 11px/1.5 var(--sans);letter-spacing:.14em}
.contact-card-head img{width:32px;height:32px;object-fit:contain}
.contact-card-head .icon-button{font-size:26px;line-height:1;border:1px solid var(--line);border-radius:50%;min-width:36px;min-height:36px}
.contact-card-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:418px}
.contact-card-visual{position:relative;isolation:isolate;min-width:0;padding:27px 22px 24px;text-align:center;overflow:hidden;background:radial-gradient(ellipse at 50% 50%,#9272d921,transparent 72%);border-right:1px solid var(--line)}
.contact-card-visual:before{content:'';position:absolute;inset:45px 18px;border:1px solid #a888e81b;border-radius:50%;z-index:-1;pointer-events:none;transform:rotate(-18deg)}
.contact-card-visual>.kicker{font-size:9px;letter-spacing:.24em;color:var(--muted)}
.contact-card .portfolio-particle-wrap{position:relative;inset:auto;width:100%;height:96px;transform:none;margin:5px auto 0}
.contact-card .portfolio-particle-canvas{cursor:pointer;filter:drop-shadow(0 0 7px #9c77db44)}
.contact-card-signature{font:400 12px/1.5 var(--sans);color:var(--muted);letter-spacing:.02em}
.contact-fan{position:relative;height:228px;margin:0 auto;width:100%;max-width:360px;perspective:800px}
.contact-work{position:absolute;left:50%;top:28px;width:var(--card-width,120px);aspect-ratio:3/4;border:1px solid #ffffff32;border-radius:7px;overflow:hidden;transform-origin:50% 120%;transform:translateX(calc(-50% + var(--card-x,0px))) translateY(var(--card-y,0px)) rotate(var(--card-angle,0deg)) scale(var(--card-scale,1));box-shadow:0 5px 16px #0005;transition:transform .4s cubic-bezier(.2,.8,.2,1);background:var(--panel)}
.contact-work img{width:100%;height:100%;object-fit:cover}
.contact-work>span{position:absolute;inset:auto 0 0;padding:18px 8px 8px;color:#fff;background:linear-gradient(transparent,#000b);font:400 10px/1.4 var(--sans);text-align:left;white-space:nowrap}
.contact-fan-hint{font:400 11px/1.5 var(--sans);color:var(--muted)}
.contact-card-info{min-width:0;padding:35px 28px 24px;align-self:center}
.contact-card-info>.kicker{font-size:9px;letter-spacing:.17em;color:var(--muted)}
.contact-card-info h2{font:400 31px/1.55 var(--serif);margin:11px 0 15px}
.contact-card-subject{font:400 13px/1.7 var(--sans);color:var(--muted);min-height:44px}
.contact-card .contact-links.contact-list{margin-top:16px;width:100%;max-width:none}
.contact-card .contact-row{gap:10px;grid-template-columns:2.2em minmax(0,1fr);min-height:54px}
.contact-card .contact-list .contact-value{font-size:14px;gap:8px;min-height:48px}
.contact-card .contact-label{font-size:12px}
.contact-copy-status{font:400 11px/1.6 var(--sans);color:var(--accent);min-height:20px;margin-top:9px;overflow-wrap:anywhere}
.contact-card-service{font:400 11px/1.7 var(--sans);color:var(--muted);margin-top:13px}
.contact-card-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:12px 22px;color:var(--muted);font:400 11px/1.6 var(--sans)}
.contact-card-foot button{flex-shrink:0;font:inherit;color:var(--ink);padding:7px 12px;border:1px solid var(--line);border-radius:20px;min-height:34px}
html[data-motion=reduced] .contact-work{transition:none}
.portfolio-motion-controls{white-space:normal;width:min(90%,740px);color:var(--muted);gap:22px}
.portfolio-motion-controls>[data-particle-hint]{text-align:center;font-size:12px}
.portfolio-motion-controls>button{white-space:nowrap;flex-shrink:0;color:var(--ink)}
@media(max-width:640px){
 body .inquiry.contact-card{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:12px}
 .contact-card-head{padding:10px 16px;position:sticky;top:0;z-index:20;background:var(--bg)}
 .contact-card-head>div{font-size:10px;gap:9px;letter-spacing:.07em}
 .contact-card-head img{width:28px;height:28px}
 .contact-card-body{grid-template-columns:minmax(0,1fr)}
 .contact-card-visual{padding:15px 18px 16px;border-right:0;border-bottom:1px solid var(--line)}
 .contact-card .portfolio-particle-wrap{height:70px;margin-top:0;max-width:320px}
 .contact-card-signature{font-size:11px}
 .contact-fan{max-width:280px;height:172px;margin-top:-3px}
 .contact-work{top:12px;max-width:106px}
 .contact-card-info{padding:22px 20px 14px}
 .contact-card-info h2{font-size:27px;margin:8px 0}
 .contact-card-subject{min-height:0;font-size:12px}
 .contact-card .contact-links.contact-list{margin-top:12px}
 .contact-card .contact-row{min-height:48px}
 .contact-card .contact-value{font-size:13px!important;min-height:44px!important}
 .contact-card-service{margin-top:6px}
 .contact-card-foot{padding:12px 16px;gap:10px;font-size:10px}
 .portfolio-motion-controls{gap:12px;align-items:center;bottom:2%}
 .portfolio-motion-controls>[data-particle-hint]{max-width:210px;font-size:11px;line-height:1.65}
}

/* A continuous project presentation, shared by cards and project titles. */
body.editorial-image-page .editorial-article>.archive{padding-top:56px;border-top:1px solid var(--line)}
body.editorial-image-page .archive .album-photo-grid img{height:auto;aspect-ratio:auto;object-fit:contain}
body.editorial-image-page .related-projects{padding-block:64px 80px}
.related-projects .kicker{text-align:center;color:var(--muted)}
body.editorial-image-page .related-projects h2{font:400 clamp(28px,3vw,42px)/1.5 var(--serif);letter-spacing:0;margin:12px 0 40px}
.related-project-grid{display:grid;gap:32px}
.related-project{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:clamp(28px,5vw,90px);align-items:center;text-decoration:none}
.related-project figure{overflow:hidden;background:var(--bg)}
body.editorial-image-page .related-project figure img{display:block;aspect-ratio:16/9;object-fit:cover;transition:transform .4s ease}
.related-project:hover figure img{transform:scale(1.025)}
.related-project-copy .kicker{text-align:left}
.related-project-copy h3{font:400 clamp(30px,3vw,50px)/1.4 var(--serif);margin:14px 0 18px}
.related-project-copy>p:not(.kicker){font-size:16px;color:var(--muted)}
.related-project-copy>span{display:flex;justify-content:space-between;align-items:center;gap:28px;width:170px;margin-top:36px;padding-bottom:12px;border-bottom:1px solid currentColor;font-size:15px}
.related-project-copy b{font-size:24px;font-weight:400}
.related-project:focus-visible{outline:2px solid var(--accent);outline-offset:8px}
@media(max-width:760px){
 body.editorial-image-page .editorial-article>.archive{padding-top:36px}
 body.editorial-image-page .related-projects{padding-block:40px}
 .related-project{grid-template-columns:minmax(0,1fr);gap:24px}
 body.editorial-image-page .related-projects h2{margin-bottom:28px}
 .related-project-copy h3{font-size:30px;margin-block:8px 12px}
 .related-project-copy>span{width:100%;margin-top:20px}
 .portfolio-masthead-copy .portfolio-identity-pill{min-width:220px;white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){.related-project figure img{transition:none}}

/* LIN brand lockup, shared across the homepage and project headers. */
:root{--header-font:var(--sans);--header-type-size:16px;--site-header-height:96px}
.site-header,.portfolio-masthead-nav{font-family:var(--header-font);font-weight:400}
.site-header .brand,.portfolio-masthead-nav .portfolio-identity{display:flex;align-items:center;gap:12px;min-width:0;max-width:none;overflow:visible;text-transform:none;color:inherit;text-decoration:none}
.site-header .brand-mark,.portfolio-masthead-nav .brand-mark{display:block;flex:0 0 40px;width:40px;height:40px}
.site-header .brand-mark img,.portfolio-masthead-nav .portfolio-home-logo{display:block;width:100%;height:100%;object-fit:contain}
.site-header .brand>span:last-child,.portfolio-masthead-nav .brand-wordmark{display:block;min-width:0;text-align:left}
body .site-header .brand strong,.portfolio-masthead-nav .brand-wordmark strong{display:block;font:400 var(--header-type-size)/1.4 var(--header-font);letter-spacing:0;white-space:nowrap;color:inherit}
body .site-header .brand small,.portfolio-masthead-nav .brand-wordmark small{display:block;margin-top:3px;font:400 10px/1.3 var(--header-font);letter-spacing:.12em;color:inherit;opacity:.65}
.site-header .main-nav a,.portfolio-masthead-nav .portfolio-nav-links{font:400 var(--header-type-size)/1.4 var(--header-font);color:inherit}
.site-header .main-nav small{font-family:var(--header-font);font-weight:400;color:inherit}
.portfolio-masthead-nav{top:32px;left:4.15%;right:4.15%;height:68px}
.portfolio-masthead-nav .portfolio-identity{justify-self:start}
.portfolio-nav-links{gap:32px}
.home-return{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 16px;border:1px solid var(--ink);border-radius:4px;background:var(--ink);color:var(--bg);font:400 14px/1.4 var(--header-font);white-space:nowrap}
.home-return:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}
body:not(.editorial-image-page):has(.home-return) .site-header{position:sticky;top:0;z-index:30}
body:has(.home-return) .space-nav{top:var(--site-header-height)}
html:has(.home-return){scroll-padding-top:calc(var(--site-header-height) + 70px)}
body.editorial-image-page .site-header .brand small{display:block}
.contact-grid{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr)}
.contact-links.contact-list{display:grid;gap:0;max-width:400px;margin-top:26px;font-family:var(--sans)}
.contact-row{display:grid;grid-template-columns:3em minmax(0,1fr);gap:18px;align-items:center;min-height:56px;border-bottom:1px solid var(--line)}
.contact-label{font-size:14px;color:var(--muted)}
.contact-list .contact-value{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:8px 0;border:0;min-height:48px;font:400 16px/1.5 var(--sans);text-align:left;background:none;color:inherit;overflow-wrap:anywhere}
.contact-value small{flex:none;font-size:11px;color:var(--muted)}
.contact-value:hover,.contact-value:hover small{color:var(--accent)}
@media(max-width:1200px){.site-header .header-actions>.nav-cta{display:none}.site-header{gap:20px}.site-header .header-actions{gap:14px}.main-nav{gap:22px}}
@media(max-width:900px){.site-header .main-nav small{display:none}.site-header .header-actions{gap:8px}.home-return{padding-inline:12px}}
@media(max-width:760px){
 :root{--header-type-size:14px;--site-header-height:112px}
 body .site-header,body.editorial-image-page .site-header{display:grid;grid-template-columns:minmax(0,1fr);height:var(--site-header-height);min-height:112px;padding:12px 16px;gap:9px}
 .site-header .brand{grid-column:1;grid-row:1;max-width:100%;justify-self:start}
 .site-header .header-actions{grid-column:1;grid-row:2;justify-content:flex-end;gap:8px;width:100%}
 .site-header .header-actions .home-return{margin-right:auto}
 .site-header .main-nav{top:100%;font-size:14px}
 .site-header .brand-mark,.portfolio-masthead-nav .brand-mark{width:34px;height:34px;flex-basis:34px}
 body .site-header .brand strong,.portfolio-masthead-nav .brand-wordmark strong{font-size:14px;overflow:visible;text-overflow:clip}
 body .site-header .brand small,.portfolio-masthead-nav .brand-wordmark small{font-size:9px;letter-spacing:.1em}
 .home-return{font-size:12px;min-height:36px;padding:7px 12px}
 .site-header .portfolio-admin-entry{font-size:12px}
 .portfolio-masthead-nav{top:20px;left:20px;right:20px;grid-template-columns:minmax(0,1fr) auto!important;min-height:96px;padding:10px 0 4px;row-gap:12px;column-gap:10px}
 .portfolio-masthead-nav .portfolio-identity{grid-column:1/-1;grid-row:1;max-width:100%;white-space:normal}
 .portfolio-masthead-nav .portfolio-nav-links{grid-column:1;grid-row:2;justify-content:flex-start;gap:14px;font-size:14px;padding:0}
 .portfolio-masthead-nav .portfolio-owner-actions{grid-column:2;grid-row:2;gap:8px}
 .portfolio-masthead-nav .portfolio-admin-entry{font-size:12px;padding-inline:0}
 .portfolio-masthead-nav .portfolio-owner-actions>span{display:none}
 .contact-grid{grid-template-columns:minmax(0,1fr)}
 .contact-row{gap:12px;grid-template-columns:2.5em minmax(0,1fr)}
 .contact-list .contact-value{font-size:15px;gap:10px}
 html{scroll-padding-top:128px}
}
@media(max-width:760px){body.portfolio-home #works>.gallery-category-nav{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Keep the gallery heading and controls aligned without saved pixel offsets. */
body.portfolio-home #works:not([data-works-layout="legacy"])>.work-tools>div:first-child:empty{display:none}
body.portfolio-home #works:not([data-works-layout="legacy"])>.work-tools .search-tools{display:flex;align-items:center;gap:24px;min-width:0}
body.portfolio-home #works:not([data-works-layout="legacy"])>.work-tools .search{display:flex;flex-direction:row;align-items:center;gap:8px;min-width:0;flex:1;max-width:220px}
body.portfolio-home #works:not([data-works-layout="legacy"])>.work-tools .search>span{flex:none;line-height:1}
body.portfolio-home #works:not([data-works-layout="legacy"])>.work-tools .search input{min-width:0}
@media(min-width:1001px){
 body.portfolio-home #works:not([data-works-layout="legacy"]){display:grid;grid-template-columns:minmax(0,1fr) 320px;column-gap:48px}
 body.portfolio-home #works:not([data-works-layout="legacy"])>*{grid-column:1/-1;min-width:0}
 body.portfolio-home #works:not([data-works-layout="legacy"])>.gallery-category-nav{grid-row:1}
 body.portfolio-home #works:not([data-works-layout="legacy"])>.works-intro{grid-row:2;grid-column:1}
 body.portfolio-home #works:not([data-works-layout="legacy"])>.work-tools{grid-row:2;grid-column:2;align-self:start;margin-top:76px;padding:0;border:0}
 body.portfolio-home #works:not([data-works-layout="legacy"])>.work-tools .search-tools{width:100%}
}
@media(max-width:1000px){
 body.portfolio-home #works:not([data-works-layout="legacy"])>.work-tools{justify-content:flex-end}
 body.portfolio-home #works:not([data-works-layout="legacy"])>.work-tools .search-tools{width:100%;justify-content:space-between}
}

/* v3.3: restrained violet/silver light on the subtitle, shared motion policy. */
.portfolio-masthead .portfolio-masthead-subtitle{color:#e9e0f8;--subtitle-flow:linear-gradient(110deg,#e9e0f8 0%,#c8b0ed 28%,#a989e4 40%,#fff 50%,#cab1f5 60%,#e9e0f8 78%,#e9e0f8 100%)}
html[data-theme=light] .portfolio-masthead .portfolio-masthead-subtitle{color:#44334f;--subtitle-flow:linear-gradient(110deg,#44334f 0%,#664485 28%,#8355ab 40%,#44334f 50%,#8355ab 60%,#664485 78%,#44334f 100%)}
@supports (background-clip:text) or (-webkit-background-clip:text){
 .portfolio-masthead .portfolio-masthead-subtitle,html[data-theme=light] .portfolio-masthead .portfolio-masthead-subtitle{background-image:var(--subtitle-flow);background-size:240% 100%;background-position:100% 50%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}
 html[data-motion=full] .portfolio-masthead .portfolio-masthead-subtitle{animation:portfolio-subtitle-flow 6s linear infinite!important}
}
html[data-motion=reduced] .portfolio-masthead .portfolio-masthead-subtitle{animation:none!important}
@keyframes portfolio-subtitle-flow{from{background-position:100% 50%}to{background-position:0% 50%}}

/* User-supplied Douyin contact image: preserve its original aspect and pixels. */
body .contact-grid.has-douyin{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 232px;gap:36px;align-items:center}
body .douyin-contact-card{width:232px;max-width:100%;margin:0;justify-self:end;text-align:center;align-self:center}
body .douyin-contact-card a{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden}
body .douyin-contact-card img{display:block;width:100%;height:auto;object-fit:contain;filter:none}
body .douyin-contact-card figcaption{font-size:13px;line-height:1.8;margin-top:12px}
body .douyin-contact-card small{font-size:11px;opacity:.7}
body .contact-card:has(.has-douyin){width:min(1080px,calc(100vw - 32px));max-width:1080px}
body .contact-card-body.has-douyin{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 220px;gap:0;padding-right:24px}
body .contact-card-body.has-douyin>.douyin-contact-card{width:210px}
@media(max-width:1000px){
 body .contact-grid.has-douyin{grid-template-columns:minmax(0,1fr) 232px;gap:28px}
 body .contact-grid.has-douyin>h2{grid-column:1/-1}
 body .contact-card-body.has-douyin{grid-template-columns:minmax(0,1fr);padding-right:0}
 body .contact-card-body.has-douyin>.douyin-contact-card{justify-self:center;margin:12px 0 28px}
}
@media(max-width:600px){
 body .contact-grid.has-douyin{grid-template-columns:minmax(0,1fr)}
 body .contact-grid.has-douyin>.douyin-contact-card{justify-self:start}
}
