@font-face{font-family:LocalSans;src:local('Helvetica Neue'),local('Arial');font-display:swap}
:root{color-scheme:dark;--bg:#0b0d0f;--ink:#f1f1ed;--muted:#909492;--line:rgba(255,255,255,.11);--accent:#d9edb8}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:14px LocalSans,Arial,'Microsoft YaHei',sans-serif;-webkit-font-smoothing:antialiased}button,input,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit;cursor:pointer}button,a{touch-action:manipulation}button{border:0;background:none}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button:hover,a:hover{color:var(--accent)}[hidden]{display:none!important}::selection{background:#d9edb8;color:#141615}.site-header{height:102px;padding:0 3.2vw;display:flex;align-items:center;justify-content:space-between;position:absolute;top:0;left:0;width:100%;z-index:30}.brand{display:flex;align-items:center;gap:12px;font-size:15px;letter-spacing:.03em}.brand-icon{font-size:43px;color:var(--accent);line-height:1;display:block}.brand small{display:block;font-size:8px;color:var(--muted);margin-top:8px;letter-spacing:.16em}.view-switch{position:absolute;left:50%;transform:translateX(-50%);display:flex;gap:4px;background:#191c1e;border:1px solid #25282a;border-radius:30px;padding:5px}.view-switch a{padding:9px 20px;border-radius:22px;font-size:11px;transition:background .25s,color .25s}.view-switch a[aria-current=page]{background:#ecefe9;color:#101311}.view-switch sup{font-size:8px;margin-left:2px;opacity:.5}.contact-link{border:1px solid var(--line);border-radius:28px;padding:11px 18px;font-size:11px}.contact-link span{padding-left:24px;color:var(--accent);font-size:17px}.home-page{min-height:100svh;overflow:hidden;position:relative;padding-top:133px;background:radial-gradient(ellipse at 50% 18%,#15191a 0,transparent 47%)}.intro{position:relative;z-index:3;text-align:center}.eyebrow{font-size:9px;letter-spacing:.19em;font-weight:400;color:#949e94}.eyebrow i{display:inline-block;background:var(--accent);width:5px;height:5px;border-radius:50%;margin-right:8px;box-shadow:0 0 9px #cfff8833}.intro .eyebrow{border:1px solid var(--line);border-radius:20px;display:inline-block;padding:8px 13px;font-size:8px}.name-lockup{display:flex;gap:22px;align-items:center;justify-content:center;margin:23px 0 14px}.name-lockup h1{font-size:clamp(42px,4.4vw,64px);font-weight:400;letter-spacing:.12em;margin:0}.name-lockup>span{font-size:13px;color:#a8aeaa;text-align:left;line-height:1.9;border-left:1px solid #444b45;padding-left:22px;letter-spacing:.18em}.name-lockup small{font-size:7px;letter-spacing:.09em;color:#626b67}.intro h2{font-size:clamp(16px,1.7vw,24px);font-weight:400;letter-spacing:.06em;margin:0}.intro h2>span{margin:0 11px;color:#535b56}.intro h2 em{font-style:normal;color:#929a94;font-weight:300;letter-spacing:.01em}.education{font-size:11px;line-height:1.9;color:#b0b5b0;margin:23px 0 23px;letter-spacing:.06em}.education span{color:#727b75;font-size:10px}.leap{display:inline-flex;align-items:center;gap:31px;padding:10px 11px 10px 22px;background:var(--ink);color:#171b17;border-radius:28px;font-size:12px;transition:transform .3s,background .3s}.leap>span{background:#171b17;color:white;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;font-size:18px}.leap:hover{color:#171b17;background:var(--accent);transform:translateY(-3px)}.home-stage{height:clamp(290px,30vw,390px);position:relative;margin-top:26px;perspective:1400px;isolation:isolate}.home-stage:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--bg),transparent 11%,transparent 89%,var(--bg));pointer-events:none;z-index:10}.horizon{position:absolute;left:-20%;right:-20%;top:60%;height:100px;background:radial-gradient(ellipse,#8dbd7140,transparent 65%);filter:blur(24px)}.home-reel{position:absolute;inset:0;transform-style:preserve-3d}.work-card{position:absolute;left:50%;top:50%;width:226px;height:300px;padding:0;border:1px solid #ffffff20;border-radius:14px;background:#181e20;overflow:hidden;text-align:left;will-change:transform;box-shadow:0 20px 45px #0008;isolation:isolate;transition:border-color .2s}.work-card video,.work-card img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}.work-card:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0001 50%,#000b);pointer-events:none}.card-top{position:absolute;top:14px;left:15px;right:15px;display:flex;justify-content:space-between;z-index:2;font-size:8px;letter-spacing:.1em;text-shadow:0 1px 4px #000}.card-dot{width:5px;height:5px;background:var(--accent);border-radius:50%}.card-bottom{position:absolute;bottom:17px;left:16px;right:16px;z-index:2;color:white}.card-bottom small{font-size:7px;letter-spacing:.1em;opacity:.7;display:block;margin-bottom:7px}.card-bottom strong{font-size:12px;font-weight:400}.play-icon{position:absolute;inset:0;display:grid;place-items:center;z-index:2;opacity:0;transition:opacity .25s}.play-icon span{width:44px;height:44px;border:1px solid #fff7;border-radius:50%;display:grid;place-items:center;background:#10151266;backdrop-filter:blur(10px);font-size:13px}.work-card:hover,.work-card:focus-visible{border-color:var(--accent)}.work-card:hover .play-icon,.work-card:focus-visible .play-icon{opacity:1}.reel-caption{display:flex;justify-content:space-between;position:relative;z-index:12;margin:0 4vw 28px;color:#727b75;font-size:8px;letter-spacing:.15em}.tiny-star{color:var(--accent);margin:0 11px}.home-footer{margin:0 4vw;padding:24px 0 27px;border-top:1px solid var(--line);display:flex;gap:10vw;justify-content:space-between;font-size:11px}.home-footer>div{display:flex;flex-direction:column;gap:9px}.footer-label{font-size:8px;color:#69746d;letter-spacing:.17em;margin-bottom:3px}.home-footer small{color:#777f79;font-size:10px}.copy-wechat{text-align:left;padding:0;font-size:11px}.copy-wechat span{padding-left:18px;color:#a5afa6}.worlds-page{height:100svh;min-height:540px;position:relative;overflow:hidden;background:#0a0c0c}.world-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:46px 46px;mask-image:radial-gradient(ellipse at 55% 45%,black,transparent 85%)}.world-intro{position:absolute;top:24%;left:5vw;z-index:4;pointer-events:none}.world-intro h2{font-size:clamp(28px,4vw,62px);font-weight:400;letter-spacing:-.04em;line-height:1.03;margin:23px 0}.world-intro h2 em{font-style:normal;color:#626d63}.world-intro p{font-size:10px;letter-spacing:.12em;color:#7f897e}.spiral-stage{position:absolute;inset:0;perspective:1300px;overflow:hidden;touch-action:none;cursor:grab}.spiral-stage:active{cursor:grabbing}#spiral{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateZ(-13deg)}.spiral-card{width:190px;height:254px;border-radius:9px;box-shadow:0 25px 60px #0009;cursor:pointer}.spiral-card .card-bottom{opacity:0;transition:opacity .25s}.spiral-card:hover .card-bottom,.spiral-card:focus-visible .card-bottom{opacity:1}.gallery-bottom{position:absolute;bottom:28px;left:4vw;z-index:12}.return-home{display:flex;align-items:center;gap:24px;width:max-content}.return-tile{width:86px;height:92px;display:block;background:linear-gradient(140deg,#e0edac,#869f56 47%,#1c3c36);border-radius:12px;transform:rotate(-14deg);transition:transform .4s;box-shadow:0 5px 40px #c0f07416}.return-tile>span{display:flex;align-items:center;justify-content:space-between;height:100%;padding:15px;color:#19221d;font-size:33px}.return-tile span span{font-size:18px;align-self:flex-end}.return-home:hover .return-tile{transform:rotate(0deg)}.return-label{font-size:9px;letter-spacing:.12em}.return-label small{display:block;color:#778275;font-size:9px;letter-spacing:0;margin-top:8px}.gallery-profile{display:block;font-size:9px;color:#919d8c;margin-top:25px}.world-controls{position:absolute;right:3.2vw;bottom:31px;display:flex;gap:21px;align-items:center;z-index:12}.world-controls>span{font-size:8px;letter-spacing:.15em;color:#899383}.world-controls button{width:42px;height:42px;border:1px solid #ffffff30;border-radius:50%;background:#131815;backdrop-filter:blur(10px)}#world-hover{position:absolute;right:4vw;top:140px;text-align:right;font-size:11px;line-height:1.9;z-index:12;pointer-events:none;color:var(--accent)}.archive-page{padding:175px 8vw 0;min-height:100svh;background:radial-gradient(ellipse at 80% 0,#19201a,transparent 40%)}.archive-heading{display:flex;justify-content:space-between;align-items:end}.archive-heading h1{font-size:48px;font-weight:400;letter-spacing:-.03em;margin:18px 0 22px}.archive-heading h1 span{font-size:13px;vertical-align:top;margin-left:17px;color:var(--accent)}.search{border-bottom:1px solid #52604f;display:flex;align-items:center;gap:13px;margin-bottom:25px}.search>span{font-size:24px;color:var(--accent)}.search input{padding:10px 0;background:none;border:0;color:white;width:220px;font-size:11px;outline:none}.archive-note{font-size:11px;color:#9aab98;line-height:1.9;display:flex;justify-content:space-between;margin-bottom:52px}.archive-note a{color:#cad7c2;white-space:nowrap}.archive-table-head,.archive-row{display:grid;grid-template-columns:70px 1fr 135px;align-items:center;gap:20px}.archive-table-head{font-size:8px;letter-spacing:.17em;color:#71826c;padding:14px 0;border-bottom:1px solid #394234}.archive-row{padding:26px 0;border-bottom:1px solid #ffffff14;transition:background .25s,padding .25s}.archive-row:hover{background:#d6edbb09;padding-left:14px;padding-right:14px}.archive-number{color:#77816e;font-size:10px;font-family:monospace}.archive-title{font-size:16px;font-weight:400;line-height:1.6}.archive-dest{font-size:9px;color:#93a18a;display:flex;justify-content:space-between;align-items:center}.archive-dest span{color:#dcead4;font-size:20px}.archive-footer{padding:48px 0;display:flex;justify-content:space-between;color:#7a8572;font-size:10px}.archive-footer a{color:var(--accent)}#empty-state{padding:50px 0;color:#9daa92;text-align:center}dialog{border:1px solid #ffffff20;border-radius:16px;padding:0;width:min(1150px,93vw);max-height:92svh;background:#101512;color:var(--ink);overflow:auto}dialog::backdrop{background:#020603d9;backdrop-filter:blur(18px)}.film-shell{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.9fr);position:relative;min-height:500px}.close-film{position:absolute;top:12px;right:14px;z-index:4;width:36px;height:36px;border:1px solid #ffffff25;border-radius:50%;font-size:26px;background:#111a13}.film-screen{background:black;display:flex;align-items:center;justify-content:center;position:relative}.film-screen video{width:100%;height:82svh;max-height:850px;display:block;object-fit:contain}#film-error{position:absolute;bottom:65px;margin:0 20px;color:#e6d0b0;line-height:1.8}.film-info{padding:90px 38px 35px;display:flex;flex-direction:column;justify-content:center}.film-info .eyebrow{color:#96ad89;font-size:9px}.film-info h2{font-size:30px;font-weight:400;line-height:1.6;margin:25px 0}.film-info p{font-size:12px;line-height:2;color:#91a08b}.film-actions{margin-top:50px;display:flex;flex-wrap:wrap;gap:23px;font-size:10px}.film-actions a{border-bottom:1px solid #4a5843;padding-bottom:8px}.film-actions button{padding:0 0 8px;color:var(--accent)}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);opacity:0;background:#d9edb8;color:#182014;padding:12px 23px;border-radius:25px;font-size:12px;z-index:60;pointer-events:none;transition:.25s}#toast.visible{opacity:1;transform:translate(-50%,0)}.page{animation:appear .7s both}@keyframes appear{from{opacity:0}to{opacity:1}}body[data-view=worlds]{overflow:hidden}body[data-view=worlds] .brand-icon{animation:gentle-spin 30s linear infinite}@keyframes gentle-spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){.home-page{padding-top:155px}.home-stage{margin-top:42px;height:410px}.home-footer{padding-top:30px}.intro .education{margin:30px 0}.work-card{width:250px;height:333px}.spiral-card{width:220px;height:293px}}
@media(max-width:900px){.brand small{display:none}.site-header{height:86px}.brand{font-size:12px}.brand-icon{font-size:31px}.view-switch a{padding:8px 14px}.contact-link{font-size:10px;padding:8px 12px}.contact-link span{padding-left:9px}.home-page{padding-top:125px}.home-stage{height:320px;margin-top:28px}.work-card{width:190px;height:254px}.world-intro{top:135px;left:5vw}.world-intro h2{font-size:36px}.world-intro .eyebrow{font-size:7px}.spiral-card{width:160px;height:214px}.world-controls>span{display:none}.archive-page{padding:130px 6vw 0}.archive-heading h1{font-size:36px}.archive-title{font-size:14px}.film-info{padding:65px 25px 30px}.film-info h2{font-size:24px}.home-footer{gap:20px}.world-intro p{font-size:9px}}
@media(max-width:600px){.site-header{height:78px;padding:0 6vw;align-items:center}.brand{font-size:11px;gap:7px}.brand-icon{font-size:28px}.contact-link{display:none}.view-switch{left:auto;right:5vw;transform:none;padding:3px;gap:0}.view-switch a{padding:7px 10px;font-size:9px}.view-switch sup{font-size:6px}.home-page{padding-top:113px}.intro .eyebrow{font-size:6px;letter-spacing:.14em}.name-lockup{gap:16px;margin:24px 0 19px}.name-lockup h1{font-size:42px}.name-lockup>span{font-size:10px;padding-left:15px}.name-lockup small{font-size:6px;letter-spacing:0}.intro h2{font-size:14px;letter-spacing:0}.intro h2>span{margin:0 6px}.education{margin:20px 0 23px;font-size:10px}.education span{font-size:9px}.leap{font-size:11px;gap:25px;padding:9px 10px 9px 19px}.leap>span{width:22px;height:22px;font-size:16px}.home-stage{height:286px;margin-top:21px}.work-card{width:175px;height:233px;border-radius:11px}.card-bottom strong{font-size:10px}.card-bottom small{font-size:6px}.card-top{font-size:7px}.reel-caption{font-size:6px;margin:0 6vw 23px;letter-spacing:.08em}.reel-caption>span:last-child{font-size:6px}.tiny-star{margin:0 4px}.home-footer{margin:0 6vw;padding-top:23px;display:grid;grid-template-columns:1fr 1fr;gap:26px 16px;font-size:10px}.home-footer .footer-personal{grid-column:1 / -1}.home-footer small{font-size:9px}.footer-label{font-size:7px}.copy-wechat{font-size:10px}.world-intro{top:109px;left:6vw}.world-intro h2{font-size:30px;margin:16px 0 0}.world-intro p{display:none}.world-intro .eyebrow{font-size:6px}.spiral-card{width:137px;height:183px;border-radius:7px}.gallery-bottom{left:7vw;bottom:25px}.return-tile{width:56px;height:62px;border-radius:8px}.return-tile>span{padding:10px;font-size:25px}.return-home{gap:15px}.return-label{font-size:7px}.return-label small{font-size:8px;margin-top:5px}.gallery-profile{font-size:8px;margin-top:19px}.world-controls{right:6vw;bottom:25px}.world-controls button{width:37px;height:37px}#world-hover{display:none}.archive-heading{display:block}.archive-heading h1{font-size:32px}.search{margin-top:24px;margin-bottom:22px}.search input{width:100%}.archive-note{display:block;font-size:10px;margin-bottom:28px}.archive-note a{display:block;margin-top:13px}.archive-table-head,.archive-row{grid-template-columns:25px 1fr 21px;gap:10px}.archive-table-head>span:last-child{font-size:0}.archive-row{padding:20px 0}.archive-title{font-size:12px}.archive-dest{font-size:0}.archive-dest span{font-size:19px}.archive-footer{font-size:8px}.film-shell{display:block;min-height:0}.film-screen video{height:58svh}.film-info{padding:27px 23px}.film-info h2{font-size:22px;margin:15px 0 9px}.film-info p{font-size:11px}.film-actions{margin-top:22px}.close-film{position:fixed;right:7vw;top:6svh;background:#0b130ddd}.film-info .eyebrow{font-size:8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
/* Curved-cover gallery */
.spiral-stage{perspective:none}
.spiral-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
#spiral{display:none}
.world-intro{top:130px;left:4vw}
.world-intro h2{font-size:25px;line-height:1.18;margin:16px 0}
.world-intro p{font-size:9px}
.world-intro .eyebrow{font-size:7px}
.world-controls{flex-wrap:wrap;max-width:420px;justify-content:flex-end}
.project-shortcuts{display:flex;gap:3px;width:100%;justify-content:flex-end}
.project-shortcuts button{width:29px;height:29px;font-size:8px;border-color:#ffffff18;background:#0b0f0bd9}
.project-shortcuts button:hover{border-color:#d9edb8;color:#d9edb8}
.fallback-cards{display:none}
.gpu-fallback .spiral-canvas{display:none}
.gpu-fallback .fallback-cards{display:grid;grid-template-columns:repeat(3,160px);gap:18px;justify-content:center;padding-top:160px;overflow:auto;height:100%}
.gpu-fallback .work-card{position:relative;inset:auto;width:160px;height:214px;transform:none!important}
.home-reel .work-card:after{background:linear-gradient(180deg,transparent 88%,#0003)}
@media(max-width:600px){.world-intro{top:96px;left:6vw}.world-intro h2{font-size:19px}.world-intro .eyebrow{font-size:5px}.world-controls{max-width:215px;gap:12px}.project-shortcuts{gap:2px}.project-shortcuts button{width:24px;height:24px;font-size:7px}.gallery-bottom{z-index:15}.gpu-fallback .fallback-cards{grid-template-columns:repeat(2,135px);padding-top:200px}.gpu-fallback .work-card{width:135px;height:180px}}
@media(max-width:600px){.worlds-page .spiral-stage{top:122px;bottom:116px}.world-intro h2{display:none}.world-intro{top:98px}.world-intro .eyebrow{font-size:7px}}
/* Refined motion, atmosphere, and selection */
.home-reel{transform-style:flat;touch-action:pan-y}
.home-reel .spiral-canvas{height:100%;width:100%}
.home-stage{perspective:none;height:clamp(300px,30vw,410px);margin-top:16px}
.home-stage:after{background:linear-gradient(90deg,#0b0d0f55,transparent 6%,transparent 94%,#0b0d0f55)}
.home-reel-controls{display:flex;align-items:center;gap:12px;max-width:50%;min-width:0}
.home-reel-controls button{font-size:15px;color:#c8d4bf;padding:5px 10px}
#home-work-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px;letter-spacing:.02em}
.worlds-page{background:#0b0c0b}
.world-grid{background-image:linear-gradient(to bottom,#ffffff08,transparent 25%,transparent 75%,#ffffff07),linear-gradient(#cde0c70a 1px,transparent 1px),linear-gradient(90deg,#cde0c70a 1px,transparent 1px);background-size:100% 100%,44px 44px,44px 44px;mask-image:linear-gradient(to bottom,#000 0%,#000a 18%,#0006 50%,#000c 85%,#000);opacity:1}
.worlds-page:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 48% -10%,#8c9a7d13,transparent 60%);pointer-events:none}
.world-intro p{font-size:10px;letter-spacing:.04em;line-height:1.8}
.gallery-bottom{left:24px;bottom:24px}
.return-home{position:relative;width:150px;height:150px;display:grid;place-items:center;isolation:isolate}
.return-tile{width:106px;height:108px;transform:rotate(-17deg);border-radius:14px;position:absolute;left:22px;top:24px;box-shadow:none}
.return-home:hover .return-tile{transform:rotate(-17deg) scale(.96)}
.return-tile>span{font-size:41px;padding:18px}
.return-label{position:absolute;left:164px;top:82px;white-space:nowrap;font-size:8px}
.orbit-text{position:absolute;width:180px;height:180px;left:-15px;top:-15px;overflow:visible;animation:orbit 24s linear infinite;pointer-events:none}
.orbit-text text{fill:#e9ede5;font:12.5px Arial,sans-serif;letter-spacing:1px}
@keyframes orbit{to{transform:rotate(360deg)}}
.gallery-profile{font-size:8px;margin-top:10px;margin-left:0}
#world-hover{position:absolute;bottom:28px;top:auto;left:50%;right:auto;transform:translate(-50%,14px);display:flex;align-items:center;gap:10px;background:#eceee9;color:#151914;border-radius:12px;padding:7px 13px 7px 7px;opacity:0;transition:opacity .2s,transform .25s;pointer-events:none;max-width:330px;z-index:20;font-size:11px;line-height:1.4;text-align:left;box-shadow:0 6px 20px #0002}
#world-hover.visible{opacity:1;transform:translate(-50%,0)}
#world-hover img{width:38px;height:38px;object-fit:cover;border-radius:7px;flex-shrink:0}
#world-hover span{max-width:240px}
#sound-toggle{background:#f0f1ec;color:#10140f;border:0;width:42px;height:42px}
#sound-toggle svg{display:block;width:20px;height:20px;margin:auto;fill:currentColor}
#sound-toggle .sound-waves,#sound-toggle .sound-slash{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}
#sound-toggle .sound-waves{display:none}
#sound-toggle.sound-on .sound-waves{display:block}
#sound-toggle.sound-on .sound-slash{display:none}
.site-header,.world-intro,.gallery-bottom,.world-controls,.world-grid{transition:opacity .35s ease,filter .35s ease}
body.film-transition .site-header,body.film-transition .world-intro,body.film-transition .gallery-bottom,body.film-transition .world-controls,body.film-transition #world-hover{opacity:0;pointer-events:none}
body.film-transition .world-grid{opacity:.35}
body.film-transition #spiral-stage{pointer-events:none}
dialog[open]{animation:film-rise .72s cubic-bezier(.16,1,.3,1) both}
dialog[open]::backdrop{animation:backdrop-in .6s both}
dialog.is-closing{animation:film-leave .33s cubic-bezier(.55,0,.8,.3) both}
dialog.is-closing::backdrop{animation:backdrop-in .33s reverse both}
@keyframes film-rise{from{opacity:0;transform:translateY(75vh) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes film-leave{to{opacity:0;transform:translateY(55vh) scale(.94)}}
@keyframes backdrop-in{from{background:#02060300;backdrop-filter:blur(0)}to{background:#020603d9;backdrop-filter:blur(18px)}}
.work-card:hover{border-color:transparent}
@media(max-width:900px){.return-label{display:none}.gallery-bottom{left:12px;bottom:20px}.return-home{width:115px;height:115px}.return-tile{width:79px;height:82px;left:18px;top:17px}.return-tile>span{font-size:31px}.orbit-text{width:139px;height:139px;left:-12px;top:-12px}.gallery-profile{font-size:7px}}
@media(max-width:600px){.home-stage{height:270px;margin-top:25px}.home-reel-controls{max-width:65%;gap:0}.reel-caption>span:last-child{display:none}#home-work-name{max-width:140px;font-size:7px}.return-home{width:86px;height:86px}.return-tile{width:61px;height:62px;left:12px;top:12px;border-radius:10px}.return-tile>span{font-size:25px;padding:12px}.orbit-text{width:106px;height:106px;left:-10px;top:-10px}.gallery-bottom{left:10px;bottom:18px}.world-controls{right:15px;bottom:18px;gap:10px;max-width:200px}#sound-toggle{width:37px;height:37px}.gallery-profile{max-width:125px;line-height:1.6;font-size:6px}#world-hover{display:flex;bottom:135px;max-width:260px;font-size:9px}#world-hover img{width:28px;height:28px}.worlds-page .spiral-stage{bottom:140px}.world-intro p{display:block;font-size:8px;margin-top:10px}.world-intro{top:89px}.worlds-page .spiral-stage{top:145px}}
/* Reference composition: hero above a large, bottom-anchored reel. */
.home-page{display:block;height:100svh;min-height:680px;padding-top:18svh}
.intro{position:relative;z-index:12}
.name-lockup{margin:2.4svh 0 1.8svh}
.name-lockup h1{font-size:clamp(42px,4vw,100px)}
.intro h2{font-size:clamp(18px,2.2vw,42px)}
.intro .education{font-size:clamp(11px,1vw,16px);margin:2.8svh 0}
.education span{font-size:clamp(10px,.85vw,14px)}
.leap{font-size:clamp(12px,1vw,17px);padding:12px 13px 12px 24px}
.home-stage{position:absolute;left:0;right:0;bottom:0;height:48%;min-height:0;margin:0}
.home-stage:before{content:'';position:absolute;inset:35% 0 0;background:linear-gradient(transparent,#080b0d38 45%,#080b0de8);z-index:9;pointer-events:none}
.home-footer{position:absolute;left:4vw;right:4vw;bottom:22px;z-index:20;margin:0;width:auto;padding:0;border:0;gap:35px;pointer-events:none;text-shadow:0 1px 8px #000}
.home-footer a,.home-footer button{pointer-events:auto}
.home-footer small{color:#c1c7c2}.home-footer .footer-label{color:#a8b2aa}
.reel-caption{position:absolute;left:4vw;right:4vw;bottom:112px;z-index:20;margin:0;align-items:center;pointer-events:none;color:#b7c1b8;text-shadow:0 1px 8px #000}
.home-reel-controls button{pointer-events:auto}
@media(max-width:600px){.home-page{min-height:760px;padding-top:135px}.name-lockup{margin:22px 0 18px}.intro h2{font-size:16px}.intro .education{margin:22px 0}.home-stage{height:44%;margin:0}.home-footer{left:6vw;right:6vw;bottom:18px;gap:14px 20px;padding:0}.home-footer .footer-personal{grid-column:1 / -1}.reel-caption{left:6vw;right:6vw;bottom:162px}.reel-caption>span:first-child{display:none}.home-reel-controls{max-width:100%;margin:auto}}
.return-tile .abstract-mark{display:block;width:100%;height:100%;padding:10px;filter:drop-shadow(0 5px 5px #163b3440)}
/* Lettering travels along the tile perimeter; the square itself stays still. */
.orbit-text{animation:none;transform:rotate(-17deg)}
.return-tile{overflow:hidden;background:#e4e7d9}
.return-tile .avatar-mark{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.68) contrast(1.07)}
@media(prefers-reduced-motion:reduce){.orbit-text textPath{animation:none}}
/* Cropped corner navigation: avatar, perimeter lettering and hover move together. */
.gallery-bottom{left:-20px;bottom:-85px}
.return-home{width:170px;height:170px;transform-origin:50% 50%;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.return-home:hover,.return-home:focus-visible{transform:scale(1.06) rotate(6deg)}
.return-tile{left:25px;top:25px;width:120px;height:120px;transform:rotate(-17deg)}
.return-home:hover .return-tile{transform:rotate(-17deg)}
.orbit-text{width:204px;height:204px;left:-17px;top:-17px}
.return-label{display:block;position:absolute;left:25px;top:33px;width:120px;height:54px;padding-top:12px;z-index:3;text-align:center;white-space:nowrap;font-size:10px;letter-spacing:.08em;color:#fff;transform:rotate(-17deg) translateY(5px);opacity:0;transition:opacity .25s,transform .3s;pointer-events:none;text-shadow:0 1px 6px #000}
.return-label small{font-size:9px;color:#fff;margin-top:5px}
.return-tile:after{content:'';position:absolute;inset:0;background:#07110ed0;opacity:0;transition:opacity .25s;pointer-events:none}
.return-home:hover .return-label,.return-home:focus-visible .return-label{opacity:1;transform:rotate(-17deg) translateY(0)}
.return-home:hover .return-tile:after,.return-home:focus-visible .return-tile:after{opacity:1}
@media(max-width:600px){.gallery-bottom{left:-12px;bottom:-62px}.return-home{width:124px;height:124px}.return-tile{left:18px;top:18px;width:88px;height:88px}.orbit-text{width:150px;height:150px;left:-13px;top:-13px}.return-label{left:18px;top:22px;width:88px;height:44px;padding-top:8px;font-size:8px}.return-label small{font-size:7px}}
/* Large typographic index with a cursor-following cover. */
body[data-view=archive]{overflow:hidden}
.archive-page{position:relative;height:100svh;min-height:540px;padding:0;overflow:hidden;background:#0b0c0b}
.archive-heading{position:absolute;top:112px;left:5vw;right:5vw;z-index:5;display:flex;justify-content:space-between;align-items:center;margin:0}
.archive-heading .eyebrow{font-size:9px;color:#858d84;letter-spacing:.13em}
.archive-heading .search{margin:0;font-size:15px;border-bottom:1px solid #ffffff20}
.archive-heading .search input{font-size:11px;width:175px;padding:8px;background:transparent}
#archive-scroll{position:absolute;top:174px;bottom:85px;left:0;right:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:none;mask-image:linear-gradient(transparent,#000 9%,#000 89%,transparent);outline:none;touch-action:pan-y}
#archive-scroll::-webkit-scrollbar{display:none}
#archive-list{padding:65px 6vw 85px;position:relative;text-align:center}
.archive-row{display:block;width:fit-content;max-width:100%;margin:0 auto;border:0;padding:7px 0;font-size:clamp(24px,2.7vw,58px);font-weight:400;line-height:1.55;letter-spacing:-.035em;color:#e9ece6;transition:color .25s,opacity .25s;overflow-wrap:anywhere}
.archive-row:hover{padding:7px 0;background:transparent;color:#fff}
#archive-list.has-active .archive-row{color:#444944}
#archive-list.has-active .archive-row.is-active{color:#fff}
.archive-row:focus-visible{outline:1px solid #a8b69d;outline-offset:5px}
#archive-preview{position:fixed;left:0;top:0;width:clamp(150px,16vw,300px);aspect-ratio:3/4;z-index:25;pointer-events:none;opacity:0;transition:opacity .25s;will-change:transform}
#archive-preview.visible{opacity:1}
#archive-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:9px;box-shadow:0 16px 45px #0006;opacity:0;transform:scale(.78);transition:opacity .3s,transform .45s cubic-bezier(.2,.8,.2,1)}
#archive-preview img.shown{opacity:1;transform:scale(1)}
.archive-footer{position:absolute;bottom:28px;left:5vw;right:5vw;padding:0;font-size:9px;z-index:5}
@media(max-width:600px){.archive-heading{top:99px;left:6vw;right:6vw}.archive-heading .eyebrow{font-size:7px}.archive-heading .search input{width:130px;font-size:10px}.archive-row{font-size:23px;padding:10px 0;line-height:1.45}.archive-row:hover{padding:10px 0}#archive-scroll{top:146px;bottom:65px}#archive-list{padding:40px 7vw 65px}.archive-footer{font-size:7px;bottom:24px}#archive-preview{width:145px}}
@media(hover:none){#archive-preview{display:none}}
#archive-list{user-select:none}
/* Smaller type, retaining the previous row-to-row rhythm. */
.archive-row{display:flex;align-items:center;justify-content:center;gap:18px;font-size:clamp(18px,1.9vw,40px);min-height:calc(clamp(37.2px,4.185vw,89.9px) + 14px);letter-spacing:-.015em}
.archive-row-number{flex-shrink:0;font-size:.54em;font-variant-numeric:tabular-nums;letter-spacing:.06em;opacity:.62}
.archive-row-title{min-width:0}
@media(max-width:600px){.archive-row{font-size:17px;min-height:53.35px;gap:12px}.archive-row-number{font-size:10px}}
/* Fine index typography; keep the existing row height. */
.archive-row{font-size:clamp(13px,1.1vw,23px);letter-spacing:.025em;font-weight:400}
.archive-row-number{font-size:10px;letter-spacing:.08em;opacity:.5}
.archive-page .archive-footer{left:auto;right:5vw;font-size:8px;letter-spacing:.1em}
@media(max-width:600px){.archive-row{font-size:12px;gap:12px}.archive-row-number{font-size:8px}.archive-page .archive-footer{font-size:6px;max-width:60%;text-align:right}}
/* Background and experience in the personal introduction. */
.home-page{padding-top:16svh}
.experience{font-size:clamp(10px,.85vw,14px);line-height:1.9;color:#909991;letter-spacing:.035em;margin:13px 0 0}
.intro .education{margin:14px 0 18px}
.education .education-line{display:inline-flex;align-items:center;gap:7px;font-size:inherit;color:#b0b5b0}
.caa-logo{display:block;width:27px;height:25px;object-fit:contain;flex-shrink:0}
@media(min-width:1600px){.experience{margin-top:20px}.intro .education{margin:19px 0 23px}.caa-logo{width:34px;height:30px}}
@media(max-width:600px){.home-page{padding-top:112px}.experience{font-size:9px;line-height:1.9;letter-spacing:0;margin-top:12px}.intro .education{margin:12px 0 17px}.caa-logo{width:23px;height:21px}.education .education-line{gap:4px}}
@media(min-width:601px) and (max-height:800px){.home-page{padding-top:12svh}}
/* Quiet text navigation with a vertical rolling label. */
.view-switch{background:transparent;border:0;padding:0;gap:25px}
.view-switch a,.view-switch a[aria-current=page]{background:transparent;border-radius:0;padding:8px 0;color:#666e69;font-size:11px;transition:color .25s}
.view-switch a[aria-current=page],.view-switch a:hover,.view-switch a:focus-visible{color:#f2f3ef;background:transparent}
.nav-flip{display:block;position:relative;height:1.4em;line-height:1.4;overflow:hidden}
.nav-flip>span{display:block;transition:transform .4s cubic-bezier(.2,.75,.2,1);white-space:nowrap}
.nav-flip>span+span{position:absolute;top:100%;left:0}
.view-switch a:hover .nav-flip>span,.view-switch a:focus-visible .nav-flip>span{transform:translateY(-100%)}
@media(max-width:600px){.view-switch{gap:17px;right:6vw}.view-switch a,.view-switch a[aria-current=page]{font-size:10px;padding:8px 0}}
.skills-line{font-size:clamp(9px,.78vw,13px);line-height:1.8;color:#909991;letter-spacing:.025em;margin:12px auto 0;max-width:90%;text-wrap:balance}
.skills-line+.experience{margin-top:7px}
@media(max-width:600px){.skills-line{font-size:8px;max-width:88%;margin-top:10px;line-height:1.8}.skills-line+.experience{margin-top:7px}.home-page{min-height:790px}}
@media(min-width:601px) and (max-height:800px){.intro .education{margin:10px 0 13px}.skills-line{margin-top:8px}}
/* Keep the skills close to the role, with more separation before experience. */
.skills-line{margin-top:4px}
.skills-line+.experience{margin-top:16px}
@media(max-width:600px){.skills-line{margin-top:3px}.skills-line+.experience{margin-top:14px}}
/* Mobile Worlds uses the whole viewport, with UI layered above the helix. */
@media(max-width:600px){
 .view-switch{right:calc(6vw + 12px)}
 .worlds-page{height:100dvh;min-height:0}
 .worlds-page .spiral-stage{inset:0}
 .worlds-page .world-intro{z-index:4;text-shadow:0 1px 8px #000}
}
