/* V33 — mineral pigments, a silk-paper folio and quiet gilded rules. */
body.portfolio-v33{
  --paper:#f4ebdd;--ink:#252421;--muted:#655f53;--line:#c9b99c;--accent:#a83e2b;
  --mineral-teal:#155e52;--mineral-gold:#aa8241;--mineral-light:#fcf7ed;
  background:var(--paper);color:var(--ink);
}
body.portfolio-v33 ::selection{background:#e2c7a9;color:#252421}
body.portfolio-v33 :focus-visible{outline-color:#a83e2b}
body.portfolio-v33 .nav{background:var(--paper);border-bottom-color:#bfa67d}
body.portfolio-v33 .brand,body.portfolio-v33 .nav-links>a{color:var(--ink)}
body.portfolio-v33 .nav-cta{border-color:#8d7554;color:var(--ink)}
body.portfolio-v33 .quick-trigger{color:#5f594e}
body.portfolio-v33 .editorial-topline{color:#6a5b46;border-bottom:1px solid #c9b99c;padding-bottom:20px}
body.portfolio-v33 .editorial-hero-grid{padding-top:48px;padding-bottom:52px;gap:clamp(40px,6vw,88px);min-height:620px}
body.portfolio-v33 .editorial-kicker{border-color:var(--accent);color:#5f594e}
body.portfolio-v33 .editorial-hero-title{font-family:'Songti SC','STSong','SimSun',serif;font-weight:600;letter-spacing:-5px;color:var(--ink)}
body.portfolio-v33 .editorial-hero-title .editorial-name-en{font-size:.59em;letter-spacing:-3px;color:var(--mineral-teal);margin-top:18px;font-weight:400}
body.portfolio-v33 .hero-position{color:var(--ink)}
body.portfolio-v33 .hero-description{color:#655f53}
body.portfolio-v33 .hero-actions .btn{background:var(--accent);border-color:var(--accent);color:#fff8ec;min-height:52px}
body.portfolio-v33 .hero-contact{color:var(--mineral-teal)}
body.portfolio-v33 .hero-baseline{border-top:3px double #b59a70;border-bottom:0}
body.portfolio-v33 .hero-facts{color:#655f53}
body.portfolio-v33 .hero-facts b{color:var(--mineral-teal)}
body.portfolio-v33 .hero-facts>span+span{border-color:var(--line)}
body.portfolio-v33 .hero-controls{color:#655f53}
body.portfolio-v33 .scroll-link{color:#5e594c}
body.portfolio-v33 .hero-project-sheet.mineral-folio{padding:0;background:transparent;color:var(--ink);border:0;border-radius:0;box-shadow:none;transform:none}
body.portfolio-v33 .mineral-art{position:relative;overflow:hidden;margin:0;border:1px solid #ad8f5f;aspect-ratio:3/2;background:#f2e5ce;isolation:isolate}
body.portfolio-v33 .mineral-art:after{content:'';position:absolute;inset:9px;border:1px solid #b28d4a80;pointer-events:none}
body.portfolio-v33 .mineral-art picture,body.portfolio-v33 .mineral-art img{display:block;width:100%;height:100%;object-fit:cover}
body.portfolio-v33 .mineral-art img{transform-origin:center;transition:transform 1s cubic-bezier(.22,1,.36,1)}
body.portfolio-v33 .mineral-art figcaption{position:absolute;left:8%;top:10%;margin:0;max-width:55%;color:#373027}
body.portfolio-v33 .mineral-art figcaption>span{display:block;font:500 clamp(24px,2.6vw,37px)/1.45 'Songti SC','STSong','SimSun',serif;letter-spacing:3px}
body.portfolio-v33 .mineral-art figcaption small{display:block;margin-top:13px;font-size:8px;line-height:1.7;letter-spacing:1.6px}
body.portfolio-v33 .folio-index{display:flex;justify-content:space-between;gap:14px;padding:21px 0 11px;font-size:9px;line-height:1.7;letter-spacing:1.2px;color:#6b5a43;border-bottom:1px solid #bfa67d}
body.portfolio-v33 .folio-project{display:grid;grid-template-columns:25px minmax(0,1fr) 28px;gap:13px;align-items:center;min-height:82px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink)}
body.portfolio-v33 .folio-number{align-self:start;padding-top:4px;font:italic 15px/1.5 Georgia,serif;color:var(--accent)}
body.portfolio-v33 .folio-project-copy{min-width:0}
body.portfolio-v33 .folio-project strong{display:block;font:400 22px/1.3 Georgia,'Songti SC','SimSun',serif;letter-spacing:-.4px;overflow-wrap:anywhere}
body.portfolio-v33 .folio-project small{display:block;font-size:11px;line-height:1.8;color:#655f53;margin-top:5px}
body.portfolio-v33 .folio-arrow{justify-self:end;font:25px/1 Georgia,serif;color:var(--mineral-teal);transition:transform .3s ease}
body.portfolio-v33 .mineral-folio a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

body.portfolio-v33 .work-section,body.portfolio-v33 #about{background:var(--mineral-light)}
body.portfolio-v33 .section-heading h2,body.portfolio-v33 #about .about-compact h2,body.portfolio-v33 .reference-teaser h2{font-family:'Songti SC','STSong','SimSun',serif;color:var(--ink);font-weight:600;letter-spacing:-1.2px}
body.portfolio-v33 .section-number{color:var(--accent)}
body.portfolio-v33 .section-heading{border-top:3px double #bfa67d;padding-top:28px}
body.portfolio-v33 .section-heading>p{color:#655f53}
body.portfolio-v33 .case-media>a.case-product-preview,body.portfolio-v33 .case-media>a.case-product-preview.real-preview{background:#e2e8dd;border:1px solid #b4bda8;padding:24px}
body.portfolio-v33 #project-astrrot .case-media>a.case-product-preview{background:#eee0d2;border-color:#c9b99c}
body.portfolio-v33 .case-preview-top{border-color:#a1ad99}
body.portfolio-v33 .case-product-number{color:var(--mineral-teal)}
body.portfolio-v33 .case-heading h3,body.portfolio-v33 .case-deck{color:var(--ink)}
body.portfolio-v33 .case-summary,body.portfolio-v33 .case-inquiry{color:#655f53}
body.portfolio-v33 .case-footer .btn{color:var(--mineral-teal);border-color:#6c8f7b}
body.portfolio-v33 .project-filter>button[aria-pressed='true']{color:var(--accent);box-shadow:inset 0 -2px var(--accent)}
body.portfolio-v33 .service-layout{border-color:#bfa67d}
body.portfolio-v33 .offer>summary .offer-title{color:var(--ink);font-family:'Songti SC','STSong','SimSun',serif;font-weight:600}
body.portfolio-v33 .offer>summary .offer-num{color:var(--accent)}
body.portfolio-v33 .offer[open]>summary{border-color:#a83e2b}
body.portfolio-v33 #services :is(.consult-strip>p>span,.offer-preview-label,.delivery-note){color:#5e594c}
body.portfolio-v33 #about .about-compact>div:first-child{border-color:#bfa67d}
body.portfolio-v33 #about .about-compact>div:first-child:before{background:var(--accent)}
body.portfolio-v33 #about .about-role{color:var(--accent)}
body.portfolio-v33 #about .about-statement{color:#344d40}
body.portfolio-v33 .reference-teaser{background:#ede3d1;border-color:#bfa67d}
body.portfolio-v33 .shelf-agents{--shelf-ink:#183b32;--shelf-muted:#52604c;--shelf-line:#abb99f;background:#dce4d7;border-color:#b4bda8;border-left-color:#526b55}
body.portfolio-v33 .shelf-rag{--shelf-muted:#52604c;background:#f1dfc6}
body.portfolio-v33 .shelf-practice{--shelf-muted:#685143;background:#ead4c6}
body.portfolio-v33 #contact{--contact-paper:#f4ebdd;--contact-ink:#252b26;--contact-soft:#d4cec1;--contact-rule:#7b7a66;background:var(--contact-ink);border-top:4px double #b69a65}
body.portfolio-v33 #contact .contact-heading h2{font-family:'Songti SC','STSong','SimSun',serif;font-weight:500;color:var(--contact-paper)}
body.portfolio-v33 #contact .contact-heading h2 em{color:#e6bc7a}
body.portfolio-v33 #contact .channel-wechat{outline:1px solid #b69a65;outline-offset:-7px}
body.portfolio-v33 #contact .channel-wechat .plain-button{background:#9e3928;border-color:#9e3928;color:#fff8ec}
body.portfolio-v33 #contact #inquiry-details .optional{color:#5e594c}
body.portfolio-v33 .footer{background:var(--paper)}
body.portfolio-v33 .footer-wordmark{color:var(--ink);border-color:#bfa67d}
body.portfolio-v33 .footer-wordmark em{color:var(--mineral-teal)}
body.portfolio-v33 .footer-wordmark>span{color:var(--accent)}
body.portfolio-v33 .quick-dialog{background:#fcf7ed;border-color:#a88b5e}
body.portfolio-v33 .quick-head{border-color:#c9b99c}
body.portfolio-v33 #quick-query{background:#f5eddf;border-color:#a8987e;color:#252421}
body.portfolio-v33 .quick-item[aria-selected='true']{background:#e8dcc5;color:#252421;border-color:#c6a66f}
body.portfolio-v33 .mobile-contact .mobile-wechat{background:#9e3928;color:#fff8ec}
body.portfolio-v33 .mobile-contact .mobile-call{background:#f4ebdd;color:#252421}

.reference-page.ref-v33.editorial-reference{--ref-paper:#f4ebdd;--ref-ink:#252421;--ref-muted:#655f53;--ref-line:#c9b99c;--ref-accent:#a83e2b;background:var(--ref-paper)}
.reference-page.ref-v33 .ref-header{border-bottom-color:#bfa67d}
.reference-page.ref-v33 .ref-hero h1,.reference-page.ref-v33 .ref-section-heading h2{font-family:'Songti SC','STSong','SimSun',serif;font-weight:600;letter-spacing:-1.2px}
.reference-page.ref-v33 .ref-hero h1>span{color:#155e52;font-weight:400}
.reference-page.ref-v33 .ref-art-margin{height:105px;margin-bottom:22px;border:1px solid #bfa67d;padding:5px;overflow:hidden;background:#f2e5ce}
.reference-page.ref-v33 .ref-art-margin img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 65%}
.reference-page.ref-v33 .ref-section-heading{border-top:3px double #bfa67d}
.reference-page.ref-v33 .ref-reading-nav{background:#f4ebdd;border-color:#bfa67d}
.reference-page.ref-v33 #ref-search{background:#fcf7ed;border-color:#a8987e}
.reference-page.ref-v33 .ref-compare-dialog{background:#fcf7ed;color:#252421;border-color:#a88b5e}
.reference-page.ref-v33 .ref-compare-dialog .ref-compare-heading{background:#fcf7ed}
.reference-page.ref-v33 .ref-select[aria-pressed='true']{background:#155e52;border-color:#155e52;color:#fff8ec}

@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  body.portfolio-v33[data-motion-ready='true']:not(.motion-paused) .mineral-art:hover img{transform:scale(1.025)}
  body.portfolio-v33[data-motion-ready='true']:not(.motion-paused) .folio-project:hover .folio-arrow{transform:translate(3px,-3px)}
}
@media(max-width:1280px){body.portfolio-v33 .mineral-art figcaption small{display:none}}
@media(max-width:1100px){
  body.portfolio-v33 .editorial-hero-grid{min-height:540px;gap:36px;padding-block:35px}
  body.portfolio-v33 .editorial-hero-title{font-size:76px;letter-spacing:-4px}
  body.portfolio-v33 .editorial-hero-title .editorial-name-en{font-size:.6em;letter-spacing:-2px}
  body.portfolio-v33 .mineral-art figcaption>span{font-size:24px;line-height:1.3;letter-spacing:2px}
  body.portfolio-v33 .mineral-art figcaption small{display:none}
  body.portfolio-v33 .folio-project strong{font-size:20px}
  body.portfolio-v33 .folio-project small{font-size:10px}
}
@media(max-width:760px){
  html.js body.portfolio-v33 .nav-links,body.portfolio-v33 .nav-links{background:var(--paper);border-color:#bfa67d}
  body.portfolio-v33 .editorial-topline{padding-block:20px 17px}
  body.portfolio-v33 .editorial-hero-grid{grid-template-columns:minmax(0,1fr);gap:36px;min-height:0;padding:34px 0 30px}
  body.portfolio-v33 .editorial-hero-title{font-size:clamp(66px,14vw,92px);line-height:1.08;letter-spacing:-3px}
  body.portfolio-v33 .editorial-hero-title .editorial-name-en{font-size:.64em;letter-spacing:-2px;margin-top:12px}
  body.portfolio-v33 .mineral-art{aspect-ratio:1.6}
  body.portfolio-v33 .mineral-art figcaption{top:8%}
  body.portfolio-v33 .mineral-art figcaption>span{font-size:clamp(23px,6.1vw,36px);line-height:1.3}
  body.portfolio-v33 .mineral-art figcaption small{display:none}
  body.portfolio-v33 .folio-index{padding-top:18px;font-size:9px}
  body.portfolio-v33 .folio-project{min-height:77px;gap:11px}
  body.portfolio-v33 .folio-project strong{font-size:22px}
  body.portfolio-v33 .folio-project small{font-size:11px}
  body.portfolio-v33 .section-heading{padding-top:23px}
  body.portfolio-v33 .case-media>a.case-product-preview,body.portfolio-v33 .case-media>a.case-product-preview.real-preview{padding:16px}
  .reference-page.ref-v33 .ref-art-margin{height:75px;margin-bottom:20px}
}
@media(max-width:360px){
  body.portfolio-v33 .editorial-hero-title{font-size:63px}
  body.portfolio-v33 .editorial-hero-title .editorial-name-en{font-size:.61em}
  body.portfolio-v33 .mineral-art figcaption>span{font-size:22px;letter-spacing:1px}
  body.portfolio-v33 .folio-project{grid-template-columns:21px minmax(0,1fr) 20px;gap:8px}
  body.portfolio-v33 .folio-project strong{font-size:19px}
  body.portfolio-v33 .folio-project small{font-size:10px}
}
body.portfolio-v33.motion-paused :is(.mineral-art img,.folio-arrow){transform:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){body.portfolio-v33 :is(.mineral-art img,.folio-arrow){transform:none!important;transition:none!important}}

/* V34 — a two-part project letter, with a wider mobile writing surface. */
body.portfolio-v34 #contact .inquiry-details:focus-visible{outline:2px solid #d5b47e;outline-offset:6px}
body.portfolio-v34 #contact .inquiry-details>summary{min-height:88px;padding-block:20px}
body.portfolio-v34 #contact .inquiry-details>summary strong{font-family:'Songti SC','STSong','SimSun',serif;font-size:26px;letter-spacing:.2px}
body.portfolio-v34 #contact .inquiry-details>.contact-card{padding:32px 36px 36px;border-top:3px double #aa8956;background:#f4ebdd}
body.portfolio-v34 #contact .inquiry-details .contact-card-heading{gap:14px;margin-bottom:28px;padding-bottom:22px;border-color:#c9b99c}
body.portfolio-v34 #contact .inquiry-details .contact-card-heading h3{font:500 clamp(26px,2.7vw,36px)/1.4 'Songti SC','STSong','SimSun',serif;letter-spacing:-.6px;color:#252421}
body.portfolio-v34 #contact .inquiry-details .contact-card-heading>span{color:#655b49;font-size:10px;letter-spacing:1px}
body.portfolio-v34 #contact .inquiry-workspace{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:36px}
body.portfolio-v34 #contact .inquiry-step{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid #c9b99c;color:#9e3928;font-size:11px;line-height:1.8;letter-spacing:.6px}
body.portfolio-v34 #contact .inquiry-step small{font-size:11px;letter-spacing:0;color:#655b49}
body.portfolio-v34 #contact .inquiry-details label{font-size:14px;color:#343229}
body.portfolio-v34 #contact .inquiry-details :is(input,select,textarea){border-color:#b7a98f;background:#fffaf2;color:#252421}
body.portfolio-v34 #contact .inquiry-details :is(input,textarea)::placeholder{color:#6c665a}
body.portfolio-v34 #contact .inquiry-details :is(input,select,textarea):focus{border-color:#a83e2b;outline:2px solid #a83e2b;outline-offset:2px;background:#fffdf7}
body.portfolio-v34 #contact .inquiry-preferences{border-color:#c9b99c}
body.portfolio-v34 #contact .inquiry-details .need-meta,body.portfolio-v34 #contact .inquiry-details .form-note{color:#655f53}
body.portfolio-v34 #contact .inquiry-details .btn{background:#a83e2b;border-color:#a83e2b;color:#fff8ec}
body.portfolio-v34 #contact .inquiry-details .btn.secondary{background:transparent;border-color:#8c7554;color:#343229}
body.portfolio-v34 #contact .inquiry-details #copy-inquiry[data-copied='true']{background:#155e52;border-color:#155e52;color:#fff8ec}
body.portfolio-v34 #contact .inquiry-letter-panel{padding:26px;border:1px solid #b99c6e;border-top:3px double #aa8956;background:#eee2cc;color:#252421}
body.portfolio-v34 #contact .inquiry-letter-panel .letter-kicker{font-size:11px;letter-spacing:.8px;color:#9e3928;margin-bottom:20px}
body.portfolio-v34 #contact #summary-placeholder h4{font:500 clamp(25px,2.5vw,33px)/1.5 'Songti SC','STSong','SimSun',serif;color:#252421;letter-spacing:-.5px}
body.portfolio-v34 #contact #summary-placeholder>p:not(.letter-kicker){color:#655b49;font-size:14px}
body.portfolio-v34 #contact .letter-guide>li{border-color:#c5ae87;color:#344d40}
body.portfolio-v34 #contact #summary-placeholder>p.letter-note{border-color:#c5ae87;color:#655b49;font-size:12px}
body.portfolio-v34 #contact .inquiry-letter-panel:has(#summary-output:not([hidden])){background:#fcf7ed}
body.portfolio-v34 #contact .inquiry-details .summary-output h4{font:500 32px/1.4 'Songti SC','STSong','SimSun',serif;color:#252421;letter-spacing:-.5px;margin-bottom:21px}
body.portfolio-v34 #contact .inquiry-details .summary-output #email-help{color:#655f53}
body.portfolio-v34 #contact .inquiry-details .summary-output #inquiry-copy-status{font-size:13px;line-height:1.8;color:#155e52;margin:0 0 14px}
body.portfolio-v34 #contact .inquiry-details #inquiry-copy-status:empty{display:none}
body.portfolio-v34 #contact .letter-recipient{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:baseline;margin:0 0 15px;padding-block:13px;border-block:1px solid #c9b99c;font-size:12px;color:#655b49}
body.portfolio-v34 #contact .letter-recipient strong{font-size:15px;font-weight:400;color:#252421}
body.portfolio-v34 #contact .inquiry-details .summary-output label{font-size:12px;color:#655b49}
body.portfolio-v34 #contact .inquiry-details .summary-output textarea{background:#fffcf6;border-color:#b7a98f;height:340px;min-height:240px}
body.portfolio-v34 #contact .inquiry-details .download-brief{color:#155e52;text-decoration-color:#788f73}
body.portfolio-v34 .wechat-dialog,body.portfolio-v34 .wechat-dialog .qr-dialog-head,body.portfolio-v34 #copy-dialog{background:#f4ebdd;border-color:#b99c6e}
body.portfolio-v34 .qr-dialog-head h2,body.portfolio-v34 #copy-dialog h2{font-family:'Songti SC','STSong','SimSun',serif;color:#252421}
body.portfolio-v34 .qr-context,body.portfolio-v34 .qr-account>span{color:#5e594c}
body.portfolio-v34 .qr-dialog-actions .btn,body.portfolio-v34 #copy-dialog .btn{background:#a83e2b;border-color:#a83e2b;color:#fff8ec}
@media(max-width:1100px){body.portfolio-v34 #contact .inquiry-workspace{gap:26px}}
@media(max-width:1000px){body.portfolio-v34 #contact .inquiry-workspace{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){
  body.portfolio-v34 #contact .inquiry-details>summary{min-height:86px;padding-block:18px}
  body.portfolio-v34 #contact .inquiry-details>summary strong{font-size:24px}
  body.portfolio-v34 #contact .inquiry-details>.contact-card{padding:25px 18px 26px}
  body.portfolio-v34 #contact .inquiry-details .contact-card-heading{margin-bottom:23px;padding-bottom:18px}
  body.portfolio-v34 #contact .inquiry-details .contact-card-heading h3{font-size:27px;line-height:1.45}
  body.portfolio-v34 #contact .inquiry-details .contact-card-heading>span{font-size:9px;margin-top:10px}
  body.portfolio-v34 #contact .inquiry-step{margin-bottom:19px}
  body.portfolio-v34 #contact .inquiry-details label{font-size:14px}
  body.portfolio-v34 #contact .inquiry-letter-panel{padding:23px 0 0;border:0;border-top:3px double #aa8956;background:none}
  body.portfolio-v34 #contact .inquiry-letter-panel:has(#summary-output:not([hidden])){background:none}
  body.portfolio-v34 #contact .inquiry-details .summary-output h4{font-size:28px}
  body.portfolio-v34 #contact .inquiry-details .summary-output textarea{height:340px;min-height:240px}
}
@media(max-width:360px){
  body.portfolio-v34 #contact .inquiry-details>.contact-card{padding-inline:14px}
  body.portfolio-v34 #contact .inquiry-details .contact-card-heading h3{font-size:24px}
  body.portfolio-v34 #contact .inquiry-details .summary-actions{grid-template-columns:minmax(0,1fr)}
}
@media(prefers-reduced-motion:no-preference){body.portfolio-v34:not(.motion-paused) #summary-output:not([hidden]){animation:letter-arrive .25s cubic-bezier(.22,1,.36,1)}}
@keyframes letter-arrive{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}

/* V35 — keep the newly added gateway screenshot in its original proportions. */
body.portfolio-v35 #project-hyaloria .case-media>a.case-product-preview{background:#e6e2d7;border-color:#b9ad94}
body.portfolio-v35 #project-hyaloria .case-artwork{aspect-ratio:1270/714;background:#0a0d15}
body.portfolio-v35 .case-details .case-facts dt{color:#5e594c}

/* V36 — HYALORIA's creative workspace, a separate view of the same product. */
body.portfolio-v36 #project-hyaloria-playground .case-media>a.case-product-preview{background:#e6e2d7;border-color:#b9ad94}
body.portfolio-v36 #project-hyaloria-playground .case-artwork{aspect-ratio:725/604;background:#0a0b0c}
body.portfolio-v36 #project-hyaloria-playground .case-access-note{color:#5e594c;font-size:12px;line-height:1.8;margin:19px 0 6px}
body.portfolio-v36 #project-hyaloria-playground .case-facts a{display:block;width:fit-content;max-width:100%;min-height:44px;padding-block:8px;color:#155e52;text-decoration:underline;text-underline-offset:4px}
/* V38 — a compact opening spread and a persistent index for the application folio. */
body.portfolio-v38 .editorial-hero-grid{min-height:0;gap:clamp(36px,4.8vw,70px);padding-block:36px 38px}
body.portfolio-v38 .mineral-art{aspect-ratio:2/1}
body.portfolio-v38 .mineral-art figcaption>span{font-size:clamp(24px,2.3vw,32px);line-height:1.35}
body.portfolio-v38 .mineral-art figcaption small{display:none}
body.portfolio-v38 .folio-index{padding-top:16px}
body.portfolio-v38 .folio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
body.portfolio-v38 .folio-project{grid-template-columns:18px minmax(0,1fr) 17px;gap:9px;min-height:108px;align-items:start;padding-block:16px}
body.portfolio-v38 .folio-project strong{font-size:19px;line-height:1.3;letter-spacing:-.3px}
body.portfolio-v38 .folio-project small{font-size:11px;line-height:1.8}
body.portfolio-v38 .folio-arrow{font-size:22px;padding-top:3px}
body.portfolio-v38 .work-layout{display:grid;grid-template-columns:154px minmax(0,1fr);gap:32px;align-items:start}
body.portfolio-v38 .work-layout.is-archive-view{grid-template-columns:minmax(0,1fr)}
body.portfolio-v38 .work-content{min-width:0}
body.portfolio-v38 .work-index{position:sticky;top:var(--work-index-top,96px);align-self:start;min-width:0;color:#5e594c}
body.portfolio-v38 .work-index-heading{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:10px;line-height:1.8;letter-spacing:.6px}
body.portfolio-v38 [data-work-position]{font:italic 13px/1.8 Georgia,serif;color:#155e52;white-space:nowrap;font-variant-numeric:tabular-nums}
body.portfolio-v38 .work-index-track{height:2px;background:#d9ccb7;margin:10px 0 9px;overflow:hidden}
body.portfolio-v38 .work-index-track>span{display:block;width:100%;height:100%;background:#a83e2b;transform:scaleX(var(--work-progress,0));transform-origin:left center;transition:transform .15s linear}
body.portfolio-v38 .work-index-links{display:grid;min-width:0}
body.portfolio-v38 .work-index-links>a{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;align-items:start;min-height:76px;padding:12px 5px 12px 9px;border-left:2px solid transparent;border-bottom:1px solid #d6c9b3;color:#5e594c}
body.portfolio-v38 .work-index-num{font:italic 12px/1.8 Georgia,serif;color:#8b6450}
body.portfolio-v38 .work-index-links strong{display:block;font:400 14px/1.4 Georgia,'Songti SC','SimSun',serif;overflow-wrap:anywhere}
body.portfolio-v38 .work-index-links small{display:block;margin-top:5px;font-size:10px;line-height:1.6}
body.portfolio-v38 .work-index-links>a[aria-current='location']{border-left-color:#a83e2b;background:#eee6d6;color:#155e52}
body.portfolio-v38 .work-index-links>a[aria-current='location'] .work-index-num{color:#a83e2b}
body.portfolio-v38 .work-index-contact{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-top:18px;font-size:11px;color:#155e52;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#aa9980}
body.portfolio-v38 .work-index a:focus-visible{outline:2px solid #a83e2b;outline-offset:3px}
body.portfolio-v38 .case-list{gap:56px}
body.portfolio-v38 .case-row.case-showcase{column-gap:32px;padding-bottom:48px;scroll-margin-top:max(0px,calc(var(--work-anchor-offset,208px) - var(--work-scroll-padding,104px)))}
body.portfolio-v38 .case-heading h3{font-size:clamp(28px,2.6vw,38px);line-height:1.17}
body.portfolio-v38 .case-media>a.case-product-preview,body.portfolio-v38 .case-media>a.case-product-preview.real-preview{padding:18px}
@media(hover:hover){body.portfolio-v38 .work-index-links>a:hover{background:#f0e9db;color:#155e52}}
@media(max-width:1279px){
 body.portfolio-v38 .work-layout{display:block;--work-scroll-padding:104px}
 body.portfolio-v38 .work-index{z-index:12;padding:11px 0 0;margin-bottom:28px;border-top:1px solid #bfa67d;border-bottom:1px solid #c9b99c;background:#fcf7ed;box-shadow:0 10px 16px #fcf7ed}
 body.portfolio-v38 .work-index-heading{font-size:10px}
 body.portfolio-v38 .work-index-track{margin:7px 0 0}
 body.portfolio-v38 .work-index-links{display:flex;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:thin}
 body.portfolio-v38 .work-index-links>a{flex:1 0 180px;min-height:65px;padding:10px 12px;border-left:0;border-bottom:2px solid transparent;grid-template-columns:18px minmax(0,1fr)}
 body.portfolio-v38 .work-index-links>a[aria-current='location']{border-bottom-color:#a83e2b}
 body.portfolio-v38 .work-index-links strong{font-size:13px}
 body.portfolio-v38 .work-index-links small{margin-top:3px}
 body.portfolio-v38 .work-index-contact{display:none}
 body.portfolio-v38 .case-heading h3{font-size:clamp(30px,3.2vw,40px)}
}
@media(max-width:760px){
 body.portfolio-v38 .editorial-hero-grid{gap:28px;padding-block:30px}
 body.portfolio-v38 .folio-grid{gap:0 16px}
 body.portfolio-v38 .folio-project{min-height:114px;grid-template-columns:16px minmax(0,1fr) 15px;gap:7px;padding-block:14px}
 body.portfolio-v38 .folio-project strong{font-size:18px;line-height:1.3}
 body.portfolio-v38 .folio-project small{font-size:11px}
 body.portfolio-v38 .work-layout{--work-scroll-padding:88px}
 body.portfolio-v38 .folio-number{font-size:13px}
 body.portfolio-v38 .folio-arrow{font-size:19px}
 body.portfolio-v38 .work-index{margin-bottom:24px}
 body.portfolio-v38 .work-index-links>a{flex-basis:167px;min-height:67px;padding-inline:10px}
 body.portfolio-v38 .case-list{gap:44px}
 body.portfolio-v38 .case-row.case-showcase{padding-bottom:38px}
 body.portfolio-v38 .case-media>a.case-product-preview,body.portfolio-v38 .case-media>a.case-product-preview.real-preview{padding:14px}
 body.portfolio-v38 .case-heading h3{font-size:32px}
}
body.portfolio-v38.motion-paused .work-index-track>span{transition:none}
html:not(.js) body.portfolio-v38 .work-index{position:static}
html:not(.js) body.portfolio-v38 .work-index-track{display:none}
html:not(.js) body.portfolio-v38 .case-row.case-showcase{scroll-margin-top:0}
@media(max-width:1279px) and (max-height:500px){body.portfolio-v38 .work-index-heading,body.portfolio-v38 .work-index-track,body.portfolio-v38 .work-index-links small{display:none}body.portfolio-v38 .work-index-links>a{min-height:48px;padding-block:8px}body.portfolio-v38 .work-index{padding-top:0}}
@media(prefers-reduced-motion:reduce){body.portfolio-v38 .work-index-track>span{transition:none}}

/* V39 — an original, optional journey through paper, pigment and space. */
body.portfolio-v39 .spatial-intro{position:relative;background:#f4ebdd;color:#252421;isolation:isolate;border-bottom:1px solid #bfa67d}
body.portfolio-v39 .spatial-sticky{position:relative;min-height:clamp(500px,76svh,780px);overflow:hidden;isolation:isolate}
body.portfolio-v39 .spatial-intro.spatial-enhanced{height:170svh}
body.portfolio-v39 .spatial-enhanced .spatial-sticky{position:sticky;top:var(--spatial-nav-height,82px);height:calc(100svh - var(--spatial-nav-height,82px));min-height:500px}
body.portfolio-v39 .spatial-visual,body.portfolio-v39 .spatial-fallback,body.portfolio-v39 .spatial-mount{position:absolute;inset:0}
body.portfolio-v39 .spatial-visual{z-index:-1;pointer-events:none;overflow:hidden}
body.portfolio-v39 .spatial-fallback{margin:0;opacity:.8;transition:opacity .45s ease}
body.portfolio-v39 .spatial-fallback img{display:block;width:100%;height:100%;object-fit:cover;object-position:65% 45%}
body.portfolio-v39 .spatial-mount{opacity:0;transition:opacity .45s ease}
body.portfolio-v39 .spatial-mount canvas{display:block;width:100%;height:100%;pointer-events:none}
body.portfolio-v39 .spatial-visual::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#f4ebddf5 0%,#f4ebddc4 25%,#f4ebdd35 55%,#f4ebdd00 83%);pointer-events:none}
body.portfolio-v39 .spatial-intro[data-spatial-state='ready'] .spatial-mount{opacity:1}
body.portfolio-v39 .spatial-intro[data-spatial-state='ready'] .spatial-fallback{opacity:0}
body.portfolio-v39 .spatial-inner{min-height:inherit;height:100%;display:flex;flex-direction:column;position:relative;padding-top:24px;padding-bottom:30px}
body.portfolio-v39 .spatial-topline{display:flex;justify-content:space-between;gap:24px;align-items:center}
body.portfolio-v39 .spatial-topline p{margin:0;font-size:11px;letter-spacing:1.8px;color:#655b49}
body.portfolio-v39 .spatial-topline p>span{margin-inline:12px;color:#a83e2b}
body.portfolio-v39 .spatial-motion-control{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 14px;border:1px solid #aa9168;border-radius:2px;background:#f4ebddc9;color:#4f4a40;font-size:11px;letter-spacing:.4px}
body.portfolio-v39 .spatial-motion-control::before{content:'Ⅱ';font-size:13px;color:#155e52}
body.portfolio-v39 .spatial-motion-control[aria-pressed='false']::before{content:'▷'}
body.portfolio-v39 .spatial-caption{margin-block:auto;padding:38px 0;max-width:620px}
body.portfolio-v39 .spatial-kicker{margin:0 0 20px;padding-left:15px;border-left:2px solid #a83e2b;font-size:12px;line-height:1.8;letter-spacing:2px;color:#5e594c}
body.portfolio-v39 .spatial-title{font:600 clamp(70px,8vw,114px)/1.14 'Songti SC','STSong','SimSun',serif;letter-spacing:-3px;margin:0;color:#252421}
body.portfolio-v39 .spatial-title>span{display:block}
body.portfolio-v39 .spatial-title>span:last-child{color:#155e52}
body.portfolio-v39 .spatial-description{margin:25px 0 0;font-size:14px;line-height:1.95;color:#5e594c}
body.portfolio-v39 .spatial-footer{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;padding-top:16px}
body.portfolio-v39 .spatial-steps{list-style:none;display:flex;gap:clamp(20px,4vw,64px);padding:0;margin:0;flex-wrap:wrap}
body.portfolio-v39 .spatial-steps li{padding-top:12px;min-width:70px;border-top:1px solid #9d8b70;color:#655f53;font-size:12px;line-height:1.8;letter-spacing:1px}
body.portfolio-v39 .spatial-steps li>span{margin-right:8px;font:italic 14px/1.8 Georgia,serif}
body.portfolio-v39 .spatial-steps li[aria-current='step']{border-top-color:#a83e2b;color:#a83e2b}
body.portfolio-v39 .spatial-skip{display:inline-flex;align-items:center;gap:28px;min-height:44px;flex:none;color:#155e52;font-size:12px;border-bottom:1px solid #8c9a7e}
body.portfolio-v39 .spatial-progress{position:absolute;inset:auto 0 0;height:2px;background:#c9b99c}
body.portfolio-v39 .spatial-progress>span{display:block;height:100%;width:100%;transform:scaleX(var(--spatial-progress,0));transform-origin:left center;background:#a83e2b}
body.portfolio-v39 .spatial-intro :is(a,button):focus-visible{outline:2px solid #a83e2b;outline-offset:4px}
@media(max-width:1000px),(hover:none),(pointer:coarse),(max-height:599px){
 body.portfolio-v39 .spatial-intro.spatial-enhanced{height:auto}
 body.portfolio-v39 .spatial-intro .spatial-sticky{position:relative;top:auto;height:auto;min-height:clamp(440px,65svh,620px)}
 body.portfolio-v39 .spatial-mount{display:none}
 body.portfolio-v39 .spatial-intro .spatial-fallback{opacity:.8!important}
 body.portfolio-v39 .spatial-visual::after{background:linear-gradient(90deg,#f4ebdded,#f4ebdd9e 50%,#f4ebdd30)}
}
@media(max-width:760px){
 body.portfolio-v39 .spatial-inner{padding-top:18px;padding-bottom:23px}
 body.portfolio-v39 .spatial-topline{gap:15px}
 body.portfolio-v39 .spatial-topline p{font-size:9px;letter-spacing:.8px}
 body.portfolio-v39 .spatial-topline p>span{margin-inline:6px}
 body.portfolio-v39 .spatial-motion-control{padding-inline:10px;font-size:10px}
 body.portfolio-v39 .spatial-caption{padding-block:33px}
 body.portfolio-v39 .spatial-kicker{font-size:11px;letter-spacing:1px;margin-bottom:17px}
 body.portfolio-v39 .spatial-title{font-size:clamp(48px,12.5vw,76px);line-height:1.15;letter-spacing:-1.5px}
 body.portfolio-v39 .spatial-description{font-size:12px;margin-top:20px}
 body.portfolio-v39 .spatial-footer{gap:15px;flex-wrap:wrap;padding-top:0}
 body.portfolio-v39 .spatial-steps{gap:16px}
 body.portfolio-v39 .spatial-steps li{font-size:10px;min-width:58px;padding-top:9px}
 body.portfolio-v39 .spatial-steps li>span{font-size:12px;margin-right:4px}
 body.portfolio-v39 .spatial-skip{font-size:11px;gap:18px}
}
body.portfolio-v39.motion-paused .spatial-intro :is(.spatial-fallback,.spatial-mount){transition:none}
@media(prefers-reduced-motion:reduce){body.portfolio-v39 .spatial-intro.spatial-enhanced{height:auto}body.portfolio-v39 .spatial-intro .spatial-sticky{position:relative;top:auto;height:auto}body.portfolio-v39 .spatial-mount{display:none}body.portfolio-v39 .spatial-intro .spatial-fallback{opacity:.8!important}body.portfolio-v39 .spatial-intro :is(.spatial-fallback,.spatial-mount){transition:none}}

/* V40 — framed project exhibits with a restrained 3D response. */
body.portfolio-v40 .case-showcase .case-media{isolation:isolate}
body.portfolio-v40 .case-showcase .case-media::before{
  content:'';position:absolute;inset:10px 10px 48px;z-index:-1;
  border:1px solid #b58a45;transform:translate(7px,8px);pointer-events:none;opacity:.65;
}
body.portfolio-v40 .case-showcase:nth-child(even) .case-media::before{transform:translate(-7px,8px)}
body.portfolio-v40 .case-media>a.case-product-preview{
  perspective:1200px;perspective-origin:50% 45%;
  background-image:linear-gradient(135deg,#f3e9d4 0%,transparent 43%,#d3b98338 100%);
  box-shadow:0 16px 38px #3c382b16;
}
body.portfolio-v40 .case-media .case-artwork{transform-origin:center center;backface-visibility:hidden}
@media(min-width:761px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  body.portfolio-v40[data-motion-ready='true']:not(.motion-paused) .case-media>a.case-product-preview .case-artwork{
    transition:transform .7s cubic-bezier(.22,1,.36,1),box-shadow .7s cubic-bezier(.22,1,.36,1);
  }
  body.portfolio-v40[data-motion-ready='true']:not(.motion-paused) .case-media>a.case-product-preview:hover .case-artwork{
    transform:rotateY(-7deg) rotateX(3deg) scale(.96);box-shadow:14px 20px 32px #25242135;
  }
  body.portfolio-v40[data-motion-ready='true']:not(.motion-paused) .case-showcase:nth-child(even) .case-media>a.case-product-preview:hover .case-artwork{
    transform:rotateY(7deg) rotateX(3deg) scale(.96);box-shadow:-14px 20px 32px #25242135;
  }
  body.portfolio-v40[data-motion-ready='true']:not(.motion-paused) .case-media::before{transition:transform .7s cubic-bezier(.22,1,.36,1),opacity .7s ease}
  body.portfolio-v40[data-motion-ready='true']:not(.motion-paused) .case-media:hover::before{transform:translate(11px,12px);opacity:.95}
  body.portfolio-v40[data-motion-ready='true']:not(.motion-paused) .case-showcase:nth-child(even) .case-media:hover::before{transform:translate(-11px,12px)}
}
@media(max-width:760px){body.portfolio-v40 .case-showcase .case-media::before{inset:7px 7px 44px;transform:translate(4px,5px)}}
body.portfolio-v40.motion-paused .case-media .case-artwork{transform:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){body.portfolio-v40 .case-media .case-artwork{transform:none!important;transition:none!important}}
/* Controls remain readable against the moving dark surfaces behind them. */
body.portfolio-v40 .spatial-skip{background:#f4ebdd;padding-inline:12px}
body.portfolio-v40 .spatial-motion-control{background:#f4ebdd}


/* V41 — Codrops-inspired 3D picture choreography; layout stays anchored. */
@media(min-width:761px) and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 body.portfolio-v41[data-motion-ready='true']:not(.motion-paused) .case-media>a.case-product-preview .case-artwork{
  transform:translateZ(var(--v41-depth,0px)) rotateX(var(--v41-rx,0deg)) rotateY(var(--v41-ry,0deg)) rotateZ(var(--v41-rz,0deg));
  transition:transform .18s linear,box-shadow .35s ease;
 }
 body.portfolio-v41[data-motion-ready='true']:not(.motion-paused) .case-media>a.case-product-preview:hover .case-artwork{
  transform:translateZ(var(--v41-depth,0px)) rotateX(calc(var(--v41-rx,0deg) + 3deg)) rotateY(calc(var(--v41-ry,0deg) - 7deg)) rotateZ(var(--v41-rz,0deg)) scale(.96);
 }
 body.portfolio-v41[data-motion-ready='true']:not(.motion-paused) .case-showcase:nth-child(even) .case-media>a.case-product-preview:hover .case-artwork{
  transform:translateZ(var(--v41-depth,0px)) rotateX(calc(var(--v41-rx,0deg) + 3deg)) rotateY(calc(var(--v41-ry,0deg) + 7deg)) rotateZ(var(--v41-rz,0deg)) scale(.96);
 }
 body.portfolio-v41 .case-media:focus-within .case-artwork{transform:none!important;translate:none!important;transition:none!important}
}


/* First-screen identity and direct collaboration, including the static view. */
body.portfolio-v42 .spatial-position{margin:17px 0 0;color:#155e52;font-size:13px;font-weight:600;line-height:1.7;letter-spacing:.2px}
body.portfolio-v42 .spatial-description{margin-top:14px}
body.portfolio-v42 .spatial-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
body.portfolio-v42 .spatial-contact{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:8px 14px;background:#155e52;color:#fffaf0;font-size:12px;white-space:nowrap}
@media(max-width:760px){
 body.portfolio-v42 .spatial-intro .spatial-sticky{min-height:clamp(440px,60svh,570px)}
 body.portfolio-v42 .spatial-topline p{font-size:10px}
 body.portfolio-v42 .spatial-caption{padding-block:24px}
 body.portfolio-v42 .spatial-position{margin-top:12px;font-size:11px;line-height:1.7;letter-spacing:0}
 body.portfolio-v42 .spatial-description{margin-top:10px}
 body.portfolio-v42 .spatial-actions{gap:6px;justify-content:flex-start}
 body.portfolio-v42 .spatial-contact{font-size:11px;padding-inline:12px}
}

/* V43 — an editorial map makes each product's existing journey visible. */
body.portfolio-v42 .case-journey{margin:0 0 22px;padding:16px 17px 15px;border:1px solid #c9b99c;background:#f3ebdc}
body.portfolio-v42 .case-journey-label{margin:0 0 13px;color:#665c4d;font-size:11px;font-weight:600;letter-spacing:.1em}
body.portfolio-v42 .case-journey-label span{margin-left:5px;color:#796e5c;font:10px/1.4 Georgia,serif;letter-spacing:.1em}
body.portfolio-v42 .case-journey ul{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;list-style:none;padding:0;margin:0}
body.portfolio-v42 .case-journey ul::before,body.portfolio-v42 .case-journey ul::after{content:'';position:absolute;top:9px;left:9px;right:9px;height:1px;background:#c6b59a}
body.portfolio-v42 .case-journey ul::after{background:#8b6144;transform-origin:left center}
body.portfolio-v42 .case-journey li{position:relative;z-index:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
body.portfolio-v42 .case-journey li>span{display:grid;place-items:center;width:19px;height:19px;border:1px solid #907657;border-radius:50%;background:#f3ebdc;color:#6b553c;font:9px/1 Georgia,serif}
body.portfolio-v42 .case-journey li>strong{color:#284c43;font-size:12px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
@supports (animation-timeline:view()) {
 @media (prefers-reduced-motion:no-preference) and (min-width:761px){
  body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) .case-journey ul::after{animation:case-path-draw linear both;animation-timeline:view();animation-range:entry 5% cover 35%}
 }
}
@keyframes case-path-draw{from{transform:scaleX(.08)}to{transform:scaleX(1)}}
body.portfolio-v42.motion-paused .case-journey ul::after{animation:none;transform:none}
@media(prefers-reduced-motion:reduce){body.portfolio-v42 .case-journey ul::after{animation:none;transform:none}}
@media(max-width:760px){body.portfolio-v42 .case-journey{padding:14px;margin-bottom:18px}body.portfolio-v42 .case-journey li>strong{font-size:12px}}

/* V44 — compact the phone project index while preserving full names and links. */
@media(max-width:760px){
 body.portfolio-v42 .work-index{top:calc(var(--work-index-top,84px) - 14px);padding-top:5px;margin-bottom:20px;box-shadow:0 7px 12px #fcf7ed}
 body.portfolio-v42 .work-index-track{margin-top:4px}
 body.portfolio-v42 .work-index-links{scrollbar-width:thin}
 body.portfolio-v42 .work-index-links>a{flex:0 0 auto;grid-template-columns:auto auto;align-items:center;gap:7px;min-height:44px;padding:7px 12px}
 body.portfolio-v42 .work-index-links strong{white-space:nowrap;font-size:12px;line-height:1.3;overflow-wrap:normal}
 body.portfolio-v42 .work-index-links small{display:none}
 body.portfolio-v42 .work-index-num{font-size:11px;line-height:1.3}
 body.portfolio-v42 .work-index-links>a:focus-visible{outline:2px solid #a83e2b;outline-offset:-3px}
}

/* V45 — connect service examples to clearly labelled personal work. */
body.portfolio-v42 .offer-related{margin-top:24px;padding:15px 0 0;border-top:1px solid #cabb9f}
body.portfolio-v42 .offer-related-label{display:block;margin-bottom:4px;color:#766550;font-size:11px;letter-spacing:.08em}
body.portfolio-v42 .offer-related>div{display:flex;flex-wrap:wrap;gap:0 24px}
body.portfolio-v42 .offer-related a{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:#155e52;font-size:13px;line-height:1.5;text-decoration:none;border-bottom:1px solid transparent}
body.portfolio-v42 .offer-related a>span{color:#a83e2b}
body.portfolio-v42 .offer-related a:focus-visible{outline:2px solid #a83e2b;outline-offset:3px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){body.portfolio-v42:not(.motion-paused) .offer-related a{transition:color .2s ease,border-color .2s ease}body.portfolio-v42:not(.motion-paused) .offer-related a:hover{color:#a83e2b;border-bottom-color:#a83e2b}}
/* Carry the compact project navigation through tablet widths. */
@media(min-width:761px) and (max-width:1279px){
 body.portfolio-v42 .work-index{padding-top:5px}
 body.portfolio-v42 .work-index-track{margin-top:4px}
 body.portfolio-v42 .work-index-links>a{flex:1 0 auto;grid-template-columns:auto auto;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:7px 12px}
 body.portfolio-v42 .work-index-links strong{white-space:nowrap;font-size:12px;line-height:1.3;overflow-wrap:normal}
 body.portfolio-v42 .work-index-links small{display:none}
 body.portfolio-v42 .work-index-num{font-size:11px;line-height:1.3}
 body.portfolio-v42 .work-index-links>a:focus-visible{outline:2px solid #a83e2b;outline-offset:-3px}
}
@media(min-width:761px) and (max-width:1279px) and (max-height:500px){body.portfolio-v42 .work-index-links>a{min-height:48px}}

/* V46 — a field-note panel for the delivery journey. */
body.portfolio-v42 #process.delivery-strip{position:relative;isolation:isolate;overflow:hidden;margin-top:70px;padding:clamp(28px,4vw,54px);border:1px solid #967d54;background:#193c35;color:#f4ebdd}
body.portfolio-v42 #process.delivery-strip::before{content:'';position:absolute;z-index:0;right:-130px;bottom:-260px;width:min(540px,75vw);aspect-ratio:1;border:1px solid #d7b572;border-radius:50%;opacity:.22;box-shadow:0 0 0 35px #193c35,0 0 0 36px #d7b572,0 0 0 85px #193c35,0 0 0 86px #d7b572;pointer-events:none}
body.portfolio-v42 #process.delivery-strip>*{position:relative;z-index:1}
body.portfolio-v42 #process .delivery-heading{align-items:end;margin-bottom:38px}
body.portfolio-v42 #process .delivery-heading>span{color:#dfbb80;font-size:11px;letter-spacing:.14em}
body.portfolio-v42 #process .delivery-heading h3{color:#fff7e9;font-family:'Songti SC','STSong','SimSun',serif;font-size:clamp(24px,2.6vw,34px);line-height:1.45}
body.portfolio-v42 #process.delivery-strip>ol{gap:28px}
body.portfolio-v42 #process.delivery-strip>ol>li{border-top:1px solid #d7b57291;padding-top:22px}
body.portfolio-v42 #process.delivery-strip>ol>li>b{color:#e1b96e;font-size:36px}
body.portfolio-v42 #process .delivery-step h4{color:#fff7e9;font-size:17px}
body.portfolio-v42 #process .delivery-step p{color:#e1e7dc;font-size:13px;line-height:1.9}
body.portfolio-v42 #process.delivery-strip>.delivery-note{margin-top:32px;padding-top:18px;border-top:1px solid #d7b57270;color:#e1e7dc;font-size:12px}
@supports (animation-timeline:view()){
 @media(prefers-reduced-motion:no-preference) and (min-width:761px){
  body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) #process.delivery-strip::before{animation:delivery-orbit linear both;animation-timeline:view();animation-range:entry 0% exit 100%}
 }
}
@keyframes delivery-orbit{from{transform:rotate(-18deg) translateX(-14px)}to{transform:rotate(18deg) translateX(14px)}}
body.portfolio-v42.motion-paused #process.delivery-strip::before{animation:none;transform:none}
@media(prefers-reduced-motion:reduce){body.portfolio-v42 #process.delivery-strip::before{animation:none;transform:none}}
@media(max-width:760px){
 body.portfolio-v42 #process.delivery-strip{margin-top:44px;padding:27px 23px 29px}
 body.portfolio-v42 #process.delivery-strip::before{right:-175px;bottom:-120px;width:320px;opacity:.13}
 body.portfolio-v42 #process .delivery-heading{display:block;margin-bottom:25px}
 body.portfolio-v42 #process .delivery-heading h3{font-size:24px;margin-top:10px}
 body.portfolio-v42 #process.delivery-strip>ol{gap:17px}
 body.portfolio-v42 #process.delivery-strip>ol>li{grid-template-columns:42px minmax(0,1fr);gap:16px;padding-top:15px}
 body.portfolio-v42 #process.delivery-strip>ol>li>b{font-size:28px;margin:0}
 body.portfolio-v42 #process .delivery-step h4{font-size:16px;margin-top:1px}
 body.portfolio-v42 #process .delivery-step p{font-size:13px}
}
/* A labelled example, not a live workflow or client case. */
body.portfolio-v42 .automation-map{margin:0 0 25px;padding:15px 16px 17px;border:1px solid #c9b99c;background:#f2e9d9}
body.portfolio-v42 .automation-map>p{margin:0 0 12px;color:#665c4d;font-size:11px;font-weight:600;letter-spacing:.08em}
body.portfolio-v42 .automation-map>p span{margin-left:4px;font:10px/1.4 Georgia,serif;color:#796e5c}
body.portfolio-v42 .automation-map>ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;list-style:none;margin:0;padding:0;counter-reset:none}
body.portfolio-v42 .automation-map>ol>li{display:flex;flex-direction:column;gap:5px;min-width:0;padding:9px 0 0;border:0;border-top:1px solid #b89b72;color:#214d43;font-size:12px;line-height:1.5}
body.portfolio-v42 .automation-map>ol>li::before{content:none}
body.portfolio-v42 .automation-map>ol>li>span{color:#a83e2b;font:italic 12px/1.3 Georgia,serif}
@media(max-width:500px){body.portfolio-v42 .automation-map>ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}}
@media(max-width:760px){body.portfolio-v42 .case-image-label{font-size:12px;color:#5e594c}body.portfolio-v42 .case-image-label a{min-height:44px}}
body.portfolio-v42 #process .delivery-title-tail{white-space:nowrap}

/* V47 — a clear next step after the delivery story. */
body.portfolio-v42 #process .delivery-actions{display:flex;align-items:center;gap:18px 28px;flex-wrap:wrap;margin-top:20px}
body.portfolio-v42 #process .delivery-actions a{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:46px;padding:10px 16px;font-size:13px;line-height:1.5;text-decoration:none}
body.portfolio-v42 #process .delivery-primary{background:#e4c18b;border:1px solid #e4c18b;color:#193c35;font-weight:600}
body.portfolio-v42 #process .delivery-secondary{border:1px solid #a7bcaa;color:#fff7e9}
body.portfolio-v42 #process .delivery-actions a:focus-visible{outline:2px solid #fff7e9;outline-offset:4px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) #process .delivery-actions a span{transition:transform .25s cubic-bezier(.22,1,.36,1)}
 body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) #process .delivery-actions a:hover span{transform:translate(4px,-2px)}
}
@media(max-width:360px){body.portfolio-v42 #process .delivery-actions{gap:10px}body.portfolio-v42 #process .delivery-actions a{padding-inline:12px}}

/* V48 — project previews stay inside the existing editorial frame. */
@supports selector(:has(*)){
 @media(min-width:761px){
  body.portfolio-v42 .mineral-folio .mineral-art::before{content:'';position:absolute;inset:14px;z-index:2;display:flex;align-items:flex-end;padding:12px 14px;border:1px solid #b28d4a;background-color:#193c35;background-position:center top;background-size:cover;color:#fffaf0;font:600 11px/1.5 system-ui,sans-serif;letter-spacing:.04em;opacity:0;visibility:hidden;transform:translateY(8px) scale(.985);pointer-events:none}
  body.portfolio-v42 .mineral-folio .mineral-art::after{z-index:3}
  body.portfolio-v42 .mineral-folio:has(.folio-project[href="#project-jmsai"]:focus-visible) .mineral-art::before{content:"项目实屏 · 2026.10.30";background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url("assets/jmsai-screen-1400.webp?v=56");opacity:1;visibility:visible;transform:none}
  body.portfolio-v42 .mineral-folio:has(.folio-project[href="#project-worldcup"]:focus-visible) .mineral-art::before{content:'项目实屏 · 2026.10.22';background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url('assets/worldcup-screen-700.webp');opacity:1;visibility:visible;transform:none}
  body.portfolio-v42 .mineral-folio:has(.folio-project[href="#project-astrrot"]:focus-visible) .mineral-art::before{content:'项目主题示意';background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url('assets/astrrot-project.svg');opacity:1;visibility:visible;transform:none}
  body.portfolio-v42 .mineral-folio:has(.folio-project[href="#project-hyaloria"]:focus-visible) .mineral-art::before{content:'项目实屏 · 2026.10.28';background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url('assets/hyaloria-screen-700.webp');opacity:1;visibility:visible;transform:none}
  body.portfolio-v42 .mineral-folio:has(.folio-project[href="#project-hyaloria-playground"]:focus-visible) .mineral-art::before{content:'工作台实屏 · 2026.10.28';background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url('assets/hyaloria-playground-screen-700.webp');opacity:1;visibility:visible;transform:none}
 }
 @media(min-width:761px) and (hover:hover){
  body.portfolio-v42 .mineral-folio:not(:has(.folio-project:focus-visible)):has(.folio-project[href="#project-jmsai"]:hover) .mineral-art::before{content:"项目实屏 · 2026.10.30";background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url("assets/jmsai-screen-1400.webp?v=56");opacity:1;visibility:visible;transform:none}
  body.portfolio-v42 .mineral-folio:not(:has(.folio-project:focus-visible)):has(.folio-project[href="#project-worldcup"]:hover) .mineral-art::before{content:'项目实屏 · 2026.10.22';background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url('assets/worldcup-screen-700.webp');opacity:1;visibility:visible;transform:none}
  body.portfolio-v42 .mineral-folio:not(:has(.folio-project:focus-visible)):has(.folio-project[href="#project-astrrot"]:hover) .mineral-art::before{content:'项目主题示意';background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url('assets/astrrot-project.svg');opacity:1;visibility:visible;transform:none}
  body.portfolio-v42 .mineral-folio:not(:has(.folio-project:focus-visible)):has(.folio-project[href="#project-hyaloria"]:hover) .mineral-art::before{content:'项目实屏 · 2026.10.28';background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url('assets/hyaloria-screen-700.webp');opacity:1;visibility:visible;transform:none}
  body.portfolio-v42 .mineral-folio:not(:has(.folio-project:focus-visible)):has(.folio-project[href="#project-hyaloria-playground"]:hover) .mineral-art::before{content:'工作台实屏 · 2026.10.28';background-image:linear-gradient(0deg,#142b26e8,transparent 55%),url('assets/hyaloria-playground-screen-700.webp');opacity:1;visibility:visible;transform:none}
 }
 @media(min-width:761px) and (hover:hover) and (prefers-reduced-motion:no-preference){body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) .mineral-folio .mineral-art::before{transition:opacity .35s ease,transform .45s cubic-bezier(.22,1,.36,1),visibility .35s}}
}
body.portfolio-v42.motion-paused .mineral-folio .mineral-art::before{transition:none}
@media(prefers-reduced-motion:reduce){body.portfolio-v42 .mineral-folio .mineral-art::before{transition:none}}

/* V49 — a lightweight mobile opening; content remains readable without animation. */
@media(max-width:760px) and (prefers-reduced-motion:no-preference){
 body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) .spatial-fallback img{animation:mobile-ribbon-arrive 1.8s cubic-bezier(.22,1,.36,1) both}
 body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) .spatial-title>span{animation:mobile-title-arrive 1s cubic-bezier(.22,1,.36,1) both}
 body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) .spatial-title>span:last-child{animation-delay:.12s}
}
@keyframes mobile-ribbon-arrive{from{transform:scale(1.12) translate3d(1.5%,0,0)}to{transform:scale(1) translate3d(0,0,0)}}
@keyframes mobile-title-arrive{from{opacity:.65;transform:translate3d(0,18px,0)}to{opacity:1;transform:translate3d(0,0,0)}}

/* V50 — make the service example concrete and the source boundary visible. */
body.portfolio-v42 .knowledge-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 27px;padding:0;border-block:1px solid #b8b8a1}
body.portfolio-v42 .knowledge-notes>div{min-width:0;padding:13px 13px 14px 0}
body.portfolio-v42 .knowledge-notes>div+div{padding-left:13px;border-left:1px solid #c8c8b5}
body.portfolio-v42 .knowledge-notes dt{margin:0 0 5px;font-size:11px;letter-spacing:.06em;color:#9e3928}
body.portfolio-v42 .knowledge-notes dd{margin:0;color:#314c3f;font-size:13px;line-height:1.7;overflow-wrap:anywhere}
body.portfolio-v42 .reference-teaser-copy p.reference-origin{margin-top:15px;padding-left:11px;border-left:2px solid #a83e2b;color:#594c3d;font-size:12px;line-height:1.65}
body.portfolio-v42 .shelf-footnote{font-size:12px}
@media(max-width:500px){body.portfolio-v42 .knowledge-notes{grid-template-columns:minmax(0,1fr)}body.portfolio-v42 .knowledge-notes>div{display:grid;grid-template-columns:5em minmax(0,1fr);gap:10px;padding:10px 0}body.portfolio-v42 .knowledge-notes>div+div{padding-left:0;border-left:0;border-top:1px solid #c8c8b5}body.portfolio-v42 .knowledge-notes dt{margin:0;font-size:12px}body.portfolio-v42 .knowledge-notes dd{font-size:13px}}
@media(prefers-reduced-motion:no-preference){body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) .offer[open] .knowledge-notes{animation:knowledge-notes-in .45s cubic-bezier(.22,1,.36,1) both}}
@keyframes knowledge-notes-in{from{opacity:.5;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* JMSAI screenshot uses its captured portrait aspect ratio. */
body.portfolio-v42 #project-jmsai .case-artwork{aspect-ratio:1120/1200;background:#f4f5f8}

/* V55: give the dated financial interface clear context. */
body.portfolio-v42 #project-jmsai .case-snapshot-note{margin:16px 0 12px;color:#5e594c;font-size:12px;line-height:1.8}

/* Keep the original JMSAI capture at or below its native width. */
body.portfolio-v42 #project-jmsai .case-artwork{width:100%;max-width:559px;margin-inline:auto}
/* Perspective transforms can soften small interface text. Keep this screen still. */
body.portfolio-v42 #project-jmsai .case-media>a.case-product-preview .case-artwork{transform:none!important}

/* A readable mobile opening: keep the positioning and actions legible over the artwork. */
@media(max-width:760px){
 body.portfolio-v42 .spatial-kicker{font-size:12px}
 body.portfolio-v42 .spatial-position{font-size:13px;line-height:1.65}
 body.portfolio-v42 .spatial-description{font-size:14px;line-height:1.8;color:#514b3e}
 body.portfolio-v42 .spatial-contact,body.portfolio-v42 .spatial-skip{font-size:13px}
}

/* The picture opens the project; the separate caption opens its screenshot. */
body.portfolio-v42 .case-media>a.case-product-preview{gap:10px}
body.portfolio-v42 .case-preview-visit{align-self:flex-end;display:inline-flex;align-items:center;gap:10px;color:#205b4d;font-size:12px;font-weight:600;line-height:1.5}
body.portfolio-v42 .case-preview-visit span{transition:transform .2s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){body.portfolio-v42:not(.motion-paused) .case-product-preview:hover .case-preview-visit span{transform:translate(3px,-3px)}}
@media(prefers-reduced-motion:reduce){body.portfolio-v42 .case-preview-visit span{transition:none}}

/* A gentle mobile ribbon drift; the observer pauses it away from the opening. */
@media(prefers-reduced-motion:no-preference){
 @media(max-width:1000px),(hover:none),(pointer:coarse),(max-height:599px){
  body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) .spatial-fallback{animation:mobile-ribbon-drift 14s ease-in-out infinite alternate;animation-play-state:paused}
  body.portfolio-v42[data-motion-ready='true']:not(.motion-paused) .spatial-intro[data-ambient-active='true'] .spatial-fallback{animation-play-state:running}
 }
}
@keyframes mobile-ribbon-drift{from{transform:scale(1.045) translate3d(-.5%,0,0)}to{transform:scale(1.065) translate3d(.5%,-.4%,0)}}
