/* Homepage studio. Existing catalogue, about and detail scenes remain scoped. */
:root{--bg:#fafbfd;--panel:#ffffff;--ink:#172033;--muted:#596579;--line:#dce3ed;--studio-paper:var(--bg);--studio-ink:var(--ink);--studio-muted:var(--muted);--studio-line:var(--line);--studio-blue:var(--accent);--studio-shadow:0 3px 5px #17203309,0 14px 30px #17203313;--studio-serif:"Songti SC",STSong,"Noto Serif CJK SC",serif}
html{scroll-padding-top:32px}body{background:var(--studio-paper);color:var(--studio-ink)}[hidden]{display:none!important}button,textarea,input{font:inherit}textarea,input{caret-color:var(--studio-blue)}button:disabled{cursor:default;opacity:.38}button:active:not(:disabled),.studio-button:active{translate:0 1px}textarea:focus-visible{outline:3px solid var(--studio-blue);outline-offset:4px}::selection{background:#d8e3fa;color:#172033}
.site-header{height:100px;padding:24px 3.4%;position:absolute;z-index:5}.site-header::after{left:3.4%;right:3.4%}.site-header .pageviews{position:static;font-size:11px;margin-left:22px;margin-right:auto}.header-edition{font-size:10px;letter-spacing:.08em;margin-right:34px}.header-link{font-size:12px}.identity-caption{font-size:10px}.identity .monogram{font-size:30px;letter-spacing:-2px}.dock-wrap{bottom:max(20px,env(safe-area-inset-bottom))}.dock{background:#fffffff5}.dock-label{color:inherit}.skip{z-index:40}footer{padding-bottom:130px}
.studio-home{overflow:clip;background:var(--studio-paper)}.orbit-section{height:980px;max-height:1120px;min-height:860px;position:relative;isolation:isolate;overflow:hidden}.orbit-gallery{position:absolute;inset:110px 0 80px;touch-action:pan-y}.studio-intro{position:absolute;z-index:2;left:50%;top:49%;translate:-50% -50%;text-align:center;width:510px;pointer-events:none}.studio-intro a,.studio-intro button{pointer-events:auto}.studio-signature{margin:0 0 24px}.studio-signature button{border:0;padding:0;background:none;font-family:Georgia,"Times New Roman",serif;font-size:31px;letter-spacing:-.04em;font-weight:500;color:var(--studio-ink)}.studio-signature span{color:var(--studio-blue)}.studio-intro h1{margin:0;font:500 clamp(48px,4.5vw,66px)/1.35 var(--studio-serif);letter-spacing:-.03em}.studio-intro h1>span{color:var(--studio-blue)}.studio-bio{font-size:15px;line-height:1.9;color:#596579;margin:23px 0 25px}.studio-button{display:inline-flex;justify-content:center;align-items:center;gap:32px;min-height:48px;border:1px solid var(--studio-ink);padding:12px 22px;border-radius:4px;transition:background .18s,color .18s,box-shadow .18s;font-size:14px}.studio-button.primary{background:var(--studio-ink);color:#ffffff}.studio-button.primary:hover{background:var(--studio-blue);border-color:var(--studio-blue)}.studio-disciplines{font-size:11px;color:var(--studio-muted);margin:24px 0 0;letter-spacing:.03em}.orbit-bottom{position:absolute;bottom:34px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;color:var(--studio-muted);font-size:12px}.studio-text-button{border:0;background:transparent;padding:12px 4px;min-height:44px;color:var(--studio-muted);font-size:12px;text-underline-offset:5px}.studio-text-button:hover{color:var(--studio-blue);text-decoration:underline}.orbit-card{position:absolute;left:50%;top:50%;width:142px;height:174px;padding:6px 6px 21px;border:0;border-radius:2px;background:#ffffff;color:var(--studio-ink);box-shadow:var(--studio-shadow);will-change:transform;touch-action:pan-y;user-select:none;-webkit-user-select:none}.orbit-card>.studio-cover{width:100%;height:100%;pointer-events:none}.orbit-card>.orbit-caption{display:block;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:5px;text-align:left;padding:0 2px}.orbit-card:hover,.orbit-card:focus-visible{box-shadow:0 5px 8px #1720330c,0 20px 35px #17203325;z-index:3}.orbit-card img{user-select:none;-webkit-user-drag:none;pointer-events:none}.orbit-card.art-orbit>.studio-cover{background:#e7e5df}.art-orbit img{width:100%;height:100%;object-fit:cover}
/* Shared, data-driven cover identities, independent of home DOM. */
.studio-cover{display:block;position:relative;overflow:hidden;width:100%;height:100%;background:#e9ece4;color:#20272c;container-type:inline-size;text-align:left}.cover-top,.cover-bottom{position:absolute;left:7%;right:7%;display:flex;align-items:start;justify-content:space-between}.cover-top{top:7%;font:600 7cqw/1.2 Georgia,serif}.cover-top>span{font:400 2.6cqw/1.5 var(--mono);letter-spacing:.03em}.cover-bottom{bottom:6%;font:400 3cqw/1.4 var(--font)}.cover-bottom>span{font-size:2.7cqw}.cover-zeta{background:#e5ecf4}.cover-zeta-mark{position:absolute;left:24%;top:23%;width:52%;height:54%;object-fit:contain;mix-blend-mode:multiply}.cover-zeta .cover-top{font-size:10cqw}.cover-top>svg{width:5%;stroke:currentColor;stroke-width:1.4}.cover-memoria{background:#eee8d9}.reminder-title{position:absolute;top:22%;left:8%;font:400 9cqw/1.06 Georgia,serif;letter-spacing:-.03em}.reminder-title em{color:#58644f}.memory-sheets{position:absolute;left:25%;top:48%;width:60%;height:35%}.memory-sheets i{position:absolute;inset:0;background:#f7f5ea;box-shadow:0 3px 6px #30382d15;rotate:-10deg}.memory-sheets i:nth-child(2){rotate:8deg;translate:10% -8%;background:#dfddcc}.memory-sheets i:last-child{rotate:-3deg;padding:7% 8%;translate:-8% 9%;font-style:normal}.memory-sheets small{display:block;font:2.5cqw var(--mono);color:#5c6356}.memory-sheets b{display:block;font:5cqw Georgia,serif;margin:12% 0}.memory-sheets i span{display:block;height:1px;background:#c9cbbb;margin-top:7%;width:84%}.cover-art{width:100%;height:100%;object-fit:cover;display:block}.cover-art-caption{position:absolute;bottom:0;left:0;right:0;background:#fffefbf2;padding:6% 7%;font:500 5.5cqw var(--studio-serif)}.cover-art-caption>span{display:block;font:2.3cqw var(--mono);margin-top:4%}.cover-jianying{background:#ece7de}.jianying-title{position:absolute;left:7%;top:21%;font:500 9cqw/1.05 Georgia,serif;letter-spacing:-.03em}.cover-film{position:absolute;left:-3%;top:50%;width:106%;height:25%;display:flex;gap:2%;rotate:-5deg;padding:3% 0;background:#343934}.cover-film img{width:32%;height:100%;object-fit:cover}.cover-wave{position:absolute;left:7%;bottom:14%;width:86%;height:8%;stroke:#747d6c;stroke-width:1.5}.cover-generic-title{position:absolute;top:37%;left:8%;right:8%;font:500 9cqw/1.15 Georgia,serif;overflow-wrap:anywhere}.cover-small .cover-bottom{font-size:3cqw}.cover-small .cover-top>span{font-size:3cqw}.cover-small .cover-art-caption{font-size:6cqw}.cover-news,.cover-dispatch,.cover-ecommerce{background:#e0e6dc}.cover-mneme-vue,.cover-mneme-react,.cover-incident-ui{background:#e0e8ec}
.work-section,.guestbook-section{padding:90px 5% 80px;scroll-margin-top:12px}.work-section{background:#ffffff}.studio-section-heading{max-width:1320px;margin:0 auto 34px;display:flex;justify-content:space-between;align-items:end;gap:24px}.studio-section-note{font-size:12px;color:var(--studio-muted);margin:0 0 18px}.studio-section-heading h2{font:400 clamp(35px,4vw,54px)/1.35 var(--studio-serif);letter-spacing:-.03em;margin:0}.studio-section-heading h2 span{color:#2867ed}.studio-section-heading>p{font-size:13px;line-height:1.9;color:var(--studio-muted);margin:0 0 4px}.clothes-line{position:relative;margin:0 -5.56%;}.clothes-rope{position:absolute;left:0;top:0;width:100%;height:140px;pointer-events:none;overflow:visible}.clothes-rope path{fill:none;stroke:#a39175;stroke-width:1.25;vector-effect:non-scaling-stroke}.clothes-track{display:flex;gap:46px;padding:40px max(5%,calc((100vw - 1320px)/2)) 130px;overflow-x:auto;scrollbar-width:none;touch-action:pan-x pan-y;overscroll-behavior-x:contain;user-select:none;-webkit-user-select:none}.hanging-project{position:relative;flex:0 0 292px;transform-origin:50% -12px;}.hanging-project::before{content:"";position:absolute;z-index:2;left:calc(50% - 5px);top:-28px;width:10px;height:43px;border:1px solid #b28b60;border-radius:2px;background:#c7a47b;box-shadow:inset 2px 0 #e0c5a2,2px 2px 3px #17203320;pointer-events:none}.hanging-project button{display:block;width:100%;border:0;text-align:left;background:#ffffff;padding:8px;color:var(--studio-ink);box-shadow:var(--studio-shadow);border-radius:2px}.hanging-project button:hover{box-shadow:0 4px 6px #1720330a,0 20px 34px #17203321}.hanging-project .studio-cover{height:310px}.hanging-caption{display:block;padding:20px 5px 9px}.hanging-caption>small{font:10px var(--mono);color:var(--studio-muted);display:block;margin-bottom:9px}.hanging-title{display:flex;align-items:center;justify-content:space-between;font:500 23px/1.25 var(--studio-serif);gap:8px}.hanging-title b{font-weight:500}.hanging-direction{font-size:12px;color:var(--studio-muted);margin-top:9px;display:block}.work-controls{display:flex;justify-content:space-between;align-items:center;max-width:1320px;margin:20px auto 0;gap:20px}.studio-pagination{display:flex;align-items:center;gap:19px}.studio-pagination>span{font:11px var(--mono);font-variant-numeric:tabular-nums;color:var(--studio-muted);min-width:56px;text-align:center}.studio-round{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid #b7c4d6;border-radius:50%;background:transparent;font-size:20px;color:var(--studio-ink);transition:background .18s,color .18s}.studio-round:hover:not(:disabled){background:var(--studio-ink);color:#ffffff;border-color:var(--studio-ink)}.studio-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;font-size:13px;text-underline-offset:6px}.studio-link:hover{text-decoration:underline;color:var(--studio-blue)}
.guestbook-section{background:#f0f4fa;padding-top:110px;padding-bottom:100px}.quote-deck{position:relative;height:370px;margin:60px auto 10px;max-width:1100px;touch-action:pan-y;outline-offset:8px}.quote-card{position:absolute;left:50%;top:10px;width:390px;min-height:282px;height:300px;padding:33px;background:#ffffff;box-shadow:var(--studio-shadow);border-radius:2px;transform:translateX(calc(-50% + var(--offset)*230px)) rotate(calc(var(--offset)*7deg)) scale(calc(1 - var(--distance)*.08));opacity:calc(1 - var(--distance)*.27);z-index:calc(3 - var(--distance));transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .3s;display:flex;flex-direction:column}.quote-card:nth-of-type(3n + 2){background:#e4edfc}.quote-card:nth-of-type(3n){background:#edf0fa}.quote-card[aria-hidden="true"]{pointer-events:none}.quote-message{margin:22px 0 16px;font:400 19px/1.85 var(--studio-serif);white-space:pre-wrap;overflow-wrap:anywhere;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.quote-card header{display:flex;justify-content:space-between;color:#596579;font-size:10px}.quote-card header>span{font:10px var(--mono)}.quote-author{display:flex;justify-content:space-between;margin-top:auto;font-size:12px;align-items:center;gap:10px}.quote-author>span{overflow-wrap:anywhere}.quote-author button{background:transparent;border:0;font-size:11px;min-height:44px;color:var(--studio-ink);padding:4px}.quote-author button:hover{text-decoration:underline}.quote-empty,.studio-loading{padding:42px 24px;text-align:center;color:var(--studio-muted);font-size:14px;line-height:1.9;margin:0}.quote-empty{position:absolute;left:50%;top:10px;translate:-50%;rotate:-3deg;width:390px;min-height:285px;background:#ffffff;box-shadow:var(--studio-shadow);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px}.quote-empty strong{font:400 28px/1.6 var(--studio-serif);color:var(--studio-ink)}.quote-controls{display:flex;align-items:center;justify-content:center;gap:24px;min-height:48px;flex-wrap:wrap}.guestbook-form{display:grid;grid-template-columns:1fr 1.3fr;gap:100px;max-width:1040px;margin:85px auto 0;padding:52px 0 0;border-top:1px solid var(--studio-line)}.form-intro h3{font:400 29px/1.6 var(--studio-serif);margin:0 0 18px;letter-spacing:-.02em}.form-intro p{font-size:12px;line-height:1.9;color:var(--studio-muted)}.field-heading{display:flex;justify-content:space-between;gap:16px;font-size:12px;margin:0 0 10px}.field-heading>span{font-size:10px;color:var(--studio-muted)}.form-fields input,.form-fields textarea{width:100%;padding:13px 15px;background:#ffffff;border:1px solid #aab8cb;border-radius:3px;color:var(--studio-ink);font-size:14px;line-height:1.8;display:block}.form-fields textarea{resize:vertical;min-height:130px;max-height:400px}.form-fields input:hover,.form-fields textarea:hover{border-color:#596579}.form-fields ::placeholder{color:#596579;opacity:1}.form-fields [aria-invalid="true"]{border-color:#9b3f30}.field-error{font-size:12px;color:#9b3f30;min-height:18px;margin:5px 0 14px}.form-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px}.form-bottom>span{font-size:10px;color:var(--studio-muted)}.form-status{font-size:12px;line-height:1.8;min-height:44px;margin:14px 0 0;color:var(--studio-muted)}.form-status[data-kind="error"]{color:#9b3f30}.studio-notice{max-width:1000px;padding:20px;font-size:14px;line-height:1.8;margin:20px auto}.studio-notice a{text-decoration:underline}.studio-contact{border-top:1px solid var(--studio-line);margin:0 5%;padding:42px 0;display:flex;align-items:center;gap:36px;font-size:12px}.studio-contact>p{margin-right:auto;font:400 24px var(--studio-serif)}.studio-contact>a{min-height:44px;display:flex;align-items:center;gap:18px}.studio-contact>a:hover{color:var(--studio-blue)}.workbench-dialog{max-width:680px;width:calc(100% - 32px);padding:32px;background:#ffffff;color:var(--studio-ink);border:0;box-shadow:var(--studio-shadow);border-radius:5px;max-height:85svh}.workbench-dialog h2{font:400 32px var(--studio-serif);margin:28px 0 18px}.workbench-dialog>p{font-size:13px;line-height:1.9;color:var(--studio-muted)}#workbench-projects{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:28px 0}#workbench-projects button{border:1px solid var(--studio-line);background:none;color:var(--studio-ink);text-align:left;padding:15px;min-height:50px;font-size:13px}#workbench-projects button:hover{background:#e8effa}.note-reading{white-space:pre-wrap;font-size:18px!important;overflow-wrap:anywhere;color:var(--studio-ink)!important}.project-preview .studio-cover{width:100%;height:100%}.project-preview{overflow:hidden}.motion-suspended :is(.art-track,.code-stream,.memory-stream,.zeta-packet,.zeta-signal){animation-play-state:paused!important}
@media(min-width:1600px){.orbit-section{height:1060px}.orbit-card{width:160px;height:196px}}
@media(max-width:1000px){.header-edition{display:none}.orbit-section{height:960px}.orbit-card{width:128px;height:158px}.studio-intro{width:450px}.studio-intro h1{font-size:58px}.clothes-track{gap:32px}.guestbook-form{gap:60px}.studio-section-heading h2{font-size:43px}.studio-contact{gap:24px}.studio-contact>p{font-size:21px}}
@media(max-width:600px){.site-header{height:82px;padding:19px 6%}.site-header .pageviews{font-size:9px;margin-left:auto;margin-right:0}.site-header .header-link,.identity-caption{display:none}.site-header::after{left:6%;right:6%}.identity{font-size:12px}.identity .monogram{font-size:28px}.orbit-section{height:890px;min-height:840px}.orbit-gallery{inset:90px 0 65px}.orbit-card{width:104px;height:130px;padding:5px 5px 17px}.orbit-card .orbit-caption{font-size:7px;margin-top:3px}.studio-intro{width:310px;top:49%}.studio-signature{margin-bottom:20px}.studio-signature button{font-size:27px}.studio-intro h1{font-size:46px;line-height:1.4}.studio-bio{font-size:13px;line-height:1.9;margin:22px 0}.studio-disciplines{font-size:9px;margin-top:20px}.studio-button{min-height:47px;font-size:12px;padding:11px 20px}.orbit-bottom{left:6%;right:6%;bottom:21px;font-size:10px}.studio-text-button{font-size:11px}.work-section,.guestbook-section{padding:60px 6%}.studio-section-heading{display:block;margin-bottom:24px}.studio-section-note{font-size:11px;margin-bottom:14px}.studio-section-heading h2{font-size:36px}.studio-section-heading>p{font-size:12px;margin:20px 0 0}.studio-section-heading>.studio-link{margin-top:15px}.clothes-line{margin:0 -6.82%}.clothes-track{padding:40px 8% 130px;gap:24px}.hanging-project{flex-basis:76vw;max-width:310px}.hanging-project .studio-cover{height:300px}.hanging-caption{padding-top:17px}.hanging-title{font-size:22px}.hanging-direction{font-size:11px}.work-controls{gap:10px;margin-top:15px}.studio-pagination{gap:10px}.studio-pagination>span{font-size:10px;min-width:48px}.studio-round{width:44px;height:44px;font-size:18px}.studio-link{font-size:11px;gap:7px}.guestbook-section{padding-top:65px}.guestbook-section h2{font-size:33px}.quote-deck{height:330px;margin-top:35px}.quote-card{width:82vw;max-width:360px;height:280px;min-height:280px;padding:25px;transform:translateX(calc(-50% + var(--offset)*72vw)) rotate(calc(var(--offset)*7deg)) scale(calc(1 - var(--distance)*.08))}.quote-empty{width:82vw;min-height:260px;padding:28px}.quote-empty strong{font-size:25px}.quote-message{font-size:18px;margin-top:18px}.quote-controls{gap:12px}.guestbook-form{grid-template-columns:1fr;gap:24px;margin-top:55px;padding-top:35px}.form-intro h3{font-size:27px;line-height:1.5;margin:0 0 14px}.form-intro p{font-size:11px}.form-bottom>span{font-size:9px}.studio-contact{margin:0 6%;padding:30px 0;gap:16px;flex-wrap:wrap}.studio-contact>p{flex-basis:100%;font-size:24px;margin:0 0 4px}.studio-contact>a{font-size:11px;gap:8px}.studio-contact button{margin-left:auto}.dock-wrap{bottom:max(12px,env(safe-area-inset-bottom))}.dock{gap:3px;padding:8px 9px}.dock-item{width:44px;height:44px}.dock-divider{margin:0 3px}footer{padding:15px 6% 118px;font-size:10px}.workbench-dialog{padding:24px}.workbench-dialog h2{font-size:27px}#workbench-projects{grid-template-columns:1fr}.studio-notice{padding:12px}.projects-view .filters{flex-wrap:wrap}}
@media(max-width:350px){.studio-intro{width:280px}.studio-intro h1{font-size:41px}.work-controls{align-items:start;flex-direction:column}.studio-section-heading h2{font-size:32px}.hanging-project .studio-cover{height:270px}.dock-item{width:39px}.studio-contact button{margin-left:0}.quote-card{padding:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.studio-home *, .studio-home *::before{animation:none!important;transition:none!important}.orbit-card{will-change:auto}.quote-card{transition:none}}

.orbit-gallery{clip-path:inset(0)}.hanging-title b{min-width:0;overflow-wrap:anywhere}.motion-suspended :is(#art-gallery,#project-atmosphere) *{animation-play-state:paused!important}

.studio-home section:focus{outline:none}.studio-home :is(button,a,input,textarea):focus-visible{outline:3px solid var(--studio-blue);outline-offset:5px}
html{scroll-behavior:auto}footer{position:static;width:auto;inset:auto;transform:none}footer::before{display:none}
body:has(#home:not([hidden])) footer,body:has(#home[hidden]) footer{position:static;inset:auto;margin:0 5%;padding:18px 0 130px;width:auto;transform:none}
/* Readable functional labels; cover artwork keeps its own printed type scale. */
.site-header .pageviews,.header-edition,.header-edition>span{font-size:11px;color:var(--studio-muted)}
.orbit-caption,.orbit-card .orbit-caption{font-size:11px}.orbit-bottom,.studio-disciplines,.studio-pagination>span,.field-heading>span,.form-bottom>span{font-size:11px}
.quote-card header,.quote-card header>span,.hanging-caption>small{font-size:11px}
.form-intro p{font-size:12px}.projects-view .kicker,.project-notes .kicker,.about-view>.kicker{font-size:11px}
@media(max-width:600px){.studio-contact>a{font-size:12px}footer{font-size:10px}}

.studio-cover img{pointer-events:none;user-select:none;-webkit-user-drag:none}
:root{--studio-link-ink:#2461df}.studio-link:hover,.studio-text-button:hover,.studio-contact>a:hover{color:var(--studio-link-ink)}

/* Shared interface palette: cool white surfaces, blue states, ink text. */
.dock .dock-item.active{background:var(--accent);color:var(--panel)}
.dock .dock-item:not(.active){color:var(--muted)}
.dock .dock-item:not(.active):hover,.dock .dock-item:focus-visible{background:#e8effa;color:var(--ink)}
.studio-button.primary{background:var(--accent);border-color:var(--accent)}
.studio-button.primary:hover{background:#1d50c5;border-color:#1d50c5}
.about-view h2>span{color:var(--accent)}
.about-columns ul,.projects-view :is(.group-heading p,.group-index,.filter>span,.group-heading h3>span),.search input::placeholder{color:var(--muted)}
.filter.active{color:var(--accent)}
#project-dialog .project-notes :is(.description,ul,.note){color:var(--muted)}
#project-dialog .project-notes{color:var(--ink)}
#art-lightbox{background:var(--bg)}
#art-lightbox::backdrop{background:#eef3faeb}
.art-lightbox-close:hover,#art-prev:hover,#art-next:hover{background:#e8effa;color:var(--ink)}
dialog::backdrop{background:#dbe4f0b8}
dialog.memory-project,dialog.editing-project{background:rgb(240 244 250 / 55%)}

.clothes-track::-webkit-scrollbar{display:none}

/* Attacker print from the live portfolio; scale its artwork to the shared cover. */
.cover-attacker{background:#20272c;color:#fffefb}
.cover-attacker .ap-heading{position:absolute;top:6%;left:7%;right:7%;font-size:2.5cqw;letter-spacing:.3cqw}
.cover-attacker .ap-registration{font-size:5.4cqw;color:#fffefb}
.cover-attacker .ap-art{position:absolute;top:12%;left:5%;right:5%;height:55%;margin:0}
.cover-attacker .ap-contours{stroke:#fffefb}
.cover-attacker .ap-cut-shadow{fill:#20272c}
.cover-attacker .ap-title{position:absolute;left:7%;right:7%;bottom:16%;margin:0;font-size:15cqw;letter-spacing:-.7cqw}
.cover-attacker .ap-title-mark{font-size:7cqw}
.cover-attacker .ap-foot{position:absolute;left:7%;right:7%;bottom:5%;margin:0;padding-top:3cqw;gap:2cqw}
.cover-attacker .ap-foot>span:first-child{font-size:3cqw}
.cover-attacker .ap-foot>span:last-child{font-size:1.9cqw;letter-spacing:.08cqw}

/* Four abstract prints; geometry and typography scale with the shared cover. */
:is(.cover-zeta,.cover-memoria,.cover-a-commerce,.cover-eyes){--print-ink:#243dce;background:#edf0e9;color:var(--print-ink)}
.cover-memoria{--print-ink:#34493d;background:#e7e5d5}
.cover-a-commerce{--print-ink:#263dce;background:#efb293}
.cover-eyes{--print-ink:#dbe9c8;background:#202c2a}
.print-meta,.print-footer{position:absolute;left:7%;right:7%;display:flex;justify-content:space-between;gap:4%;font:400 2.3cqw/1.5 var(--mono);letter-spacing:.035em}
.print-meta{top:6%;padding-bottom:3%;border-bottom:1px solid currentColor}
.print-art{position:absolute;left:0;top:15%;width:100%;height:64%;overflow:visible}
.print-title{position:absolute;left:6%;right:6%;bottom:11%;display:flex;align-items:baseline;justify-content:space-between;font:400 19cqw/.95 Georgia,serif;letter-spacing:-.04em}
.cover-memoria .print-title{font-size:15cqw}
.cover-a-commerce .print-title{font-size:13.9cqw;letter-spacing:-.04em}
.print-symbol{font:italic 13cqw/1 Georgia,serif}
.print-footer{bottom:4%;align-items:end;font-size:2.2cqw;letter-spacing:0}
.print-footer>span:last-child{text-align:right;max-width:43%;font-size:1.95cqw}

/* Zeta: sculptural artwork with live editorial type. */
.cover-zeta{background:#eef1f4;color:#172033}
.zeta-sculpture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.zeta-edition,.zeta-edition-foot{position:absolute;left:7%;right:7%;display:flex;justify-content:space-between;font:400 2.3cqw/1.4 var(--mono);letter-spacing:.04em}
.zeta-edition{top:5%}
.zeta-edition-foot{bottom:4%;font-size:2cqw}
.zeta-sculpture-title{position:absolute;left:6%;right:7%;bottom:10%;display:flex;align-items:end;justify-content:space-between;font:400 23cqw/.8 Georgia,serif;letter-spacing:-.04em}
.zeta-sculpture-title>span{padding-bottom:1%;font:400 3cqw/1.3 Georgia,serif;letter-spacing:0}
.project-preview .zeta-sculpture{object-fit:contain;object-position:right center}

/* A-commerce: interlocking amber glass and ceramic arches. */
.cover-a-commerce{background:#e8d9c9;color:#392b22}
.commerce-sculpture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.commerce-edition,.commerce-edition-foot{position:absolute;left:7%;right:7%;display:flex;justify-content:space-between;gap:4%;font:400 2.3cqw/1.4 var(--mono);letter-spacing:.04em}
.commerce-edition{top:5%}
.commerce-sculpture-title{position:absolute;left:6%;right:6%;bottom:9%;font:400 14.4cqw/1 Georgia,serif;letter-spacing:-.04em}
.commerce-edition-foot{bottom:4%;font-size:1.9cqw;letter-spacing:0}
.project-preview .commerce-sculpture{object-fit:contain;object-position:right center}

/* Reminder: linked porcelain and frosted-glass memory leaves. */
.cover-memoria{background:#e1e5dc;color:#293c30}
.reminder-sculpture{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}
.reminder-edition,.reminder-edition-foot{position:absolute;left:7%;right:7%;display:flex;justify-content:space-between;gap:4%;font:400 2.3cqw/1.4 var(--mono);letter-spacing:.04em}
.reminder-edition{top:5%}
.reminder-sculpture-title{position:absolute;left:6%;right:6%;bottom:9%;font:400 17.8cqw/1 Georgia,serif;letter-spacing:-.04em}
.reminder-edition-foot{bottom:4%;font-size:1.9cqw;letter-spacing:0}
.project-preview .reminder-sculpture{object-fit:contain;object-position:right center}

/* Eyes: preserve the full tarot plate and its engraved frame at both sizes. */
.cover-eyes{background:#e9cdb0;color:#503b30}
.eyes-tarot-frame{position:absolute;top:0;left:50%;height:100%;aspect-ratio:1122/1402;max-width:100%;transform:translateX(-50%);container-type:inline-size}
.eyes-tarot-art{display:block;width:100%;height:100%;pointer-events:none}
.eyes-tarot-edition,.eyes-tarot-title,.eyes-tarot-foot{position:absolute;left:12%;right:12%;text-align:center}
.eyes-tarot-edition{top:9%;font:400 3cqw/1.2 Georgia,serif;letter-spacing:.18em}
.eyes-tarot-title{bottom:6.3%;font:400 14cqw/.95 Georgia,serif;letter-spacing:.025em}
.eyes-tarot-foot{bottom:3.6%;font:400 2.1cqw/1.3 var(--mono);letter-spacing:.08em}

/* Cool gallery atmosphere gives the clear material a visible backdrop. */
.work-section{background:radial-gradient(ellipse at 12% 58%,rgb(190 211 239 / .55),transparent 62%),radial-gradient(ellipse at 93% 67%,rgb(209 198 229 / .42),transparent 58%),linear-gradient(180deg,#f7f9fc 0%,#e8edf5 28%,#e8edf5 100%)}
/* Thin glass: directional edge light, local artwork tint, clear content. */
:root{--project-glass-radius:30px;--project-glass-edge:rgb(111 131 156 / .13);--project-glass-shadow:0 2px 3px rgb(25 42 68 / .025),0 15px 26px -17px rgb(25 42 68 / .22)}
.hanging-project button{position:relative;isolation:isolate;overflow:hidden;padding:10px;border:1px solid var(--project-glass-edge);border-radius:var(--project-glass-radius);background:rgb(255 255 255 / .16);box-shadow:var(--project-glass-shadow);transition:box-shadow .24s ease,border-color .24s ease}
.hanging-project button::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgb(255 255 255 / .95) 0%,rgb(255 255 255 / .7) 18%,transparent 39%,transparent 66%,rgb(103 129 160 / .17) 88%,transparent 100%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:.85;transition:opacity .24s ease}
.hanging-project button::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;backdrop-filter:blur(5px) saturate(125%);background:radial-gradient(ellipse at 0% 0%,rgb(255 255 255 / .65),transparent 52%),linear-gradient(145deg,transparent 60%,rgb(216 229 244 / .12));opacity:.6;transition:opacity .24s ease}
.hanging-project button:hover{border-color:rgb(111 131 156 / .19);box-shadow:0 2px 4px rgb(25 42 68 / .035),0 19px 30px -18px rgb(25 42 68 / .25)}
.hanging-project button:hover::before,.hanging-project button:hover::after{opacity:1}
.hanging-project button:focus-visible{outline:3px solid var(--studio-blue);outline-offset:5px}
.hanging-project button>.studio-cover{position:relative;z-index:1;border-radius:20px;box-shadow:none}
.glass-reflection{position:absolute;inset:0;padding:8px;border-radius:inherit;pointer-events:none;opacity:.16;filter:saturate(110%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude}
.hanging-project .glass-reflection>.studio-cover{height:310px;width:100%;border-radius:20px;filter:blur(5px)}
.hanging-caption{position:relative;z-index:1;margin:8px -2px -2px;padding:15px 10px 14px;border-radius:0;background:transparent;box-shadow:none}
.hanging-caption>small,.hanging-direction{color:#46546a}
.hanging-title>span{display:flex;align-items:center;justify-content:center;flex:0 0 30px;height:30px;border:1px solid rgb(121 142 169 / .14);border-radius:50%;background:transparent;box-shadow:none;font-size:18px}
.project-preview{padding:5px;border:1px solid rgb(111 131 156 / .2);border-radius:17px;background:rgb(255 255 255 / .12);box-shadow:0 3px 8px -4px rgb(25 42 68 / .16),inset 0 1px 0 #fff;backdrop-filter:blur(2px) saturate(115%)}
.project-preview>.studio-cover{border-radius:12px}
@media(prefers-reduced-motion:reduce){.hanging-project button,.hanging-project button::before,.hanging-project button::after{transition:none}}

/* Readability: clear content layers and larger supporting print. */
.hanging-direction{font-size:13px;color:#344257}
.hanging-caption>small{color:#46546a}
.zeta-edition,.commerce-edition,.reminder-edition{font-size:3cqw}
.zeta-edition-foot,.commerce-edition-foot,.reminder-edition-foot{font-size:2.7cqw}
.eyes-tarot-edition{font-size:3.4cqw}
.eyes-tarot-foot{font-size:2.7cqw;letter-spacing:.025em}

.guestbook-confetti{position:fixed;inset:0;z-index:1000;pointer-events:none;overflow:hidden}
.guestbook-confetti i{position:absolute;width:7px;height:12px;border-radius:1px}
@media(prefers-reduced-motion:reduce){.guestbook-confetti{display:none}}

/* Quote deck: continuous, coloured paper cards inspired by the supplied film. */
.guestbook-section{position:relative;overflow:hidden;padding-top:72px;padding-bottom:72px}
.guestbook-section .studio-section-heading{padding-right:125px}
.quote-deck{--drag:0px;--step:290px;height:390px;max-width:none;margin:48px -5.56% 0;perspective:1400px;cursor:grab;user-select:none;touch-action:pan-y}
.quote-card{width:350px;height:350px;min-height:350px;top:12px;padding:24px;border-radius:14px;transform:translateX(calc(-50% + var(--offset)*var(--step) + var(--drag))) translateY(calc(var(--distance)*12px)) rotate(calc(var(--offset)*5deg)) scale(calc(1 - var(--distance)*.065));opacity:calc(1 - var(--distance)*.18);z-index:calc(10 - var(--distance));box-shadow:0 14px 22px -15px #17203340;transition:transform .65s cubic-bezier(.22,.8,.25,1),opacity .5s;cursor:pointer}
.quote-card[aria-hidden="true"]{opacity:0;pointer-events:none}
.quote-card[data-active="true"]{cursor:grab}
.is-dragging .quote-card{transition:none;cursor:grabbing}
.quote-card header{font:10px var(--font);color:#465064}
.quote-message{flex:1;align-content:center;text-align:center;font:400 25px/1.4 var(--font);letter-spacing:-.025em;margin:20px 0;display:block;max-height:210px}
.quote-card[data-long="true"] .quote-message{font-size:19px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical}
.quote-author{border-top:1px solid #17203340;padding-top:12px;min-height:45px}
.quote-author button{min-height:36px}
.quote-controls{justify-content:flex-start;max-width:1320px;margin:0 auto;min-height:40px}
#quote-pagination{gap:12px}
#quote-prev,#quote-next{position:absolute;top:78px;background:#172033;color:white;border-color:#172033}
#quote-prev{right:calc(5% + 57px)}#quote-next{right:5%}
#quote-prev:hover:not(:disabled),#quote-next:hover:not(:disabled){background:#2867ed;border-color:#2867ed}
#quote-prev:disabled,#quote-next:disabled{opacity:.35;cursor:default}
.quote-deck[data-count="0"],.quote-deck[data-count="1"]{height:365px}
.quote-empty{width:350px;min-height:320px;border-radius:14px;top:12px}
@media(max-width:600px){.quote-deck{--step:74vw;height:350px}.quote-card{width:78vw;max-width:330px;height:310px;min-height:310px;padding:20px}.quote-message{font-size:22px}.guestbook-section .studio-section-heading{padding-right:110px}.guestbook-section .studio-section-heading>.studio-link{margin-top:8px}#quote-prev,#quote-next{top:72px;width:40px;height:40px}#quote-prev{right:calc(6% + 48px)}#quote-next{right:6%}}
@media(prefers-reduced-motion:reduce){.quote-card{transition:none}}
