/* Portfolio index and project detail; intentionally scoped away from the home scene. */
.panel-body:has(>.works-intro),.panel-body:has(>.project-detail-head){background:radial-gradient(ellipse at 50% -20%,#77619a24,transparent 58%)}
.works-intro{display:flex;justify-content:space-between;align-items:center;margin:-9px 0 0;color:#bca9d0;font-size:10px;letter-spacing:.2em}.works-intro span+span{color:#e4d6f1a3}.panel-body:has(>.works-intro) .tabs{margin:17px 0 26px}
.project-grid{gap:34px 25px}.project-card{position:relative;text-align:left;animation:work-card-in .58s both;animation-delay:calc(var(--card-index)*45ms);transform:translateY(0);transition:transform .3s ease,filter .3s}.project-card:hover,.project-card:focus-visible{transform:translateY(-7px);filter:drop-shadow(0 18px 24px #11091e66)}.cover{position:relative;overflow:hidden;isolation:isolate;aspect-ratio:1.07/1;background:radial-gradient(ellipse,#463958,#211e34);border:1px solid #e6d3ff24;box-shadow:inset 0 0 45px #d4b4fc0c,0 9px 25px #100b1a44}.cover:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(115deg,transparent 28%,#fff2 48%,transparent 68%);transform:translateX(-130%);transition:transform .8s;pointer-events:none}.project-card:hover .cover:before{transform:translateX(130%)}.cover img{width:100%;height:100%;object-fit:contain;padding:13px;transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .4s}.project-card:hover .cover img{transform:scale(1.035);filter:saturate(1.06)}.cover-mark{position:absolute;top:9px;left:10px;z-index:2;color:#fff9;font-size:10px;letter-spacing:.15em;text-shadow:0 1px 8px #11091e}.cover .view-tag{position:absolute;right:10px;bottom:10px;z-index:2;display:flex;gap:10px;align-items:center;padding:6px 12px;border:1px solid #fff4;border-radius:30px;background:#211c33b8;backdrop-filter:blur(10px);color:#fff;font-size:11px;letter-spacing:.05em;opacity:.88;transition:background .25s,transform .25s}.project-card:hover .view-tag{background:#806699d9;transform:translateY(-2px)}.view-tag b{font-size:14px;font-weight:400}.card-meta{display:flex;justify-content:space-between;gap:12px;margin:15px 0 4px;color:#c9b8d9a3;font-size:9px;letter-spacing:.15em}.project-card h3{margin:0;font-family:"Songti SC","STSong",serif;font-size:19px;letter-spacing:.045em;font-weight:500}.project-card p{margin:3px 0 0;color:#c5b9d8;font-size:12px}
.project-detail-head{max-width:780px;margin:0 auto 24px;text-align:center}.project-detail-head .eyebrow span{opacity:.6}.project-detail-head h2{margin-bottom:8px}.project-detail-head .detail-description{margin:0 auto 15px;max-width:660px}.project-detail-head .chips{justify-content:center}.back-button{border:1px solid #fff2;background:#ffffff08;border-radius:24px;padding:7px 14px;color:#d8c8e8;font-size:13px;transition:background .2s,transform .2s}.back-button:hover{background:#ffffff15;transform:translateX(-3px)}.back-button span{margin-right:7px}.feature-viewer{max-width:900px;margin:0 auto 48px;padding:13px 18px 11px;border:1px solid #dec7f52b;border-radius:20px;background:linear-gradient(145deg,#ffffff0b,#5a496e12);box-shadow:0 18px 55px #100b1d40;backdrop-filter:blur(8px)}.feature-counter,.feature-foot{display:flex;align-items:center;justify-content:space-between;color:#cab9d9b8;font-size:10px;letter-spacing:.16em}.feature-stage{height:min(51vh,510px);min-height:280px;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:10px;padding:9px 0}.feature-arrow{width:38px;height:38px;border:1px solid #e7d6f32b;border-radius:50%;background:#ffffff08;font-size:27px;line-height:1;color:#f5eaff;transition:background .2s,transform .2s}.feature-arrow:hover:not(:disabled){background:#bca0d43b;transform:scale(1.06)}.feature-image{position:relative;display:flex;align-items:center;justify-content:center;height:100%;width:100%;min-width:0;overflow:hidden;background:radial-gradient(ellipse,#4b3d5b,#272236);border:1px solid #fff2;border-radius:12px;padding:12px;cursor:zoom-in}.feature-image img{width:100%;height:100%;object-fit:contain;transition:opacity .18s,transform .5s}.feature-image img.changing{opacity:.25}.feature-image:hover img{transform:scale(1.012)}.feature-zoom,.gallery-zoom{position:absolute;right:12px;bottom:12px;padding:6px 10px;border:1px solid #fff3;border-radius:20px;background:#1e192cb8;color:#fff;font-size:10px;letter-spacing:.06em;opacity:0;transform:translateY(4px);transition:.2s}.feature-image:hover .feature-zoom,.gallery figure>button:hover .gallery-zoom{opacity:1;transform:none}.feature-foot{min-height:23px;letter-spacing:.05em}.feature-dots{display:flex;gap:6px}.feature-dots button{width:7px;height:7px;border-radius:8px;padding:0;background:#c5b4d45c;transition:width .2s,background .2s}.feature-dots button[aria-current=true]{width:20px;background:#ebd6ff}
.detail-gallery{padding-top:26px;border-top:1px solid #ffffff21}.detail-gallery-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:23px}.detail-gallery-heading .eyebrow{margin-bottom:3px;font-size:10px}.detail-gallery-heading h3{margin:0;font-family:"Songti SC","STSong",serif;font-weight:500;font-size:25px;letter-spacing:.06em}.detail-gallery-heading>span{padding-bottom:4px;color:#c5b5d1a8;font-size:10px;letter-spacing:.16em}.gallery{gap:26px 20px}.gallery figure{margin:0}.gallery figure>button{position:relative;display:block;width:100%;padding:11px;overflow:hidden;cursor:zoom-in;background:radial-gradient(ellipse,#4a3c59,#272236);border:1px solid #fff2;border-radius:13px}.gallery figure>button img{display:block;width:100%;height:100%;max-height:390px;object-fit:contain;transition:transform .45s}.gallery figure>button:hover img{transform:scale(1.025)}.gallery figcaption{display:flex;justify-content:space-between;gap:10px;margin:9px 3px 0;color:#d5c7e2;font-size:12px}.gallery figcaption span+span{color:#c5b5d1a0;font-size:10px;letter-spacing:.1em}.gallery.phone-gallery figure>button img{max-height:560px}.panel-body:has(>.project-detail-head){scroll-behavior:smooth}
.work-coming{position:relative;display:flex;min-height:100%;flex-direction:column;align-items:flex-start;justify-content:center;padding:25px 24px;overflow:hidden;border:1px solid #d7c0ef36;border-radius:14px;background:radial-gradient(circle at 70% 30%,#b79bd729,transparent 35%),linear-gradient(140deg,#ffffff09,#a987c110);box-shadow:inset 0 0 45px #d3bcf00b}.coming-star{color:#f0d9a4;font-size:25px;text-shadow:0 0 16px #ffe0ae66}.work-coming small{margin-top:21px;color:#cbb6e0a6;font-size:9px;letter-spacing:.2em}.work-coming strong{margin-top:7px;font:500 22px/1.5 "Songti SC","STSong",serif;letter-spacing:.04em}.work-coming p{margin:7px 0 0;color:#c5b9d8;font-size:12px}.coming-orbit{position:absolute;right:20px;bottom:23px;color:#e7d4f4;font-size:28px;animation:pulse 4s ease-in-out infinite}
.intro-video-panel{max-width:900px;margin:0 auto 44px;padding:15px;border:1px solid #dec7f52b;border-radius:20px;background:linear-gradient(145deg,#ffffff0b,#5a496e12);box-shadow:0 18px 55px #100b1d40}.video-overline{display:flex;justify-content:space-between;margin:1px 3px 13px;color:#d6c6e3b8;font-size:10px;letter-spacing:.16em}.intro-video-panel video{display:block;width:100%;max-height:67vh;background:#090810;border:1px solid #ffffff23;border-radius:13px;object-fit:contain}.intro-video-panel>p{margin:11px 4px 0;text-align:center;color:#c5b9d8;font-size:12px;letter-spacing:.05em}
@keyframes work-card-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1050px){.tabs{flex-wrap:wrap}}
@media(max-width:680px){.works-intro{font-size:9px}.project-grid{gap:24px 12px}.project-card h3{font-size:15px}.cover{aspect-ratio:.82/1}.cover img{padding:8px}.cover .view-tag{right:5px;bottom:5px;padding:5px 8px;font-size:9px}.cover-mark{top:6px;left:7px}.card-meta{font-size:8px;letter-spacing:.08em}.project-detail-head{margin-top:18px}.feature-viewer{padding:11px 9px;border-radius:15px;margin-bottom:36px}.feature-stage{height:43vh;min-height:240px;grid-template-columns:30px minmax(0,1fr) 30px;gap:4px;padding:8px 0}.feature-arrow{width:28px;height:32px;font-size:23px}.feature-image{padding:6px}.feature-counter,.feature-foot{font-size:9px}.detail-gallery-heading h3{font-size:21px}.gallery{gap:20px}.gallery figure>button{padding:8px}.gallery figure>button img{max-height:unset}.gallery.phone-gallery figure>button img{max-height:unset}.work-coming{padding:17px 14px;min-height:160px}.work-coming strong{font-size:16px}.work-coming p{font-size:11px}.intro-video-panel{padding:10px}.intro-video-panel video{max-height:55vh}}
@media(prefers-reduced-motion:reduce){.project-card,.cover img,.cover:before,.coming-orbit{animation:none!important;transition:none!important}}
.intro-video-cover{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(0,1fr);align-items:center;justify-items:center;gap:24px;min-height:350px;padding:25px;border:1px solid #ffffff22;border-radius:14px;background:radial-gradient(ellipse at 30% 50%,#826ca02e,transparent 63%),#100e19}.intro-video-cover img{display:block;width:min(100%,220px);height:300px;object-fit:contain;border:1px solid #ffffff26;border-radius:4px;background:#f7f5f2;box-shadow:0 17px 36px #0007}.intro-video-cover button{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:13px 20px;border:1px solid #d9c2ef87;border-radius:30px;background:#9078a7a8;color:#fff;font-size:14px;transition:background .2s,transform .2s}.intro-video-cover button:hover{background:#a78aba;transform:translateY(-2px)}.intro-video-cover button>span{font-size:12px}.intro-video-cover button small{flex-basis:100%;color:#eee1f6bd;font-size:10px}.intro-video-panel video[hidden]{display:none}
@media(max-width:680px){.intro-video-cover{grid-template-columns:1fr;gap:17px;min-height:0;padding:20px 15px}.intro-video-cover img{height:240px;width:100%}.intro-video-cover button{font-size:13px}}

/* Editorial, vertically browsable archive: the work itself creates the rhythm. */
.panel-body:has(>.archive-heading){background:radial-gradient(ellipse at 83% 0%,#b298cf17,transparent 39%),radial-gradient(ellipse at 10% 48%,#75619210,transparent 45%)}
.archive-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;max-width:980px;margin:0 auto 34px;padding:7px 0 18px;border-bottom:1px solid #e9d9fa25}.archive-heading-copy{min-width:0}.archive-heading .eyebrow{margin-bottom:7px;color:#d9c2ed;font-size:10px;letter-spacing:.24em}.archive-heading h2{font-size:clamp(36px,5vw,59px);line-height:1.18;letter-spacing:.08em;margin:0 0 13px}.archive-heading .lead{max-width:520px;margin:0;color:#d0c2de;font-family:"Songti SC","STSong",serif;font-size:17px;letter-spacing:.035em;line-height:1.8}.archive-caption{display:block;margin-top:23px;color:#bdaacd91;font-size:9px;letter-spacing:.24em}.archive-seal{position:relative;display:flex;flex:none;align-items:center;justify-content:center;width:104px;height:104px;margin:0 12px 5px 0;border:1px solid #dfc7f14d;border-radius:50%;color:#f1dfbd;text-align:center}.archive-seal:before,.archive-seal:after{content:"";position:absolute;inset:8px;border:1px dashed #e4c9ed42;border-radius:50%}.archive-seal:after{inset:-7px;border:0;border-top:1px solid #e7d6f17d;transform:rotate(-25deg)}.archive-seal>span{position:absolute;top:13px;font-size:19px}.archive-seal small{margin-top:22px;color:#d5c3e1;font-size:8px;line-height:1.5;letter-spacing:.2em}.archive-seal i{position:absolute;bottom:-3px;left:50%;height:13px;border-left:1px solid #ead5f38a;transform:rotate(35deg)}
.panel-body:has(>.archive-heading) .works-intro{max-width:980px;margin:0 auto;color:#ceb8dcad;font-size:9px;letter-spacing:.22em}.works-intro span:first-child i{margin-left:8px;color:#e7d3b0;font-style:normal}.panel-body:has(>.archive-heading) .tabs{max-width:980px;margin:16px auto 29px;background:#17132262;border-color:#e9d9fa2b}.panel-body:has(>.archive-heading) .tabs button{font-size:14px;letter-spacing:.025em}
.project-grid{position:relative;display:flex;flex-direction:column;gap:0;max-width:980px;margin:0 auto;padding-left:31px}.project-grid:before{content:"";position:absolute;left:8px;top:8px;bottom:185px;width:1px;background:linear-gradient(#d8c2ea79,#d8c2ea32 75%,transparent)}.project-card{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(225px,.72fr);align-items:center;gap:clamp(22px,4vw,60px);width:100%;padding:31px 25px 34px 20px;border-top:1px solid #e8d9f023;background:linear-gradient(105deg,#ffffff03,transparent 72%);animation:work-card-in .58s both;animation-delay:calc(var(--card-index)*65ms);transition:background .35s,transform .35s}.project-card:last-of-type{border-bottom:1px solid #e8d9f023}.project-card:before{content:"";position:absolute;left:-27px;top:50%;width:8px;height:8px;border:1px solid #ecd8fa;border-radius:50%;background:#29223c;box-shadow:0 0 0 5px #29223c,0 0 18px #ddc1fc60;transform:translateY(-50%);transition:background .25s,box-shadow .25s}.project-card:hover:before,.project-card:focus-visible:before{background:#f0dcb2;box-shadow:0 0 0 5px #29223c,0 0 23px #f0dcb277}.project-card:nth-of-type(even){grid-template-columns:minmax(225px,.72fr) minmax(0,1.25fr)}.project-card:nth-of-type(even) .cover{grid-column:2;grid-row:1}.project-card:nth-of-type(even) .card-copy{grid-column:1;grid-row:1}.project-card:hover,.project-card:focus-visible{transform:translateY(-2px);background:linear-gradient(105deg,#ffffff0a,#ffffff02 78%);filter:none;outline-offset:-2px}.cover{position:relative;aspect-ratio:1.27/1;min-height:255px;overflow:hidden;isolation:isolate;border:1px solid #e6d3ff2b;border-radius:3px;background:radial-gradient(ellipse at 50% 54%,#78628c62,transparent 64%),linear-gradient(135deg,#302944,#1d1b2f);box-shadow:0 18px 46px #0907103d,inset 0 0 55px #d4b4fc0b}.cover:after{content:"";position:absolute;inset:10px;border:1px solid #fff2;pointer-events:none;transition:inset .4s,border-color .4s}.project-card:hover .cover:after{inset:15px;border-color:#fff4}.cover:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(110deg,transparent 26%,#fff2 47%,transparent 66%);transform:translateX(-130%);transition:transform .9s;pointer-events:none}.project-card:hover .cover:before{transform:translateX(130%)}.cover img{position:relative;z-index:0;width:100%;height:100%;object-fit:contain;padding:22px;transition:transform .75s cubic-bezier(.2,.8,.2,1),filter .5s}.project-card:hover .cover img{transform:scale(1.045);filter:saturate(1.07)}.cover-mark{position:absolute;top:14px;left:17px;z-index:2;display:flex;gap:8px;align-items:center;color:#eee1f2c9;font-size:8px;letter-spacing:.19em;text-shadow:0 1px 8px #11091e}.cover-mark b{font-weight:400;color:#f5e2b6}.cover .view-tag{right:20px;bottom:18px;z-index:2;gap:9px;padding:7px 12px;border:1px solid #fff5;border-radius:2px;background:#211c33b8;backdrop-filter:blur(10px);color:#fff;font-size:10px;letter-spacing:.1em;opacity:.94;transition:background .25s,transform .25s}.project-card:hover .view-tag{background:#806699e8;transform:translateY(-2px)}.cover-orbit{position:absolute;right:16px;top:13px;color:#f4e2beaa;font-size:15px;transition:transform .5s}.project-card:hover .cover-orbit{transform:rotate(45deg) scale(1.18)}.card-copy{position:relative;display:flex;min-height:214px;flex-direction:column;align-items:flex-start;justify-content:center;padding:17px 5px 18px;overflow:hidden;text-align:left}.card-meta{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px 17px;margin:0 0 24px;color:#d1bfdba8;font-size:8px;letter-spacing:.18em}.card-meta span+span{color:#c5b5d185}.card-index-large{position:absolute;right:0;top:3px;color:#e2d0f20b;font:italic 94px/.95 Georgia,serif;letter-spacing:-.08em;transition:color .35s,transform .45s}.project-card:hover .card-index-large{color:#ead9f212;transform:translateY(-3px)}.card-copy h3{position:relative;z-index:1;display:flex;align-items:center;gap:12px;margin:0 0 9px;font-family:"Songti SC","STSong",serif;font-size:clamp(20px,2.1vw,29px);font-weight:500;line-height:1.45;letter-spacing:.035em}.card-copy h3 i{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;border:1px solid #e7d5f047;border-radius:50%;color:#e7d5f0a1;font:normal 12px/1 sans-serif;transition:color .25s,background .25s,transform .25s}.project-card:hover .card-copy h3 i{color:#211b2c;background:#e6d3f1;transform:translate(3px,-3px)}.card-copy>p{position:relative;z-index:1;margin:0;color:#cbbbd9;font-size:12px;letter-spacing:.035em}.card-open{position:relative;z-index:1;display:flex;align-items:center;gap:9px;margin-top:26px;color:#eadff1b6;font-size:10px;letter-spacing:.12em}.card-open b{color:#e9d5b0;font-size:14px;font-weight:400;transition:transform .25s}.project-card:hover .card-open b{transform:translate(3px,-3px)}.card-rule{position:absolute;right:0;bottom:0;width:55px;border-top:1px solid #d9c4ed51;transition:width .35s}.project-card:hover .card-rule{width:100%}.work-coming{min-height:175px;margin:32px 0 0;padding:29px 36px;border-radius:3px;background:linear-gradient(110deg,#ffffff07,#9e7ec00a 55%,transparent);box-shadow:none}.work-coming:before{content:"";position:absolute;left:-27px;top:50%;width:8px;height:8px;border:1px solid #efdbbb;border-radius:50%;background:#342944;box-shadow:0 0 0 5px #29223c,0 0 18px #f1d8ad50}.work-coming small{margin-top:12px}.work-coming strong{font-size:25px}.coming-orbit{right:36px;bottom:30px}
@media(max-width:760px){.archive-heading{margin-bottom:25px}.archive-seal{width:78px;height:78px;margin-right:3px}.archive-seal>span{top:8px;font-size:16px}.archive-seal small{font-size:7px;margin-top:20px}.archive-heading .lead{font-size:15px}.archive-caption{margin-top:17px}.project-grid{padding-left:23px}.project-grid:before{left:6px}.project-card,.project-card:nth-of-type(even){grid-template-columns:minmax(0,1fr) minmax(180px,.72fr);gap:18px;padding:25px 9px 27px 14px}.project-card:nth-of-type(even) .cover{grid-column:2;grid-row:1}.project-card:nth-of-type(even) .card-copy{grid-column:1;grid-row:1}.project-card:before{left:-23px}.cover{min-height:200px}.cover img{padding:15px}.card-copy{min-height:185px}.card-copy h3{font-size:20px}.card-index-large{font-size:70px}.card-meta{margin-bottom:14px;letter-spacing:.12em}.card-open{margin-top:20px}}
@media(max-width:540px){.archive-heading{align-items:center;gap:9px;margin-bottom:24px;padding-bottom:15px}.archive-heading .eyebrow{font-size:8px;letter-spacing:.18em}.archive-heading h2{font-size:34px;margin-bottom:8px}.archive-heading .lead{font-size:14px;line-height:1.7}.archive-caption{margin-top:13px;font-size:7px;letter-spacing:.16em}.archive-seal{width:62px;height:62px;flex-basis:62px;margin:0 1px 0 0}.archive-seal:before{inset:5px}.archive-seal:after{inset:-4px}.archive-seal>span{top:4px;font-size:13px}.archive-seal small{font-size:6px;margin-top:17px}.works-intro{font-size:8px!important}.panel-body:has(>.archive-heading) .tabs{gap:2px;margin:13px 0 17px;padding:5px}.panel-body:has(>.archive-heading) .tabs button{padding:7px 9px;font-size:12px}.count{font-size:10px;margin-left:5px}.project-grid{padding-left:17px}.project-grid:before{left:4px;bottom:160px}.project-card,.project-card:nth-of-type(even){display:flex;flex-direction:column;align-items:stretch;gap:0;padding:18px 0 24px 10px}.project-card:before{left:-17px;top:30px;width:7px;height:7px}.cover{width:100%;min-height:0;aspect-ratio:1.22/1}.cover img{padding:18px}.cover-mark{top:11px;left:13px;font-size:7px}.cover .view-tag{right:14px;bottom:13px;font-size:9px}.card-copy{min-height:0;padding:15px 4px 7px}.card-meta{width:100%;margin-bottom:8px;font-size:7px}.card-index-large{top:10px;right:2px;font-size:67px}.card-copy h3{max-width:90%;font-size:21px;line-height:1.4}.card-copy>p{font-size:11px}.card-open{margin-top:15px;font-size:9px}.card-rule{width:34px}.work-coming{min-height:145px;margin-top:22px;padding:20px 22px}.work-coming strong{font-size:20px}.coming-orbit{right:22px;bottom:20px}}
@media(prefers-reduced-motion:reduce){.archive-seal:after,.cover:before,.cover img,.cover:after,.cover-orbit,.card-copy h3 i,.card-rule{animation:none!important;transition:none!important}}
