@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;700&family=Playfair+Display:ital,wght@0,600;1,600;1,700&display=swap');
:root{--bg:#090a0c;--fg:#f1eee4;--muted:#929089;--line:#323431;--red:#ef554e;--pink:#f04f85;--mint:#b6e9ce;--blue:#8dd7e8;--yellow:#f4d95b;--orange:#ee7848}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--fg);font-family:'DM Sans','Noto Sans SC',sans-serif;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Ccircle cx='4' cy='8' r='.6' fill='%23fff'/%3E%3Ccircle cx='14' cy='16' r='.4' fill='%23fff'/%3E%3C/svg%3E")}.wrap{width:min(1180px,calc(100% - 80px));margin:auto}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;width:min(1320px,calc(100% - 80px));position:absolute;left:0;right:0;margin:auto;z-index:5;font:10px 'DM Mono';letter-spacing:.09em}.wordmark{display:flex;align-items:baseline;gap:9px}.wordmark b{font:900 17px 'Noto Sans SC'}.wordmark span{color:var(--muted)}.topbar nav{display:flex;gap:30px}.topbar a{color:var(--fg);text-decoration:none}.topbar nav a{color:var(--muted)}.topbar nav a:hover{color:var(--fg)}.enter{border:1px solid var(--fg);padding:12px 15px}.enter b{color:var(--red);font-size:15px;margin-left:12px}.hero{height:100svh;min-height:680px;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:100px 5vw 35px;overflow:hidden}.hero-image{position:absolute;inset:0;background:#16181b;overflow:hidden}.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.76),transparent 74%),linear-gradient(0deg,rgba(0,0,0,.72),transparent 50%)}.window{position:absolute;width:58vw;height:88vh;right:6%;top:4%;background:#403d38;opacity:.66;transform:perspective(500px) rotateY(-8deg);box-shadow:inset 0 0 120px #050505}.frame{position:absolute;right:15%;top:20%;width:36vw;height:43vh;border:1px solid #79766f;transform:rotate(-7deg);box-shadow:0 0 0 18px rgba(0,0,0,.24)}.frame:before{content:"";position:absolute;inset:18%;background:var(--red);opacity:.3;clip-path:polygon(12% 0,100% 20%,82% 100%,0 74%)}.orbit{position:absolute;width:46vw;height:20vw;right:-8%;bottom:16%;border:3px solid var(--red);border-left-color:transparent;border-radius:50%;transform:rotate(-21deg)}.hero-image>span{position:absolute;right:12%;top:47%;z-index:1;color:var(--yellow);font-size:34px;letter-spacing:18px;transform:rotate(-10deg)}.hero-meta,.hero-foot{position:relative;z-index:2;display:flex;justify-content:space-between;color:var(--muted);font:10px 'DM Mono';letter-spacing:.08em}.hero-copy{position:relative;z-index:2;max-width:850px;margin-top:auto;margin-bottom:auto}.hero-copy small,.label{display:block;color:var(--muted);font:10px 'DM Mono';letter-spacing:.15em;margin-bottom:24px}.hero h1,.statement h2,.section-head h2,.about h2,.contact-box h2{font-size:clamp(58px,9vw,140px);line-height:.9;letter-spacing:-.075em;font-weight:500;margin:0}.hero h1 i,h2 em{font-family:'Playfair Display',serif;color:var(--red);font-weight:600}.hero-copy p{max-width:430px;color:#cbc8c0;font-size:17px;line-height:1.7;margin:35px 0 0}.down{color:var(--red);font-size:20px;margin-top:-6px}.statement{display:grid;grid-template-columns:1fr 2fr;gap:10vw;padding:180px 0 190px}.statement p:not(.label){max-width:430px;color:#c5c1b7;font-size:18px;line-height:1.75;margin:38px 0 0}.work{padding-bottom:190px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:70px}.section-head>p{color:var(--muted);font:11px 'DM Mono';line-height:1.7;text-align:right}.project-list{border-top:1px solid var(--line)}.project-row{display:grid;grid-template-columns:70px 1fr 1.2fr 245px 35px;gap:24px;align-items:center;min-height:150px;border-bottom:1px solid var(--line);position:relative;cursor:pointer;transition:padding .35s,background .35s}.project-row:hover{padding:0 28px;background:#121518}.project-no,.project-type{font:10px 'DM Mono';color:var(--muted)}.project-name{font-size:clamp(27px,4vw,58px);letter-spacing:-.065em;line-height:1}.project-name i{font-family:'Playfair Display';color:var(--red)}.project-thumb{width:245px;height:116px;border:2px solid var(--fg);position:relative;overflow:hidden;opacity:.78;transition:transform .35s,opacity .35s}.project-row:hover .project-thumb{transform:rotate(-3deg) scale(1.08);opacity:1}.project-thumb:before{content:"";position:absolute;inset:52% -5% -20%;background:var(--mint);border-top:5px solid var(--bg);transform:rotate(-8deg)}.project-thumb:after{content:"✦ 〰 ♫";position:absolute;z-index:2;top:15px;left:16px;font-size:25px;color:var(--pink);text-shadow:2px 2px var(--bg)}.thumb-pink{background:var(--pink)}.thumb-blue{background:var(--blue)}.thumb-yellow{background:var(--yellow)}.thumb-orange{background:var(--orange)}.thumb-mint{background:var(--mint)}.thumb-navy{background:#172e59}.project-arrow{color:var(--red);font-size:25px;text-align:right}.about{border-top:1px solid var(--line);padding:160px 0 190px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:12vw;margin-top:90px}.about-copy{max-width:420px;color:#c5c1b7;font-size:18px;line-height:1.8}.about-copy p{margin:0 0 25px}.about-copy a{display:inline-block;color:var(--yellow);border-bottom:1px solid var(--yellow);padding-bottom:8px;font:13px 'DM Mono';margin-top:25px;text-decoration:none}.skills{border-top:1px solid var(--line)}.skills div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:22px 0}.skills b{font:12px 'DM Mono';color:var(--red)}.skills span{font-size:25px;line-height:1.1;letter-spacing:-.04em;text-align:right}.contact{padding:60px 0 150px}.contact-box{min-height:510px;border:1px solid var(--line);padding:55px 60px;position:relative;overflow:hidden}.contact-box:before{content:"";position:absolute;width:45vw;height:25vw;border:3px solid var(--pink);border-radius:50%;right:-10vw;bottom:-10vw;transform:rotate(-20deg)}.contact-box a{display:inline-block;color:var(--yellow);font:17px 'DM Mono';border-bottom:1px solid var(--yellow);padding:14px 0;margin-top:65px;position:relative;text-decoration:none}.sticker{position:absolute;right:12%;top:25%;font:11px 'DM Mono';line-height:1.65;color:var(--mint);transform:rotate(9deg)}.footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:25px 0 35px;color:var(--muted);font:10px 'DM Mono';letter-spacing:.08em}.footer a{color:var(--muted);text-decoration:none}dialog{width:min(950px,calc(100% - 32px));padding:0;background:var(--bg);color:var(--fg);border:1px solid var(--fg);box-shadow:12px 12px 0 var(--red)}dialog::backdrop{background:rgba(0,0,0,.82)}#dialogClose{position:absolute;right:18px;top:12px;background:none;border:0;color:var(--fg);font-size:34px;cursor:pointer}.dialog-wrap{display:grid;grid-template-columns:1.1fr .9fr;min-height:440px}.dialog-art{min-height:440px;border-right:1px solid var(--line);position:relative;background:var(--blue);overflow:hidden}.dialog-art:before{content:"";position:absolute;inset:54% -8% -10%;background:var(--mint);border-top:7px solid var(--bg);transform:rotate(-10deg)}.dialog-art:after{content:"✦ 〰 ♫";position:absolute;top:22%;left:24%;font-size:70px;color:var(--pink);text-shadow:3px 3px var(--bg)}.dialog-copy{padding:55px 45px}.dialog-copy h2{font-size:58px;line-height:.9;margin:0 0 20px}.dialog-copy p{color:#c5c1b7;line-height:1.8}.tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:30px}.tags span{border:1px solid var(--muted);padding:7px 9px;color:var(--yellow);font:10px 'DM Mono'}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}@media(max-width:760px){.wrap{width:calc(100% - 32px)}.topbar{width:calc(100% - 32px);height:68px}.topbar nav{display:none}.enter{padding:10px}.hero{padding:90px 20px 25px;min-height:640px}.hero h1{font-size:clamp(54px,16vw,88px)}.hero-copy p{font-size:15px;margin-top:28px}.hero-meta span:last-child{display:none}.window{width:100vw;right:-20%;opacity:.5}.frame{width:75vw;height:36vh;right:-8%;top:22%}.hero-image>span{right:7%;top:43%;font-size:24px}.statement{display:block;padding:115px 0}.statement h2,.section-head h2,.about h2,.contact-box h2{font-size:clamp(55px,17vw,88px)}.statement p:not(.label){font-size:16px}.section-head{display:block;margin-bottom:45px}.section-head>p{text-align:left;margin-top:25px}.work{padding-bottom:120px}.project-row{grid-template-columns:35px 1fr 27px;gap:9px;min-height:130px}.project-type{grid-column:2;grid-row:2;margin-top:-23px}.project-thumb{display:none}.project-name{font-size:31px}.about{padding:110px 0 120px}.about-grid{display:block;margin-top:60px}.about-copy{font-size:16px}.skills{margin-top:70px}.skills span{font-size:21px}.contact{padding:20px 0 100px}.contact-box{padding:35px 25px;min-height:470px}.contact-box a{margin-top:55px;font-size:13px}.sticker{right:10%;top:58%}.footer{display:block;line-height:2.4}.footer span,.footer a{display:block}.dialog-wrap{display:block}.dialog-art{min-height:250px;border-right:0;border-bottom:1px solid var(--line)}.dialog-copy{padding:35px 25px}.dialog-copy h2{font-size:48px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* 首屏移动端安全区：让真实工牌场景完整露出，文字不再被顶出视口 */
@media(max-width:760px){
  .hero{min-height:700px;padding:86px 20px 28px;justify-content:space-between}
  .hero-image{background-position:42% center!important}
  .hero-copy{margin-top:clamp(32px,9vh,72px);margin-bottom:clamp(24px,6vh,48px);max-width:100%!important}
  .hero h1{font-size:clamp(48px,13vw,76px);line-height:.94;letter-spacing:-.07em}
  .hero-copy small{margin-bottom:18px;font-size:9px}
  .hero-copy p{max-width:330px;margin-top:22px;font-size:14px;line-height:1.65}
  .hero-meta{font-size:9px}
  .hero-foot{font-size:9px}
}
/* dynamic portfolio layer */
.hero-progress{position:absolute;z-index:3;right:24px;top:50%;height:120px;width:2px;background:rgba(241,238,228,.25)}
.hero-progress span{display:block;width:2px;height:34%;background:var(--red);transition:height .2s ease}
.project-row:first-child{min-height:430px;padding:36px 0;background:#101215}
.project-row:first-child:hover{padding:36px 28px}
.project-row:first-child:after{content:'FEATURED';position:absolute;right:70px;top:30px;color:var(--red);font:10px 'DM Mono';letter-spacing:.16em}
.project-row:first-child .project-name{font-size:clamp(44px,6vw,88px)}
.project-row:first-child .project-thumb{width:100%;height:300px}
@media(max-width:760px){.hero-progress{right:11px;height:85px}.project-row:first-child{min-height:290px;padding:24px 0;grid-template-columns:35px 1fr 27px}.project-row:first-child:hover{padding:24px 0}.project-row:first-child:after{right:35px;top:20px}.project-row:first-child .project-name{font-size:42px}.project-row:first-child .project-thumb{display:block;grid-column:2;grid-row:3;width:100%;height:105px}.project-row:first-child .project-type{grid-column:2;grid-row:2;margin-top:0}}
/* Cathy visual workbench: a movable-looking portfolio dashboard inspired by physical design archives */
.visual-workbench{position:absolute;z-index:3;inset:12vh 7vw 10vh;display:grid;grid-template-columns:1.1fr 1.7fr 1fr;grid-template-rows:1fr 1.15fr 1fr;gap:14px;transform:rotate(-1deg)}
.board-brand,.board-card,.board-tag{border:1px solid rgba(241,238,228,.72);box-shadow:10px 12px 0 rgba(0,0,0,.3);background:rgba(11,14,18,.84);backdrop-filter:blur(6px)}
.board-brand{padding:22px;display:flex;flex-direction:column;justify-content:space-between;grid-column:1;grid-row:1;color:var(--fg)}.board-brand b{font-size:clamp(40px,5vw,80px);letter-spacing:-.09em}.board-brand span,.board-card small,.board-card a,.board-tag,.board-cursor{font:10px 'DM Mono';letter-spacing:.1em;color:var(--muted)}
.board-card{position:relative;padding:20px;display:flex;flex-direction:column;justify-content:space-between;transition:transform .35s,background .35s}.board-card:hover{transform:translateY(-8px) rotate(1deg);background:rgba(25,28,31,.95)}.board-card strong{font-size:clamp(18px,2vw,32px);line-height:1.1;letter-spacing:-.05em}.board-card strong i{font-family:'Playfair Display';color:var(--red);font-weight:600}.board-card a{color:var(--yellow);text-decoration:none;border-bottom:1px solid var(--yellow);width:max-content;padding-bottom:5px}.card-profile{grid-column:1;grid-row:2;background:rgba(238,85,78,.88);color:#111}.card-profile small,.card-profile a{color:#111;border-color:#111}.card-work{grid-column:2;grid-row:1 / span 2;background:rgba(21,39,65,.9);padding:28px}.card-work:before{content:'✦ 〰 ♫';position:absolute;right:10%;top:26%;font-size:60px;color:var(--pink);text-shadow:2px 2px var(--bg);transform:rotate(-12deg)}.card-skill{grid-column:3;grid-row:1}.card-contact{grid-column:3;grid-row:2;background:rgba(244,217,91,.92);color:#121212}.card-contact small,.card-contact a{color:#121212;border-color:#121212}.board-tag{padding:12px 15px;text-align:center;display:flex;align-items:center;justify-content:center;box-shadow:5px 7px 0 rgba(0,0,0,.34)}.tag-pink{grid-column:1;grid-row:3;background:var(--pink);color:#111}.tag-yellow{grid-column:2;grid-row:3;background:var(--yellow);color:#111;width:115px;justify-self:center}.tag-blue{grid-column:3;grid-row:3;background:var(--blue);color:#111;width:110px;justify-self:end}.board-cursor{position:absolute;right:5%;bottom:-10%;color:var(--red);transform:rotate(-7deg)}.hero>.hero-copy,.hero>.hero-meta,.hero>.hero-foot{opacity:.18;pointer-events:none}
@media(max-width:760px){.visual-workbench{inset:12vh 16px 14vh;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1.1fr 1.1fr 1fr;gap:9px;transform:rotate(0)}.board-brand{grid-column:1 / span 2;grid-row:1;padding:16px}.board-brand b{font-size:44px}.card-profile{grid-column:1;grid-row:2}.card-work{grid-column:2;grid-row:2 / span 2;padding:16px}.card-skill{grid-column:1;grid-row:3}.card-contact{grid-column:1 / span 2;grid-row:4}.board-tag{display:none}.board-cursor{bottom:-8%;right:4%;font-size:9px}.board-card{padding:14px}.board-card strong{font-size:18px}.card-work:before{font-size:38px}}
/* identity archive treatment */
.visual-workbench{inset:9vh 9vw 9vh;display:block;transform:none}.visual-workbench:before{content:"";position:absolute;inset:6% 4%;background:linear-gradient(115deg,rgba(34,39,47,.65),rgba(9,10,12,.35));border:1px solid rgba(241,238,228,.2);transform:skewY(-2deg);box-shadow:0 30px 70px rgba(0,0,0,.45)}.identity-card,.profile-slip,.archive-card,.tool-tag,.contact-ticket,.hanging-tag{position:absolute;z-index:2;box-shadow:12px 15px 0 rgba(0,0,0,.35);transition:transform .35s,filter .35s}.identity-card:hover,.profile-slip:hover,.archive-card:hover,.tool-tag:hover,.contact-ticket:hover,.hanging-tag:hover{filter:brightness(1.08);transform:translateY(-9px) rotate(0deg)}.identity-card{left:9%;top:12%;width:230px;height:350px;background:#f4efe3;color:#101114;padding:30px 22px 20px;transform:rotate(-5deg);border:1px solid #111}.identity-card small,.profile-slip small,.archive-card small,.tool-tag small,.contact-ticket small{font:9px 'DM Mono';letter-spacing:.09em}.identity-card small{display:block}.id-hole{position:absolute;top:13px;left:50%;width:16px;height:16px;border:2px solid #161616;border-radius:50%;transform:translateX(-50%)}.id-photo{height:160px;margin:26px 0 18px;background:#192f53;border:3px solid #101114;display:flex;align-items:center;justify-content:center;overflow:hidden}.id-photo:before{content:"";width:90px;height:110px;background:var(--pink);border:3px solid #101114;border-radius:48% 48% 40% 40%;transform:rotate(-7deg)}.id-photo span{position:absolute;color:var(--yellow);font-size:38px;z-index:1}.identity-card>b{display:block;font-size:30px;letter-spacing:-.07em}.identity-card>em{display:block;font:700 11px 'DM Mono';font-style:normal;color:#e85055;margin-top:5px}.identity-card p{font:8px 'DM Mono';margin-top:16px}.id-code{position:absolute;bottom:17px;right:20px;font:8px 'DM Mono';font-style:normal;transform:rotate(-90deg);transform-origin:right bottom}.profile-slip{left:34%;top:14%;width:320px;min-height:190px;background:#ece5d8;color:#111;padding:23px;transform:rotate(3deg);border:1px solid #111}.profile-slip h3,.archive-card h3{font-size:27px;line-height:1.02;letter-spacing:-.07em;margin:32px 0 17px}.profile-slip h3 i,.archive-card h3 i,.contact-ticket i{font-family:'Playfair Display';color:var(--red);font-weight:600}.profile-slip p{font-size:12px;line-height:1.65;max-width:245px}.profile-slip span{font:8px 'DM Mono';color:#777}.archive-card{right:8%;top:10%;width:300px;min-height:300px;background:#142a4b;color:var(--fg);padding:25px;transform:rotate(4deg);border:1px solid #aeb9c0}.archive-card h3{font-size:32px}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:26px 0}.mini-grid span{height:45px;padding:14px 8px;border:1px solid rgba(241,238,228,.55);font:9px 'DM Mono';color:var(--yellow)}.archive-card a,.contact-ticket a{font:10px 'DM Mono';color:var(--yellow);text-decoration:none;border-bottom:1px solid var(--yellow);padding-bottom:5px}.tool-tag{left:7%;bottom:6%;width:220px;min-height:130px;background:var(--pink);color:#111;padding:19px;transform:rotate(-8deg);border:1px solid #111}.tool-tag b{display:block;font-size:14px;line-height:1.3;margin:17px 0}.tool-tag span{font:8px 'DM Mono'}.contact-ticket{right:12%;bottom:8%;width:260px;min-height:145px;background:var(--yellow);color:#111;padding:23px;transform:rotate(-3deg);border:1px solid #111}.contact-ticket b{display:block;font-size:27px;line-height:.95;margin:22px 0}.contact-ticket small{color:#111}.contact-ticket a{color:#111;border-color:#111}.hanging-tag{padding:13px 16px;font:9px 'DM Mono';text-align:center;border:1px solid #111;box-shadow:6px 7px 0 rgba(0,0,0,.4)}.hanging-tag:before{content:"";position:absolute;top:-30px;left:50%;height:30px;border-left:1px solid #aaa}.tag-pink{left:44%;bottom:10%;background:var(--pink);color:#111;transform:rotate(8deg)}.tag-yellow{left:2%;top:51%;background:var(--yellow);color:#111;transform:rotate(8deg)}.tag-blue{right:1%;bottom:38%;background:var(--blue);color:#111;transform:rotate(-8deg)}.board-cursor{bottom:-4%;right:2%;position:absolute;z-index:3;font:9px 'DM Mono';color:var(--red);transform:rotate(-5deg)}
@media(max-width:760px){.visual-workbench{inset:9vh 8px 9vh}.visual-workbench:before{inset:2% 0}.identity-card{left:3%;top:9%;width:150px;height:245px;padding:18px 14px}.id-photo{height:100px;margin:20px 0 12px}.id-photo:before{width:55px;height:72px}.identity-card>b{font-size:22px}.identity-card p{font-size:6px;margin-top:8px}.identity-card small,.identity-card>em{font-size:7px}.profile-slip{left:35%;top:8%;width:185px;min-height:145px;padding:15px}.profile-slip h3{font-size:20px;margin:22px 0 10px}.profile-slip p{font-size:8px}.profile-slip span{font-size:6px}.archive-card{right:4%;top:45%;width:190px;min-height:205px;padding:15px}.archive-card h3{font-size:21px;margin:20px 0 11px}.mini-grid{margin:14px 0}.mini-grid span{height:29px;padding:8px 5px;font-size:6px}.archive-card a,.contact-ticket a{font-size:7px}.tool-tag{left:3%;bottom:12%;width:150px;min-height:90px;padding:12px}.tool-tag b{font-size:9px;margin:12px 0}.tool-tag span{font-size:6px}.contact-ticket{right:3%;bottom:4%;width:165px;min-height:93px;padding:13px}.contact-ticket b{font-size:18px;margin:13px 0}.hanging-tag{display:none}.board-cursor{font-size:7px;bottom:1%}}
/* specificity guard for the identity-board layout */
.hero .identity-workbench{display:block!important;inset:9vh 9vw 9vh!important;grid-template-columns:none!important;grid-template-rows:none!important;transform:none!important}
@media(max-width:760px){.hero .identity-workbench{inset:9vh 8px 9vh!important;display:block!important}}
.draggable-card{cursor:grab;touch-action:none;user-select:none}.draggable-card.is-dragging{cursor:grabbing;z-index:10!important;transition:none!important;filter:brightness(1.12);box-shadow:18px 22px 0 rgba(0,0,0,.48)}.metal-ring{position:absolute;top:-18px;left:50%;width:24px;height:24px;border:3px solid #c9c7bc;border-radius:50%;transform:translateX(-50%);box-shadow:inset 0 0 0 2px #34383a,0 3px 2px #111;z-index:5}.metal-ring:after{content:"";position:absolute;top:18px;left:8px;width:5px;height:20px;border-left:2px solid #aaa;border-right:2px solid #aaa}.identity-card,.profile-slip,.archive-card,.tool-tag,.contact-ticket{will-change:transform}
.hero .hero-image{background:#0c101a}.hero .hero-image:after{background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(0,0,0,.18) 55%,rgba(0,0,0,.55)),linear-gradient(0deg,rgba(0,0,0,.42),transparent 60%)!important}.hero .window,.hero .frame,.hero .orbit{display:none!important}
.hero .hero-image{filter:brightness(.58) saturate(.72)}.hero .hero-image:after{background:linear-gradient(90deg,rgba(3,6,12,.58),rgba(3,6,12,.42) 54%,rgba(3,6,12,.7)),linear-gradient(0deg,rgba(3,6,12,.62),rgba(3,6,12,.18) 58%,rgba(3,6,12,.4))!important}.hero .identity-workbench{filter:drop-shadow(0 20px 25px rgba(0,0,0,.38))}
.project-image,.project-thumb img,.dialog-art img{display:block;width:100%;height:260px;object-fit:cover;aspect-ratio:16/10}.project-thumb{min-height:116px}.project-thumb img{height:100%}[data-lazy-image]{display:block;width:100%;height:260px;object-fit:cover;aspect-ratio:16/10;background:#171b22}
@media(max-width:760px){.draggable-card.is-open{z-index:12!important;filter:brightness(1.08);box-shadow:16px 19px 0 rgba(0,0,0,.5)}.draggable-card.is-open:after{content:'TAP AGAIN TO CLOSE';position:absolute;right:10px;bottom:8px;font:7px 'DM Mono';color:currentColor;opacity:.65}.project-image,.project-thumb img,.dialog-art img{height:190px}}
.game-hud{position:absolute;z-index:4;left:5vw;right:5vw;bottom:70px;display:flex;gap:16px;pointer-events:none}.game-hud span{border:1px solid rgba(241,238,228,.35);padding:8px 11px;background:rgba(9,10,12,.5);color:var(--muted);font:9px 'DM Mono';letter-spacing:.08em}.game-hud span:first-child{color:var(--mint)}.game-hud span:first-child:first-letter{color:#83efaa}.ai-orb{position:absolute;z-index:5;right:5vw;bottom:104px;width:86px;height:86px;border:1px solid var(--pink);border-radius:50%;background:radial-gradient(circle at 35% 25%,#f9a2cf,#7c4edb 42%,#131329 72%);color:white;box-shadow:0 0 0 9px rgba(187,88,255,.12),0 0 35px rgba(240,79,133,.55);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;transition:transform .3s,box-shadow .3s}.ai-orb:hover,.ai-orb.is-active{transform:scale(1.12) rotate(8deg);box-shadow:0 0 0 16px rgba(187,88,255,.12),0 0 55px rgba(240,79,133,.8)}.ai-orb b{font-size:19px}.ai-orb span{font:7px 'DM Mono';line-height:1.1}.ai-tip{position:absolute;z-index:5;right:5vw;bottom:200px;max-width:210px;padding:13px 15px;background:#15112a;border:1px solid var(--pink);color:#e8dfff;font:11px 'DM Mono';line-height:1.6;opacity:0;transform:translateY(10px);pointer-events:none;transition:.3s}.ai-tip.is-visible{opacity:1;transform:none}.portal{min-height:100svh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:#06070b;border-top:1px solid var(--line)}.portal:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at center,rgba(101,53,154,.22),transparent 48%);pointer-events:none}.portal p,.portal small{position:relative;z-index:2;color:var(--muted);font:10px 'DM Mono';letter-spacing:.15em}.portal h2{position:relative;z-index:2;font-size:clamp(65px,11vw,170px);line-height:.82;margin:30px 0 35px;letter-spacing:-.09em}.portal-rings{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;--portal-scale:1}.portal-rings span{position:absolute;width:240px;height:240px;border:1px solid rgba(240,79,133,.45);border-radius:50%;transform:scale(calc(var(--portal-scale) + var(--i,0)));box-shadow:0 0 35px rgba(115,64,194,.16)}.portal-rings span:nth-child(1){--i:.25}.portal-rings span:nth-child(2){--i:.65}.portal-rings span:nth-child(3){--i:1.05}.mouse-icon{position:absolute;width:30px;height:46px;border:2px solid var(--fg);border-radius:18px;z-index:2;opacity:.9}.mouse-icon:before{content:"";position:absolute;left:50%;top:0;width:1px;height:17px;background:var(--fg)}.mouse-icon i{position:absolute;left:50%;top:8px;width:4px;height:8px;border-radius:5px;background:var(--red);transform:translateX(-50%);animation:wheel 1.5s infinite}@keyframes wheel{0%,100%{transform:translate(-50%,0);opacity:1}70%{transform:translate(-50%,14px);opacity:0}}
@media(max-width:760px){.game-hud{left:16px;right:16px;bottom:48px;gap:5px;flex-wrap:wrap}.game-hud span{font-size:7px;padding:6px 7px}.ai-orb{right:19px;bottom:112px;width:68px;height:68px}.ai-tip{right:19px;bottom:190px;font-size:9px}.portal h2{font-size:20vw}.portal-rings span{width:170px;height:170px}}
.hero .identity-workbench,.hero .game-hud,.hero .ai-orb,.hero .ai-tip{display:none!important}.hero .hero-image{animation:archiveCamera 18s ease-in-out infinite alternate;transform-origin:center center}.hero .hero-image:before{content:"";position:absolute;z-index:1;inset:-20%;background:linear-gradient(112deg,transparent 35%,rgba(255,255,255,.12) 48%,transparent 58%);transform:translateX(-65%);animation:lightSweep 8s ease-in-out infinite;mix-blend-mode:screen}.hero .hero-image:after{background:linear-gradient(90deg,rgba(3,6,12,.45),rgba(3,6,12,.18) 48%,rgba(3,6,12,.6)),linear-gradient(0deg,rgba(3,6,12,.6),transparent 56%,rgba(3,6,12,.26))!important}.hero .hero-copy,.hero .hero-meta,.hero .hero-foot{opacity:1!important}.hero .hero-copy{max-width:720px;text-shadow:0 3px 20px rgba(0,0,0,.8)}.hero .hero-copy p{color:#efede4}.hero .hero-foot{background:linear-gradient(90deg,transparent,rgba(4,6,10,.56),transparent);padding:13px 20px;margin:0 -20px}@keyframes archiveCamera{0%{transform:scale(1.02) translate3d(0,0,0)}50%{transform:scale(1.07) translate3d(-1.2%,.5%,0)}100%{transform:scale(1.04) translate3d(1%, -0.5%,0)}}@keyframes lightSweep{0%,20%{transform:translateX(-65%)}65%,100%{transform:translateX(65%)}}
/* 第二页：可点击的实体档案墙 */
.archive-wall{position:relative;display:grid;grid-template-columns:1.05fr 1.6fr 1fr;grid-template-rows:190px 290px 150px;gap:34px 42px;padding:70px 58px 90px;min-height:760px;overflow:hidden;border:1px solid #34383a;background-color:#181b1f;background-image:radial-gradient(circle,rgba(207,215,207,.42) 0 3px,transparent 4px);background-size:44px 44px;box-shadow:inset 0 0 0 18px rgba(0,0,0,.18),inset 0 0 80px rgba(0,0,0,.6)}
.archive-wall:before{content:"";position:absolute;inset:12px;border:1px solid rgba(241,238,228,.22);pointer-events:none}
.archive-card-ui{position:relative;z-index:1;text-align:left;text-decoration:none;cursor:pointer;color:#151719;border:1px solid #121416;box-shadow:10px 14px 0 rgba(0,0,0,.45),0 2px 7px rgba(0,0,0,.6);transition:transform .35s,filter .35s,box-shadow .35s;overflow:visible}
.archive-card-ui:hover,.archive-card-ui:focus-visible{transform:translateY(-9px) rotate(0deg);filter:brightness(1.08);box-shadow:14px 20px 0 rgba(0,0,0,.48),0 5px 16px rgba(0,0,0,.65);outline:none}
.archive-card-ui small,.archive-card-ui em,.archive-card-ui p,.archive-card-ui>b{display:block;font-family:'DM Mono';font-style:normal}.archive-card-ui small{font-size:10px;letter-spacing:.08em}.archive-card-ui strong{display:block;font-size:24px;letter-spacing:-.055em;line-height:1.05}.archive-card-ui em{font-size:11px;margin-top:5px}.archive-card-ui p{font-size:10px;line-height:1.55}.archive-card-ui>b{font-size:9px;letter-spacing:.08em;position:absolute;bottom:18px}
.archive-about{grid-column:1;grid-row:1 / span 2;background:#f1eadc;padding:25px 24px;transform:rotate(-4deg);margin:20px 0 0}.archive-about strong{font-size:28px;margin-top:24px}.archive-about em{color:#777}.archive-about p{max-width:160px;margin-top:28px}.archive-about>b{color:#111;border-bottom:1px solid #111;padding-bottom:4px}
.archive-ring{position:absolute;top:-27px;left:50%;width:27px;height:27px;border:3px solid #b8b9b2;border-radius:50%;transform:translateX(-50%);background:#232629;box-shadow:inset 0 0 0 2px #444,0 3px 3px #050505}.archive-ring:after{content:"";position:absolute;top:23px;left:9px;width:5px;height:25px;border-left:2px solid #aaa;border-right:2px solid #aaa}
.archive-selected{grid-column:2;grid-row:1 / span 3;background:linear-gradient(115deg,#e9e7df,#f7f5ed 48%,#dcdedb);padding:29px 25px 22px;transform:rotate(1deg);border-color:#aeb4b4;box-shadow:13px 17px 0 rgba(0,0,0,.48),inset 0 0 0 8px rgba(255,255,255,.38)}.archive-selected:before{content:"";position:absolute;inset:9px;border:1px solid rgba(89,95,96,.35);pointer-events:none}.archive-clip{position:absolute;top:-36px;left:50%;width:22px;height:36px;border:3px solid #b9bbb8;border-radius:5px 5px 10px 10px;transform:translateX(-50%);box-shadow:inset 0 0 0 2px #45494a}.archive-selected>*{position:relative}.archive-selected strong{font-size:25px;margin-top:8px}.archive-selected em{color:#777}.archive-selected>p{max-width:210px;color:#616568;margin:22px 0 18px}.archive-projects{border-top:1px solid #aaa}.archive-project{width:100%;display:grid;grid-template-columns:27px 1fr 86px 20px;gap:8px;align-items:center;padding:10px 0;border:0;border-bottom:1px solid #c1c3be;background:transparent;color:#313437;text-align:left;cursor:pointer}.archive-project:hover,.archive-project:focus-visible{background:#f6c900;outline:none;padding-left:8px}.archive-project>span{font:10px 'DM Mono';color:#555}.archive-project>b{font:9px 'DM Mono';font-weight:400;line-height:1.15}.archive-project b i{display:block;color:#777;font-style:normal;font-size:7px;margin-top:4px}.archive-project mark{height:31px;border:1px solid #2d3030;background:var(--blue);position:relative;overflow:hidden}.archive-project mark:after{content:'✦ 〰';position:absolute;inset:5px;color:var(--pink);font-size:17px}.archive-project .thumb-pink{background:var(--pink)}.archive-project .thumb-yellow{background:var(--yellow)}.archive-project .thumb-orange{background:var(--orange)}.archive-project .thumb-mint{background:var(--mint)}.archive-project .thumb-navy{background:#172e59}.archive-project>strong{font-size:16px;color:#d44d45}
.archive-skills{grid-column:1;grid-row:3;align-self:center;background:#202125;color:#eee;border-radius:48%;padding:26px 24px;min-height:145px;transform:rotate(-7deg);border-color:#96979a}.archive-skills strong{font-family:'DM Sans';font-size:22px;margin-top:6px}.archive-skills em{color:#bbb}.archive-skills div{display:flex;gap:5px;flex-wrap:wrap;margin-top:16px}.archive-skills div i{font:7px 'DM Mono';font-style:normal;color:#e8bd43;border:1px solid #b48f25;border-radius:12px;padding:4px 6px}.archive-skills>b{bottom:12px;right:22px;color:#f4d95b}.archive-contact{grid-column:3;grid-row:2;background:#f2f0e9;padding:25px 23px;transform:rotate(-2deg);border:2px solid #e5544b}.archive-contact:before{content:"✉";position:absolute;right:19px;top:20px;color:#e5544b;font-size:23px}.archive-contact strong{font-size:27px;margin-top:24px}.archive-contact em{color:#777}.archive-contact p{font-family:'Noto Sans SC';font-size:12px;line-height:1.6;margin-top:26px}.archive-contact>b{color:#222;border-bottom:1px solid #222;padding-bottom:4px}.archive-open{grid-column:3;grid-row:3;align-self:center;background:#f0eee6;padding:18px 18px 14px;transform:rotate(3deg);min-height:145px}.archive-open strong{font-size:18px;margin-top:14px}.archive-open small{color:#333}.archive-open p{color:#777;margin-top:12px}.archive-open:after{content:"////";position:absolute;right:-2px;top:0;bottom:0;width:21px;background:#f2d30b;writing-mode:vertical-rl;text-align:center;color:#222;font:10px 'DM Mono';padding:12px 4px}
@media(max-width:760px){.archive-wall{grid-template-columns:1fr 1fr;grid-template-rows:205px 390px 185px 160px;gap:30px 18px;padding:48px 20px 70px;min-height:1020px;background-size:31px 31px}.archive-card-ui small{font-size:8px}.archive-card-ui strong{font-size:18px}.archive-about{grid-column:1;grid-row:1;padding:18px 15px;margin:14px 0 0;transform:rotate(-4deg)}.archive-about strong{font-size:20px;margin-top:16px}.archive-about p{font-size:8px;margin-top:18px}.archive-about>b{font-size:7px;bottom:12px}.archive-selected{grid-column:1 / span 2;grid-row:2;padding:24px 17px 17px;transform:rotate(.5deg)}.archive-selected strong{font-size:22px}.archive-selected>p{font-size:8px;margin:15px 0 12px}.archive-project{grid-template-columns:25px 1fr 65px 15px;padding:9px 0}.archive-project>b{font-size:8px}.archive-project mark{height:27px}.archive-project>strong{font-size:13px}.archive-skills{grid-column:1;grid-row:3;padding:19px 16px;min-height:150px}.archive-skills div{margin-top:11px}.archive-skills div i{font-size:6px;padding:3px 5px}.archive-skills>b{font-size:7px;right:16px}.archive-contact{grid-column:2;grid-row:3;padding:19px 16px}.archive-contact strong{font-size:21px;margin-top:18px}.archive-contact p{font-size:9px;margin-top:18px}.archive-contact>b{font-size:7px;bottom:14px}.archive-open{grid-column:1 / span 2;grid-row:4;min-height:130px;padding:17px 18px}.archive-open strong{font-size:19px}.archive-ring{top:-22px;width:22px;height:22px}.archive-ring:after{top:18px;height:20px}.archive-clip{top:-28px;height:28px}}
/* 可滑动磁带导航：每一盘都是一个独立章节 */
.cassette-deck{position:relative;min-height:790px;background:#080b12;border:1px solid #303746;overflow:hidden;box-shadow:inset 0 0 90px rgba(0,0,0,.8)}
.cassette-stage{position:relative;min-height:570px;overflow:hidden;background:radial-gradient(circle at 50% 45%,rgba(105,66,162,.28),transparent 32%),linear-gradient(125deg,#07101d,#151522 48%,#090c15)}
.cassette-stage:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(155,180,255,.025) 4px),radial-gradient(circle at 18% 35%,rgba(22,103,141,.26),transparent 18%),radial-gradient(circle at 86% 23%,rgba(146,53,110,.22),transparent 20%);opacity:.9;pointer-events:none}
.cassette-stage:after{content:"BUILDING WITH AI · THINKING WITH STORIES";position:absolute;left:18px;top:88px;writing-mode:vertical-rl;color:rgba(240,238,228,.34);font:9px 'DM Mono';letter-spacing:.22em;pointer-events:none}
.cassette-backdrop{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.68),transparent 28%,transparent 72%,rgba(0,0,0,.7)),linear-gradient(0deg,rgba(0,0,0,.7),transparent 38%,rgba(0,0,0,.4));pointer-events:none}
.cassette-hero{position:absolute;left:50%;top:47%;width:min(520px,55vw);aspect-ratio:1.72;transform:translate(-50%,-50%);border:5px solid rgba(221,228,232,.78);border-radius:17px;background:linear-gradient(135deg,#181d25,#59626e 48%,#111722);box-shadow:0 0 0 5px rgba(88,106,153,.22),0 0 35px rgba(169,104,255,.58),18px 22px 0 rgba(0,0,0,.48);transition:background .4s,box-shadow .4s,transform .5s}
.cassette-hero:before{content:"";position:absolute;inset:14px;border:1px solid rgba(235,238,228,.58);border-radius:7px;box-shadow:inset 0 0 18px rgba(0,0,0,.8)}
.cassette-hero:after{content:"";position:absolute;left:11%;right:11%;top:25%;height:51%;border:2px solid rgba(244,239,216,.75);background:linear-gradient(90deg,#1b1c23,#f5ead0 9% 91%,#1b1c23);box-shadow:0 0 0 7px rgba(0,0,0,.16);clip-path:polygon(4% 0,96% 0,100% 18%,100% 82%,96% 100%,4% 100%,0 82%,0 18%)}
.cassette-hero .reel,.cassette-hero .reel:after{content:"";position:absolute;z-index:3;width:63px;height:63px;top:39%;border-radius:50%;background:radial-gradient(circle,#bfc5c8 0 17%,#171c23 18% 30%,#e0e2dd 31% 41%,#444a50 42% 52%,#11151b 53%);box-shadow:0 0 0 5px rgba(0,0,0,.42)}.cassette-hero .reel{left:13%}.cassette-hero .reel:after{left:auto;right:-485%;top:0}.cassette-hero.tape-mint{background:linear-gradient(135deg,#17291f,#9ca895 47%,#101813);box-shadow:0 0 0 5px rgba(125,211,155,.18),0 0 35px rgba(109,215,143,.4),18px 22px 0 rgba(0,0,0,.48)}.cassette-hero.tape-yellow{background:linear-gradient(135deg,#2b2615,#d3a846 47%,#12100b);box-shadow:0 0 0 5px rgba(245,207,83,.18),0 0 35px rgba(245,207,83,.44),18px 22px 0 rgba(0,0,0,.48)}.cassette-hero.tape-orange{background:linear-gradient(135deg,#2c160c,#c86127 47%,#130c0b);box-shadow:0 0 0 5px rgba(239,120,63,.18),0 0 35px rgba(239,120,63,.55),18px 22px 0 rgba(0,0,0,.48)}.cassette-hero.tape-red{background:linear-gradient(135deg,#321119,#df585b 47%,#130b11);box-shadow:0 0 0 5px rgba(240,79,133,.18),0 0 35px rgba(240,79,133,.52),18px 22px 0 rgba(0,0,0,.48)}.cassette-hero.tape-blue{background:linear-gradient(135deg,#0b1b31,#458eb1 47%,#0a111f);box-shadow:0 0 0 5px rgba(101,190,230,.18),0 0 35px rgba(101,190,230,.46),18px 22px 0 rgba(0,0,0,.48)}
.cassette-title{position:absolute;left:50%;top:79%;transform:translateX(-50%);z-index:4;text-align:center;text-shadow:0 3px 14px #000;pointer-events:none;width:100%}.cassette-title span{color:#bfa4ff;font:9px 'DM Mono';letter-spacing:.18em}.cassette-title h3{margin:8px 0 0;color:#f2eee5;font-size:clamp(31px,4vw,57px);font-style:italic;letter-spacing:-.06em}.cassette-title em{display:block;color:#dca8ff;font:17px 'Noto Sans SC';font-style:normal;margin-top:5px}.cassette-title p{margin:10px auto 0;max-width:400px;color:#a3a4ad;font:10px 'DM Mono'}.cassette-enter{pointer-events:auto;margin-top:13px;padding:8px 18px;border:1px solid #ddd2ff;border-radius:20px;background:rgba(66,45,128,.75);color:#fff;font:9px 'DM Mono';letter-spacing:.1em;cursor:pointer}.cassette-enter:hover{background:#9568ed}.cassette-status{position:absolute;z-index:4;left:38px;right:38px;bottom:22px;display:flex;gap:10px;justify-content:space-between;color:#bbb5cf;font:9px 'DM Mono';letter-spacing:.1em}.cassette-status span{border:1px solid rgba(214,205,240,.35);padding:7px 10px;background:rgba(7,10,17,.65)}
.cassette-rail{position:relative;z-index:5;display:flex;gap:16px;overflow-x:auto;padding:32px 48px 40px;background:#0b0e15;border-top:1px solid #313643;scroll-snap-type:x mandatory;scrollbar-color:#8b65df #11151e}.cassette-rail::-webkit-scrollbar{height:6px}.cassette-rail::-webkit-scrollbar-thumb{background:#8761d7}.cassette-pick{position:relative;flex:0 0 210px;height:122px;scroll-snap-align:center;border:1px solid rgba(220,228,230,.6);border-radius:8px;background:linear-gradient(135deg,#161a24,#545e6b);color:#eee;text-align:left;padding:19px 16px;cursor:pointer;box-shadow:7px 9px 0 rgba(0,0,0,.45);transition:transform .35s,filter .35s,box-shadow .35s}.cassette-pick:before{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.35);border-radius:4px;pointer-events:none}.cassette-pick:hover,.cassette-pick:focus-visible{transform:translateY(-8px) rotate(-2deg);filter:brightness(1.2);outline:none}.cassette-pick.is-active{transform:translateY(-14px) scale(1.06);box-shadow:0 0 0 2px #b88cff,9px 13px 0 rgba(0,0,0,.5),0 0 25px rgba(146,94,255,.45)}.cassette-pick small,.cassette-pick b,.cassette-pick em{display:block;position:relative;z-index:2}.cassette-pick small{font:10px 'DM Mono';color:#ddd}.cassette-pick b{font-size:17px;line-height:1;margin-top:17px;letter-spacing:-.05em}.cassette-pick em{font:9px 'Noto Sans SC';font-style:normal;color:#d8b1ff;margin-top:7px}.cassette-pick:after{content:"";position:absolute;right:17px;bottom:16px;width:27px;height:27px;border:4px solid #aeb6bd;border-radius:50%;box-shadow:inset 0 0 0 4px #1a2028}.cassette-mini-reel{position:absolute;right:21px;top:20px;width:18px;height:18px;border:3px solid rgba(240,242,236,.78);border-radius:50%}.tape-mint{background:linear-gradient(135deg,#17291f,#667f68)}.tape-mint em{color:#9bf0b2}.tape-yellow{background:linear-gradient(135deg,#2c2714,#a58a3b)}.tape-yellow em{color:#f4dc75}.tape-orange{background:linear-gradient(135deg,#34170d,#b25d31)}.tape-orange em{color:#ffb083}.tape-red{background:linear-gradient(135deg,#35131d,#a74756)}.tape-red em{color:#ffb3c5}.tape-blue{background:linear-gradient(135deg,#102235,#31657d)}.tape-blue em{color:#a5e4ff}
@media(max-width:760px){.cassette-deck{min-height:710px}.cassette-stage{min-height:520px}.cassette-stage:after{left:8px;top:46px;font-size:7px}.cassette-hero{width:83vw;top:42%;}.cassette-hero .reel,.cassette-hero .reel:after{width:43px;height:43px}.cassette-hero .reel:after{right:-610%}.cassette-title{top:69%}.cassette-title h3{font-size:29px}.cassette-title em{font-size:14px}.cassette-title p{font-size:8px;padding:0 20px}.cassette-status{left:14px;right:14px;bottom:14px;gap:5px;flex-wrap:wrap}.cassette-status span{font-size:7px;padding:5px 7px}.cassette-rail{gap:12px;padding:26px 25px 33px}.cassette-pick{flex-basis:165px;height:105px;padding:14px 12px}.cassette-pick b{font-size:13px;margin-top:15px}.cassette-pick em{font-size:8px}.cassette-pick:after{right:12px;bottom:12px;width:21px;height:21px}}
/* 章节界面：磁带打开后进入可阅读、可探索的作品集场景 */
.chapter-screen{min-height:560px;padding:52px 58px;background:radial-gradient(circle at 80% 35%,rgba(104,67,192,.28),transparent 34%),linear-gradient(135deg,#0c1020,#141020 55%,#090b12);color:#eee;position:relative;overflow:hidden}.chapter-screen:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.8%,rgba(170,137,255,.11) 50%,transparent 50.2%),linear-gradient(0deg,transparent 49.8%,rgba(170,137,255,.08) 50%,transparent 50.2%);background-size:100% 100%,100% 100%;pointer-events:none}.chapter-kicker{position:relative;color:#a893db;font:10px 'DM Mono';letter-spacing:.18em}.chapter-screen h2{position:relative;margin:20px 0 16px;font-size:clamp(44px,7vw,96px);line-height:.9;letter-spacing:-.08em}.chapter-screen h2 i{font-family:'Playfair Display';font-weight:600;color:#b58cff}.chapter-lead{position:relative;max-width:620px;color:#eee;font-size:19px;line-height:1.6}.chapter-en{position:relative;max-width:560px;color:#9797a8;font:11px 'DM Mono';line-height:1.8}.profile-screen{display:grid;grid-template-columns:1.3fr .8fr;gap:50px}.profile-lines{position:relative;display:grid;gap:11px;margin:30px 0;color:#cac5db;font-size:12px}.profile-lines span{padding-bottom:9px;border-bottom:1px solid rgba(186,158,255,.2)}.profile-lines b{display:inline-block;width:48px;color:#a98bf2;font:10px 'DM Mono'}.profile-stats{position:relative;display:flex;gap:35px}.profile-stats strong{font-size:31px;color:#d1b9ff}.profile-stats small{display:block;color:#8d899d;font:8px 'DM Mono';margin-top:5px}.profile-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:center}.profile-photo,.profile-note{min-height:130px;border:1px solid rgba(229,220,255,.75);background:linear-gradient(140deg,rgba(83,53,138,.55),rgba(12,14,27,.4));padding:17px;color:#c6b3f4;font:10px 'DM Mono';transform:rotate(-2deg);box-shadow:8px 10px 0 rgba(0,0,0,.25)}.profile-photo{min-height:200px;grid-row:span 2;display:flex;align-items:end}.profile-photo b{color:#fff;margin-left:5px}.profile-note{min-height:94px;transform:rotate(3deg)}.profile-note strong{display:block;color:#eee;margin-top:24px;font-size:13px}.profile-note.accent{border-color:#ed71b4;background:linear-gradient(140deg,rgba(184,73,142,.35),rgba(12,14,27,.5))}.timeline-screen{background:radial-gradient(circle at 70% 90%,rgba(70,57,166,.36),transparent 40%),linear-gradient(140deg,#101222,#141321)}.timeline-list{position:relative;margin-top:38px;border-top:1px solid rgba(212,201,246,.25)}.timeline-list>div{position:relative;display:grid;grid-template-columns:88px 1.2fr 1fr 120px;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid rgba(212,201,246,.18)}.timeline-list b{font:italic 30px 'Playfair Display';color:#aa8ef6}.timeline-list strong{font-size:16px}.timeline-list span{color:#9f9daf;font:10px 'DM Mono';line-height:1.6}.timeline-list em{justify-self:end;color:#bd9cff;border:1px solid #6547a9;border-radius:12px;padding:5px 8px;font:8px 'DM Mono';font-style:normal}.skills-screen{background:radial-gradient(circle at 70% 25%,rgba(210,144,57,.2),transparent 30%),#13120f}.skill-console{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:45px}.skill-console>div{border:1px solid rgba(244,217,91,.5);padding:23px;background:rgba(30,27,20,.75);min-height:190px}.skill-console small{color:#f4d95b;font:9px 'DM Mono'}.skill-console strong{display:block;font-size:18px;margin-top:22px}.skill-console p{color:#aaa39a;font-size:12px;line-height:1.6}.skill-console meter{width:100%;height:7px;accent-color:#f4d95b}.tool-cloud{position:relative;display:flex;gap:9px;flex-wrap:wrap;margin-top:28px}.tool-cloud span{border:1px solid #b89445;border-radius:20px;color:#f6da80;padding:8px 12px;font:10px 'DM Mono'}.projects-screen{background:radial-gradient(circle at 75% 30%,rgba(231,102,57,.2),transparent 32%),#17100d}.case-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:35px}.case-item{min-height:150px;padding:18px;text-align:left;color:#fff;border:1px solid rgba(246,149,95,.55);background:rgba(86,35,19,.55);cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;transition:transform .3s,filter .3s}.case-item:hover{transform:translateY(-6px) rotate(-1deg);filter:brightness(1.2)}.case-item small,.case-item span,.case-item>b{font:9px 'DM Mono';color:#e8ab85}.case-item strong{font-size:19px}.case-item>b{color:#fff}.case-item.thumb-pink{background:linear-gradient(140deg,#62223b,#2b1522)}.case-item.thumb-yellow{background:linear-gradient(140deg,#735b1e,#2f2411)}.case-item.thumb-mint{background:linear-gradient(140deg,#1d5546,#101d1b)}.contact-screen{background:radial-gradient(circle at 75% 35%,rgba(232,74,103,.2),transparent 35%),#170c16}.contact-terminal{position:relative;max-width:560px;margin-top:42px;border:1px solid #d06b82;padding:27px;background:rgba(43,12,33,.78);display:grid;gap:14px;font:10px 'DM Mono';color:#ca9aac}.contact-terminal strong{color:#ffadc6;font-size:21px}.contact-terminal div{display:flex;justify-content:space-between;border-bottom:1px solid rgba(240,130,161,.22);padding-bottom:10px}.contact-terminal b{color:#fff}.contact-terminal a{color:#fff;border:1px solid #e47b9e;padding:12px;width:max-content;text-decoration:none}.lab-screen{background:radial-gradient(circle at 50% 20%,rgba(54,168,211,.22),transparent 32%),#09151c}.lab-grid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:60px}.lab-grid>div{padding:24px;border:1px solid #56b3cb;background:rgba(9,37,47,.65);min-height:180px}.lab-grid b{color:#62d8ec;font:10px 'DM Mono'}.lab-grid strong{display:block;font-size:18px;margin:26px 0 12px}.lab-grid span{color:#91b4bd;font-size:12px;line-height:1.6}
@media(max-width:760px){.chapter-screen{padding:32px 22px;min-height:650px}.profile-screen{display:block}.profile-grid{margin-top:35px;grid-template-columns:1fr 1fr}.profile-photo{min-height:150px}.profile-note{min-height:76px}.profile-note strong{margin-top:15px;font-size:10px}.timeline-list>div{grid-template-columns:45px 1fr;gap:8px;padding:17px 0}.timeline-list span{grid-column:2}.timeline-list em{display:none}.skill-console,.case-grid,.lab-grid{grid-template-columns:1fr}.skill-console>div{min-height:145px}.case-item{min-height:118px}.lab-grid{margin-top:35px}.lab-grid>div{min-height:125px}.lab-grid strong{margin:16px 0 8px}.contact-terminal div{display:block}.contact-terminal b{display:block;margin-top:6px}}
/* SKILL 展示区：把能力做成可选择的工作模块 */
.skills-console{display:grid;grid-template-columns:repeat(5,1fr);gap:13px;margin-top:90px}.skill-card{position:relative;min-height:250px;padding:19px 15px 17px;text-align:left;color:#eee;border:1px solid rgba(197,171,255,.48);border-radius:13px;background:linear-gradient(155deg,rgba(46,33,76,.72),rgba(12,12,28,.75));box-shadow:inset 0 0 25px rgba(137,88,255,.08);cursor:pointer;transition:transform .35s,background .35s,box-shadow .35s}.skill-card:before{content:"";position:absolute;left:15px;top:15px;width:26px;height:26px;border:1px solid #a58bff;border-radius:7px;box-shadow:inset 0 0 0 5px rgba(165,139,255,.08)}.skill-card small{position:absolute;right:15px;top:15px;color:#8f82af;font:9px 'DM Mono'}.skill-card strong{display:block;margin-top:55px;font:italic 600 22px 'Playfair Display';letter-spacing:-.03em;color:#f0eaff}.skill-card span{display:block;margin-top:18px;color:#aaa5ba;font-size:11px;line-height:1.6}.skill-card em{display:block;margin-top:18px;color:#b08cff;font:8px 'DM Mono';font-style:normal;line-height:1.5}.skill-card:hover,.skill-card.is-active{transform:translateY(-12px);background:linear-gradient(155deg,rgba(72,47,130,.9),rgba(18,15,38,.92));box-shadow:0 18px 0 rgba(0,0,0,.28),0 0 24px rgba(135,91,255,.2);border-color:#d4c2ff}.skill-card.is-active:after{content:"ACTIVE MODULE";position:absolute;right:13px;bottom:15px;color:#d8c7ff;font:7px 'DM Mono';letter-spacing:.1em}
@media(max-width:900px){.skills-console{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.skills-console{grid-template-columns:1fr 1fr;gap:10px;margin-top:70px}.skill-card{min-height:190px;padding:15px 12px}.skill-card strong{font-size:17px;margin-top:48px}.skill-card span{font-size:9px;margin-top:12px}.skill-card em{font-size:7px;margin-top:12px}.skill-card:nth-child(5){grid-column:1 / span 2;min-height:150px}}
/* 首屏三组底图轮播：1 指挥舱 / 3 磁带工作台 / 4 档案墙 */
.hero .hero-image{transition:background-image .9s ease,filter .9s ease}.hero .hero-image.scene-changing{filter:brightness(.42) saturate(.55)}.hero-scene-nav{position:absolute;z-index:4;right:5vw;bottom:37px;display:flex;gap:7px}.hero-scene-nav button{width:22px;height:3px;padding:0;border:0;background:rgba(241,238,228,.3);cursor:pointer;transition:width .3s,background .3s}.hero-scene-nav button.is-active{width:42px;background:var(--red)}
@media(max-width:760px){.hero-scene-nav{right:20px;bottom:30px}.hero-scene-nav button{width:16px}.hero-scene-nav button.is-active{width:30px}}
/* 回到实体洞洞板后，作品页与技能页在桌面端保持宽屏比例 */
.about-grid{display:block}.skills-console{width:100%;margin-top:78px}.project-media{display:flex;align-items:center;justify-content:center;background:#101727!important}.project-media:before,.project-media:after{display:none}.project-media video{display:block;width:100%;height:100%;min-height:440px;object-fit:cover;opacity:.9}.media-play{position:absolute;z-index:2;left:22px;bottom:22px;border:1px solid #f1eee4;background:rgba(5,7,12,.72);color:#f1eee4;padding:9px 12px;font:9px 'DM Mono';cursor:pointer}.media-play:hover{background:var(--red)}
/* 结尾穿梭：模拟连续素材带被鼠标卷入镜头，而不是静态圆环 */
.portal{perspective:900px;background:radial-gradient(ellipse at center,rgba(87,49,154,.28),transparent 34%),#05060b}.portal:after{content:"";position:absolute;inset:-20%;background:repeating-linear-gradient(90deg,transparent 0 70px,rgba(151,111,255,.12) 71px 73px,transparent 74px 170px),repeating-linear-gradient(0deg,transparent 0 46px,rgba(233,76,145,.1) 47px 49px,transparent 50px 130px);transform:perspective(420px) rotateX(62deg) translateY(15%);animation:portalDrift 5s linear infinite;filter:blur(1px);pointer-events:none}.portal-rings{transform:rotateX(62deg) scaleY(.65);filter:drop-shadow(0 0 16px rgba(178,112,255,.55))}.portal-rings span{width:58vw;height:25vw;border-radius:18px;border-color:rgba(176,126,255,.5);box-shadow:0 0 26px rgba(180,100,255,.26),inset 0 0 30px rgba(94,116,255,.14);animation:portalTunnel 3s ease-in-out infinite}.portal-rings span:nth-child(2){animation-delay:-1s}.portal-rings span:nth-child(3){animation-delay:-2s}.portal .mouse-icon{transform:rotateX(-62deg);animation:mouseForward 2.2s ease-in-out infinite}.portal h2,.portal p,.portal small{filter:drop-shadow(0 0 12px rgba(177,132,255,.26))}@keyframes portalDrift{from{transform:perspective(420px) rotateX(62deg) translateY(15%) translateX(0)}to{transform:perspective(420px) rotateX(62deg) translateY(15%) translateX(-170px)}}@keyframes portalTunnel{0%,100%{transform:scale(.55) translateZ(-160px);opacity:.22}50%{transform:scale(1.35) translateZ(80px);opacity:.8}}@keyframes mouseForward{0%,100%{transform:rotateX(-62deg) translateZ(0) translateY(0)}50%{transform:rotateX(-62deg) translateZ(40px) translateY(10px)}}
.statement{position:relative;isolation:isolate}
.statement:before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:linear-gradient(90deg,rgba(5,6,11,.92),rgba(5,6,11,.62) 48%,rgba(5,6,11,.82)),url('assets/page2-bg-violet-dark.png') center/cover no-repeat;opacity:.86}
.statement>*{position:relative;z-index:1}
@media(max-width:760px){.skills-console{margin-top:65px}.project-media video{min-height:245px}.portal-rings span{width:78vw;height:33vw}.portal:after{transform:perspective(340px) rotateX(62deg) translateY(22%)}}
.cursor-follower{position:fixed;z-index:50;left:0;top:0;width:22px;height:28px;pointer-events:none;opacity:0;translate:-50% -50%;filter:drop-shadow(0 0 8px rgba(137,181,255,.9));transition:opacity .25s,filter .2s}.cursor-follower.is-visible{opacity:1}.cursor-follower:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,#fff 0 28%,#b7cfff 45%,#6359ff 100%);clip-path:polygon(0 0,100% 42%,55% 53%,39% 100%);border-radius:2px}.cursor-follower:after{content:"";position:absolute;inset:-18px;border-radius:50%;background:radial-gradient(circle,rgba(94,135,255,.24),transparent 66%);z-index:-1}.cursor-follower i{position:absolute;left:-14px;top:6px;width:7px;height:7px;border:1px solid rgba(170,194,255,.75);border-radius:50%;box-shadow:0 0 12px rgba(133,160,255,.8);animation:cursorPulse 1.4s ease-in-out infinite}.cursor-follower b{position:absolute;width:3px;height:3px;border-radius:50%;background:#d7e1ff;opacity:.7;animation:cursorTrail 1.2s ease-out infinite}.cursor-follower b:nth-of-type(1){left:-20px;top:17px;animation-delay:-.3s}.cursor-follower b:nth-of-type(2){left:-28px;top:9px;animation-delay:-.6s}.cursor-follower b:nth-of-type(3){left:-35px;top:22px;animation-delay:-.9s}.cursor-follower.is-clicking{filter:drop-shadow(0 0 15px rgba(239,85,78,.95));scale:1.18}.cursor-follower.is-clicking:after{background:radial-gradient(circle,rgba(239,85,78,.42),transparent 66%)}@keyframes cursorPulse{0%,100%{transform:scale(.7);opacity:.35}50%{transform:scale(1.35);opacity:1}}@keyframes cursorTrail{0%{transform:translate(8px,-4px) scale(.4);opacity:0}35%{opacity:1}100%{transform:translate(-8px,8px) scale(1.2);opacity:0}}@media(pointer:coarse){.cursor-follower{display:none}}
.mouse-icon{display:none!important}
/* 工牌主体层：背景轮播时，工牌保持为叙事中心 */
.badge-stage{position:absolute;z-index:2;right:15%;top:15%;width:min(260px,22vw);transform-origin:50% -12%;animation:badgeSwing 5.5s ease-in-out infinite;filter:drop-shadow(18px 22px 18px rgba(0,0,0,.6));pointer-events:none}.badge-stage:before{content:"";position:absolute;left:50%;top:-42px;width:2px;height:44px;background:linear-gradient(#8f959b,#252b31);box-shadow:8px 0 #525b62;transform:rotate(-3deg)}.badge-stage img{display:block;width:100%;height:auto;filter:saturate(.72) contrast(1.08)}.badge-stage i{position:absolute;inset:8% 12%;border-radius:5px;background:linear-gradient(110deg,transparent 25%,rgba(255,255,255,.4) 45%,transparent 58%);mix-blend-mode:screen;animation:badgeGlint 4.8s ease-in-out infinite}.scene-changing .badge-stage{animation:badgeCut .9s ease both}@keyframes badgeSwing{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(3deg) translateY(9px)}}@keyframes badgeGlint{0%,25%{transform:translateX(-55%);opacity:0}48%{opacity:.8}72%,100%{transform:translateX(55%);opacity:0}}@keyframes badgeCut{0%{transform:rotate(-4deg) scale(.96);opacity:.5}55%{transform:rotate(4deg) scale(1.03);opacity:1}100%{transform:rotate(0) scale(1)}}
@media(max-width:760px){.badge-stage{right:11%;top:17%;width:31vw;max-width:170px}.badge-stage:before{top:-27px;height:28px}}
/* 工牌只在结尾 Portal 出现：作为穿越后的身份徽章 */
/* Systems case study */
.system-case{border-top:1px solid var(--line);padding:140px 0 170px}.system-case .section-head{margin-bottom:55px}.system-intro{display:flex;justify-content:space-between;gap:40px;align-items:end;padding:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.system-intro p{max-width:560px;margin:0;color:#c5c1b7;font-size:21px;line-height:1.65}.system-intro span,.system-grid small,.system-footer{color:var(--muted);font:10px 'DM Mono';letter-spacing:.1em}.system-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:28px}.system-grid article{min-height:285px;padding:28px;border:1px solid var(--line);background:linear-gradient(145deg,rgba(36,29,46,.8),rgba(13,15,19,.82));position:relative;overflow:hidden}.system-grid article:after{content:'↗';position:absolute;right:24px;bottom:18px;color:var(--red);font-size:24px}.system-grid h3{font-size:31px;line-height:1.05;letter-spacing:-.06em;margin:46px 0 18px}.system-grid h3 em{font-family:'Playfair Display';color:var(--red);font-weight:600}.system-grid p{color:#aaa7a0;font-size:14px;line-height:1.8;margin:0;max-width:290px}.system-footer{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:24px 0}.system-footer b{color:var(--yellow);font-weight:400;margin-right:8px}
@media(max-width:760px){.system-case{padding:110px 0 120px}.system-intro{display:block}.system-intro p{font-size:18px;margin-bottom:22px}.system-grid{grid-template-columns:1fr}.system-grid article{min-height:235px}.system-grid h3{font-size:28px;margin-top:38px}.system-footer{display:grid;gap:14px}}
/* 15-second motion case */
.motion-case{border-top:1px solid var(--line);padding:140px 0 170px}.motion-case .section-head{margin-bottom:55px}.motion-reel{--motion-progress:0;min-height:620px;position:relative;overflow:hidden;border:1px solid #4e485d;background:#080a12;color:var(--fg);isolation:isolate}.motion-backdrop{position:absolute;inset:0;background:radial-gradient(circle at calc(18% + var(--motion-progress)*62%) 42%,rgba(145,111,255,.35),transparent 18%),linear-gradient(135deg,#090b13,#17102a 52%,#08090d)}.motion-grid-line{position:absolute;display:block;width:130%;height:1px;background:rgba(170,144,255,.25);left:-10%;transform:rotate(-13deg);transform-origin:center}.motion-grid-line.line-a{top:36%;transform:rotate(18deg)}.motion-grid-line.line-b{top:67%;transform:rotate(-15deg);background:rgba(239,85,78,.3)}.motion-orb{position:absolute;width:170px;height:170px;border:1px solid rgba(203,171,255,.75);border-radius:50%;left:calc(12% + var(--motion-progress)*65%);top:29%;transform:translate(-50%,-50%);box-shadow:0 0 50px rgba(151,104,255,.38),inset 0 0 35px rgba(151,104,255,.3);transition:left .1s linear}.motion-orb:after{content:'AI';position:absolute;inset:38%;display:grid;place-items:center;border-radius:50%;background:#c7a8ff;color:#151020;font:12px 'DM Mono';box-shadow:0 0 35px #9e76ff}.motion-scan{position:absolute;left:0;right:0;top:calc(var(--motion-progress)*100%);height:2px;background:linear-gradient(90deg,transparent,var(--red),transparent);box-shadow:0 0 25px var(--red);opacity:.75}.motion-topline,.motion-caption,.motion-controls{position:absolute;left:30px;right:30px;z-index:2;display:flex;justify-content:space-between;align-items:center;font:10px 'DM Mono';letter-spacing:.12em}.motion-topline{top:27px;color:#a8a1b7}.motion-stage{position:relative;z-index:1;padding:132px 7% 0;max-width:730px}.motion-phase-label{color:var(--yellow);font:11px 'DM Mono';letter-spacing:.16em}.motion-title{font-size:clamp(48px,7vw,92px);line-height:.92;letter-spacing:-.08em;font-weight:500;margin:24px 0 22px}.motion-title em{font-family:'Playfair Display';color:var(--red);font-weight:600}.motion-copy{max-width:450px;color:#c4bfcd;line-height:1.7;font-size:16px}.motion-artifact{position:absolute;left:calc(100% + 45px);top:150px;width:220px;height:155px;padding:18px;border:1px solid rgba(241,238,228,.6);background:rgba(13,13,24,.64);opacity:0;transform:translateY(22px) rotate(4deg) scale(.94);transition:opacity .6s,transform .8s,background .5s;box-shadow:10px 12px 0 rgba(0,0,0,.22)}.motion-artifact.is-active{opacity:1;transform:translateY(0) rotate(-3deg) scale(1)}.motion-artifact span,.motion-artifact i{display:block;color:#a89acb;font:9px 'DM Mono';letter-spacing:.1em}.motion-artifact b{display:block;margin-top:28px;color:#fff;font-size:22px;line-height:1}.motion-artifact i{margin-top:19px;color:#8f879c;font-style:normal;font-size:8px}.artifact-prompt{top:280px;transform:translateY(22px) rotate(-6deg) scale(.94);border-color:var(--blue)}.artifact-output{top:200px;transform:translateY(22px) rotate(5deg) scale(.94);border-color:var(--mint)}.motion-caption{bottom:70px;color:#968da7}.motion-caption strong{color:var(--fg);font:21px 'Noto Sans SC';letter-spacing:-.04em}.motion-progress{position:absolute;z-index:2;left:30px;right:30px;bottom:45px;height:2px;background:rgba(255,255,255,.2)}.motion-progress span{display:block;width:calc(var(--motion-progress)*100%);height:100%;background:var(--red);box-shadow:0 0 12px var(--red)}.motion-controls{bottom:15px;color:#827a91}.motion-controls button{border:1px solid #6a5c78;background:transparent;color:var(--fg);padding:6px 10px;font:9px 'DM Mono';cursor:pointer}.motion-controls button:hover{border-color:var(--yellow);color:var(--yellow)}.motion-controls span{margin-left:auto}.motion-reel.is-paused .motion-scan{opacity:0}.motion-reel.is-paused .motion-orb{transition:none}
@media(max-width:760px){.motion-case{padding:110px 0 120px}.motion-reel{min-height:650px}.motion-topline,.motion-caption,.motion-controls{left:18px;right:18px}.motion-topline{font-size:8px}.motion-stage{padding:120px 24px 0}.motion-title{font-size:54px}.motion-copy{font-size:14px}.motion-artifact{left:24px;top:385px;width:190px;height:135px}.artifact-prompt{top:430px;left:90px}.artifact-output{top:470px;left:35px}.motion-caption{display:block;bottom:76px}.motion-caption strong{display:block;margin-top:12px;font-size:16px}.motion-controls span{display:none}}
@media(prefers-reduced-motion:reduce){.motion-reel{--motion-progress:0}.motion-reel .motion-artifact{transition:none}.motion-reel .motion-scan{display:none}}
.volvo-dialog{width:min(1280px,calc(100% - 28px));max-width:1280px;border-color:#8fe5d3;box-shadow:14px 14px 0 #ef554e}.volvo-dialog #dialogContent{height:min(82vh,780px);min-height:610px}.volvo-case{height:100%;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.55fr);background:#030506;color:#edf7f2}.volvo-stage{position:relative;min-height:610px;overflow:hidden;background:radial-gradient(circle at 50% 48%,rgba(37,157,143,.16),transparent 24%),radial-gradient(circle at 56% 50%,rgba(74,104,255,.1),transparent 42%),#020405;perspective:1000px;isolation:isolate}.volvo-stage:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),transparent 35%,transparent 72%,rgba(0,0,0,.35)),radial-gradient(circle at 50% 50%,transparent 0 26%,rgba(0,0,0,.38) 70%);z-index:0;pointer-events:none}.volvo-stage:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(135,229,213,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(135,229,213,.055) 1px,transparent 1px);background-size:62px 62px;mask-image:radial-gradient(circle at center,black,transparent 70%);z-index:0;pointer-events:none}.volvo-space-label,.volvo-stage-footer{position:absolute;left:25px;right:25px;z-index:4;display:flex;justify-content:space-between;font:9px 'DM Mono';letter-spacing:.13em;color:#9ca7a5}.volvo-space-label{top:23px}.volvo-space-label span{color:#4cb9aa}.volvo-stage-footer{bottom:20px;color:#697a77}.volvo-cards{position:absolute;inset:52px 10px 45px;transform-style:preserve-3d;transform:rotateX(var(--tilt-y,0deg)) rotateY(var(--tilt-x,0deg));transition:transform .35s ease}.volvo-frame{position:absolute;left:50%;top:50%;width:138px;height:184px;padding:0;border:1px solid rgba(223,255,247,.68);background:#0a1111;box-shadow:0 18px 38px rgba(0,0,0,.55),0 0 18px rgba(85,217,194,.08);cursor:pointer;overflow:hidden;transform:translate(calc(-50% + var(--x) + var(--pan-x,0px)),calc(-50% + var(--y) + var(--pan-y,0px))) rotate(var(--r)) scale(var(--s));transform-style:preserve-3d;transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .4s,opacity .4s;opacity:.72}.volvo-frame:nth-child(3n){width:170px;height:130px}.volvo-frame:nth-child(4n){width:115px;height:156px}.volvo-frame:hover,.volvo-frame.is-selected{z-index:10;opacity:1;filter:brightness(1.15) saturate(1.08);transform:translate(calc(-50% + var(--pan-x,0px)),calc(-50% + var(--pan-y,0px))) rotate(0deg) scale(1.5);box-shadow:0 22px 52px rgba(0,0,0,.75),0 0 35px rgba(99,243,219,.32)}.volvo-frame img{display:block;width:100%;height:100%;object-fit:cover}.volvo-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(1,8,8,.72),transparent 43%);pointer-events:none}.volvo-frame span{position:absolute;left:9px;bottom:8px;z-index:2;color:#d7fff4;font:8px 'DM Mono';letter-spacing:.1em}.volvo-crosshair{position:absolute;left:50%;top:50%;z-index:2;color:#a3ffe9;font:24px 'DM Mono';transform:translate(-50%,-50%);opacity:.7;pointer-events:none;text-shadow:0 0 22px #55e2c6}.volvo-info{position:relative;z-index:5;padding:30px 28px 24px;border-left:1px solid rgba(159,217,204,.24);background:linear-gradient(150deg,#0a1213,#080b0d 65%,#101019);display:flex;flex-direction:column}.volvo-info-top{display:flex;justify-content:space-between;color:#7ea29a;font:9px 'DM Mono';letter-spacing:.14em}.volvo-info-copy{margin:auto 0}.volvo-kicker{color:#efc95d;font:10px 'DM Mono';letter-spacing:.13em}.volvo-info-copy h2{font-size:clamp(42px,4vw,70px);line-height:.92;letter-spacing:-.08em;margin:20px 0 18px;color:#f4f3e8}.volvo-info-copy p{max-width:330px;color:#aebbb7;font-size:14px;line-height:1.8}.volvo-sequence{border-top:1px solid rgba(172,234,221,.23);border-bottom:1px solid rgba(172,234,221,.23);padding:18px 0}.volvo-sequence>span{display:block;color:#7ea29a;font:9px 'DM Mono';letter-spacing:.12em;margin-bottom:10px}.volvo-sequence button{display:flex;width:100%;gap:10px;align-items:center;padding:7px 0;border:0;background:none;color:#687d78;text-align:left;cursor:pointer}.volvo-sequence button b{font:9px 'DM Mono';color:#d7fff4}.volvo-sequence button em{font:11px 'DM Mono';font-style:normal}.volvo-sequence button.is-active{color:#f2eee3}.volvo-sequence button.is-active b{color:#ef554e}.volvo-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px}.volvo-tags span{border:1px solid rgba(211,255,245,.32);padding:6px 7px;color:#b9e9dc;font:8px 'DM Mono'}
@media(max-width:760px){.volvo-dialog{width:calc(100% - 20px)}.volvo-dialog #dialogContent{height:calc(100svh - 70px);min-height:690px}.volvo-case{display:block;overflow:auto}.volvo-stage{height:56svh;min-height:420px}.volvo-info{min-height:390px;border-left:0;border-top:1px solid rgba(159,217,204,.24);padding:23px 20px}.volvo-info-copy{margin:25px 0}.volvo-info-copy h2{font-size:48px;margin:12px 0}.volvo-info-copy p{font-size:12px;margin:0}.volvo-space-label,.volvo-stage-footer{left:15px;right:15px;font-size:7px}.volvo-space-label span{display:none}.volvo-frame{width:96px;height:134px}.volvo-frame:nth-child(3n){width:115px;height:92px}.volvo-frame:nth-child(4n){width:86px;height:116px}.volvo-frame:hover,.volvo-frame.is-selected{transform:translate(calc(-50% + var(--pan-x,0px)),calc(-50% + var(--pan-y,0px))) rotate(0deg) scale(1.35)}.volvo-sequence{padding:12px 0}.volvo-sequence button{display:inline-flex;width:auto;margin-right:12px}.volvo-sequence button em{display:none}.volvo-sequence>div{display:flex;justify-content:space-between}}
.volvo-frame:hover{z-index:8;opacity:.92;filter:brightness(1.08) saturate(1.04);transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(calc(var(--s) + .06));box-shadow:0 20px 42px rgba(0,0,0,.65),0 0 22px rgba(99,243,219,.18)}.volvo-frame.is-selected{z-index:10;opacity:1;filter:brightness(1.12) saturate(1.06);transform:translate(-50%,-50%) rotate(0deg) scale(1.34);box-shadow:0 22px 52px rgba(0,0,0,.75),0 0 35px rgba(99,243,219,.28);transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .3s,opacity .3s}
@media(max-width:760px){.volvo-frame:hover{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) rotate(var(--r)) scale(calc(var(--s) + .04))}.volvo-frame.is-selected{transform:translate(-50%,-50%) rotate(0deg) scale(1.22)}}
.volvo-frame:not(.is-selected){transform:translate(calc(-50% + var(--x) + var(--space-x,0px)),calc(-50% + var(--y) + var(--space-y,0px))) rotate(var(--r)) scale(var(--s))}.volvo-frame:not(.is-selected):hover{transform:translate(calc(-50% + var(--x) + var(--space-x,0px)),calc(-50% + var(--y) + var(--space-y,0px))) rotate(var(--r)) scale(calc(var(--s) + .06))}.volvo-frame.is-selected{transform:translate(-50%,-50%) rotate(0deg) scale(1.34)}
@media(max-width:760px){.volvo-frame:not(.is-selected){transform:translate(calc(-50% + var(--x) + var(--space-x,0px)),calc(-50% + var(--y) + var(--space-y,0px))) rotate(var(--r)) scale(var(--s))}.volvo-frame:not(.is-selected):hover{transform:translate(calc(-50% + var(--x) + var(--space-x,0px)),calc(-50% + var(--y) + var(--space-y,0px))) rotate(var(--r)) scale(calc(var(--s) + .04))}.volvo-frame.is-selected{transform:translate(-50%,-50%) rotate(0deg) scale(1.22)}}
.profile-world{border-top:1px solid var(--line);padding:150px 0 180px;position:relative}.profile-world-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}.profile-world-head h2{font-size:clamp(58px,9vw,132px);line-height:.83;letter-spacing:-.09em;font-weight:500;margin:0}.profile-world-head h2 em{font-family:'Playfair Display';color:var(--red);font-weight:600}.profile-world-head p{max-width:370px;color:#bdb8b0;line-height:1.75;font-size:15px;margin:0}.profile-studio{min-height:660px;position:relative;overflow:hidden;border:1px solid #3a3b3b;background:radial-gradient(circle at 48% 48%,rgba(127,94,229,.24),transparent 20%),linear-gradient(135deg,#080a10,#111321 50%,#080a0e);box-shadow:16px 18px 0 rgba(0,0,0,.35);isolation:isolate}.profile-studio:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.18) .7px,transparent .7px);background-size:26px 26px;opacity:.23;mask-image:linear-gradient(90deg,transparent,#000 25%,#000 78%,transparent);pointer-events:none}.profile-studio:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.65),transparent 35%,transparent 70%,rgba(0,0,0,.42)),linear-gradient(0deg,rgba(0,0,0,.55),transparent 48%);pointer-events:none}.profile-studio-top,.profile-studio-bottom{position:absolute;z-index:5;left:25px;right:25px;display:flex;justify-content:space-between;color:#8e8c94;font:9px 'DM Mono';letter-spacing:.13em}.profile-studio-top{top:22px}.profile-studio-bottom{bottom:21px}.profile-studio-top span:last-child{color:var(--mint)}.profile-signal{position:absolute;z-index:3;left:9%;top:20%;width:200px;height:260px;padding:22px;border:1px solid rgba(238,235,223,.66);background:linear-gradient(145deg,rgba(39,48,72,.82),rgba(8,12,23,.68));transform:translate(var(--profile-x,0),var(--profile-y,0)) rotate(-8deg);box-shadow:13px 15px 0 rgba(0,0,0,.3);transition:transform .25s ease}.profile-signal span,.profile-signal b{display:block;font:9px 'DM Mono';color:#a6a1ba;letter-spacing:.13em}.profile-signal b{margin-top:150px;color:#f4d95b}.profile-signal i{position:absolute;top:-18px;left:50%;width:20px;height:36px;border:2px solid #9b98a7;border-radius:50%;transform:translateX(-50%)}.profile-monitor{position:absolute;z-index:4;left:50%;top:50%;width:min(590px,58%);min-height:360px;transform:translate(calc(-50% + var(--profile-x,0)),calc(-50% + var(--profile-y,0))) rotate(-1deg);border:2px solid #b8b8b3;background:#0a0d13;box-shadow:18px 21px 0 rgba(0,0,0,.38),0 0 55px rgba(130,107,239,.18);transition:transform .25s ease}.monitor-top,.monitor-foot{display:flex;justify-content:space-between;padding:15px 18px;color:#9b96ae;font:9px 'DM Mono';letter-spacing:.1em;border-bottom:1px solid rgba(216,211,246,.22)}.monitor-foot{border-top:1px solid rgba(216,211,246,.22);border-bottom:0;color:#77758a}.monitor-foot b{color:var(--mint);font-weight:400}.monitor-screen{min-height:280px;padding:33px 34px;position:relative;background:radial-gradient(circle at 76% 22%,rgba(234,73,112,.15),transparent 28%),linear-gradient(145deg,#111426,#090b12)}.profile-panel{display:none}.profile-panel.is-active{display:block;animation:profile-panel-in .45s ease both}.profile-panel small{color:var(--yellow);font:10px 'DM Mono';letter-spacing:.14em}.profile-panel strong{display:block;margin:29px 0 20px;color:#f3f0e7;font-size:clamp(27px,3.1vw,48px);line-height:.96;letter-spacing:-.07em;font-weight:500}.profile-panel strong em{font-family:'Playfair Display';color:var(--red);font-weight:600}.profile-panel p{color:#c7c1ca;font-size:14px;line-height:1.8;margin:0}.panel-note{display:block;margin-top:30px;color:#8f87a5;font:9px 'DM Mono';letter-spacing:.1em}.profile-orbit{position:absolute;z-index:1;border:1px solid rgba(188,164,255,.36);border-radius:50%;pointer-events:none}.orbit-a{width:58%;height:28%;right:-11%;top:21%;transform:rotate(-19deg)}.orbit-b{width:44%;height:31%;left:27%;bottom:8%;transform:rotate(14deg);border-color:rgba(239,85,78,.28)}.profile-keywords{position:absolute;z-index:3;right:7%;top:22%;display:grid;gap:18px;color:#c1a9ff;font:12px 'DM Mono';letter-spacing:.16em;transform:rotate(7deg)}.profile-keywords span:nth-child(2){color:var(--red);margin-left:28px}.profile-keywords span:nth-child(3){color:var(--mint);margin-left:10px}.profile-keywords span:nth-child(4){color:var(--yellow);margin-left:34px}.profile-nav{position:absolute;z-index:6;left:9%;right:9%;bottom:67px;display:flex;justify-content:center;gap:8px}.profile-nav button{min-width:118px;padding:13px 14px;text-align:left;color:#848293;border:1px solid rgba(192,182,226,.25);background:rgba(8,10,18,.74);cursor:pointer;transition:transform .25s,border-color .25s,color .25s}.profile-nav button:hover,.profile-nav button.is-active{color:#f2eee5;border-color:var(--red);transform:translateY(-5px)}.profile-nav b,.profile-nav span,.profile-nav i{display:block}.profile-nav b{color:var(--red);font:9px 'DM Mono'}.profile-nav span{margin-top:12px;font-size:12px}.profile-nav i{margin-top:5px;font-style:normal;color:#747181;font:8px 'Noto Sans SC'}.profile-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-bottom:1px solid var(--line)}.profile-facts>div{padding:20px 18px;border-left:1px solid var(--line)}.profile-facts small{display:block;color:var(--muted);font:9px 'DM Mono';letter-spacing:.12em}.profile-facts strong{display:block;margin-top:18px;color:#e9e4da;font:18px 'DM Mono';line-height:1.1}@keyframes profile-panel-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:760px){.profile-world{padding:110px 0 120px}.profile-world-head{display:block;margin-bottom:35px}.profile-world-head h2{font-size:76px}.profile-world-head p{font-size:14px;margin-top:28px}.profile-studio{min-height:760px}.profile-studio-top,.profile-studio-bottom{left:15px;right:15px;font-size:7px}.profile-studio-top span:nth-child(2){display:none}.profile-studio-top{top:17px}.profile-studio-bottom{bottom:16px;display:block;line-height:2}.profile-studio-bottom span:last-child{display:block}.profile-signal{left:8%;top:17%;width:132px;height:185px;padding:14px}.profile-signal b{margin-top:100px;font-size:8px}.profile-monitor{left:50%;top:42%;width:calc(100% - 34px);min-height:360px}.monitor-top,.monitor-foot{padding:12px 13px;font-size:7px}.monitor-screen{min-height:275px;padding:28px 22px}.profile-panel strong{font-size:35px;margin:25px 0 17px}.profile-panel p{font-size:12px}.profile-keywords{right:8%;top:18%;font-size:9px;gap:10px}.profile-nav{left:17px;right:17px;bottom:84px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.profile-nav button{min-width:0;padding:10px}.profile-nav span{font-size:10px;margin-top:8px}.profile-facts{grid-template-columns:1fr 1fr}.profile-facts>div{padding:16px 12px}.profile-facts strong{font-size:13px;margin-top:12px}}
.motion-visuals{position:absolute;inset:0;z-index:0;pointer-events:none}.motion-visual{position:absolute;opacity:0;transition:opacity .55s,transform .8s;transform:translate3d(0,24px,0) scale(.9);filter:blur(3px)}.motion-visual.is-active{opacity:1;transform:translate3d(0,0,0) scale(1);filter:none}.visual-prompt{right:9%;top:22%;width:270px;min-height:175px;padding:20px;border:1px solid #8e83a8;background:rgba(15,16,29,.86);box-shadow:12px 12px 0 rgba(0,0,0,.28);transform:rotate(4deg)}.visual-prompt small,.visual-prompt span,.visual-prompt i{display:block;color:#a99bc9;font:9px 'DM Mono';letter-spacing:.1em}.visual-prompt b{display:block;margin:28px 0 18px;color:#f3eee5;font-size:23px;line-height:1.05}.visual-prompt i{color:var(--yellow);font-style:normal}.visual-tunnel{right:8%;top:18%;width:280px;height:280px;border-radius:50%;transform:scale(.7);}.visual-tunnel span{position:absolute;inset:8%;border:1px solid rgba(199,173,255,.7);border-radius:50%;transform:scale(calc(1 - var(--motion-progress)*.7));box-shadow:0 0 30px rgba(159,112,255,.2)}.visual-tunnel span:nth-child(2){inset:24%;border-color:var(--blue)}.visual-tunnel span:nth-child(3){inset:41%;border-color:var(--red)}.visual-tunnel b{position:absolute;inset:0;display:grid;place-items:center;color:#eee;font:12px 'DM Mono';letter-spacing:.14em}.visual-stack{right:10%;top:22%;width:230px;height:230px;transform:rotate(-8deg)}.visual-stack i{position:absolute;left:20px;width:190px;height:26px;border:1px solid #c5b8e4;background:linear-gradient(90deg,rgba(118,222,208,.45),rgba(203,146,255,.3));transform:translateY(calc(var(--stack-index,1)*32px));box-shadow:0 0 16px rgba(119,231,213,.16)}.visual-stack i:nth-child(1){--stack-index:0}.visual-stack i:nth-child(2){--stack-index:1}.visual-stack i:nth-child(3){--stack-index:2}.visual-stack i:nth-child(4){--stack-index:3}.visual-stack b{position:absolute;right:-10px;bottom:4px;color:#eee;font:11px 'DM Mono';letter-spacing:.1em}.visual-network{right:6%;top:25%;width:330px;height:230px}.visual-network:before,.visual-network:after{content:"";position:absolute;left:50%;top:50%;height:1px;width:270px;background:linear-gradient(90deg,transparent,#c2a8ff,transparent);transform-origin:left center}.visual-network:before{transform:rotate(25deg)}.visual-network:after{transform:rotate(-25deg)}.visual-network .node{position:absolute;padding:7px 8px;border:1px solid #9e83d0;background:rgba(12,12,22,.8);color:#eee;font:8px 'DM Mono';z-index:1}.visual-network .n1{left:5%;top:42%}.visual-network .n2{left:28%;top:16%}.visual-network .n3{right:3%;top:18%}.visual-network .n4{left:28%;bottom:12%}.visual-network .n5{right:4%;bottom:10%}.visual-network b{position:absolute;left:42%;top:47%;color:var(--yellow);font:10px 'DM Mono';letter-spacing:.1em}.visual-cube{right:13%;top:28%;width:200px;height:210px;text-align:center}.visual-cube span{display:block;width:92px;height:92px;margin:20px auto 36px;border:1px solid #d7c8ff;background:linear-gradient(135deg,rgba(126,220,206,.55),rgba(145,105,255,.5));transform:rotate(30deg) skewY(-10deg);box-shadow:inset 12px 0 30px rgba(255,255,255,.14),0 0 38px rgba(154,117,255,.45)}.visual-cube b{display:block;color:#fff;font:15px 'DM Mono';letter-spacing:.14em}.visual-cube i{display:block;color:var(--mint);font:10px 'DM Mono';font-style:normal;margin-top:10px}@media(max-width:760px){.visual-prompt{right:18px;top:20%;width:205px;min-height:145px}.visual-prompt b{font-size:18px;margin:20px 0 14px}.visual-tunnel{right:20px;top:21%;width:190px;height:190px}.visual-stack{right:16px;top:27%;transform:scale(.8) rotate(-8deg)}.visual-network{right:0;top:30%;transform:scale(.78);transform-origin:right top}.visual-cube{right:4px;top:28%;transform:scale(.8);transform-origin:right top}}
.motion-cinema{height:min(72vw,720px);min-height:520px;background:#030507;overflow:hidden;border:1px solid rgba(226,246,240,.28);position:relative}.motion-cinema .motion-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;background:#030507}.cinema-hud,.cinema-bottom{position:absolute;z-index:3;left:30px;right:30px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.cinema-hud{top:28px}.cinema-kicker,.cinema-clock,.cinema-scene,.cinema-caption,.cinema-bottom button{font:10px 'DM Mono';letter-spacing:.12em;color:#a7a1b4}.cinema-hud strong{display:block;margin-top:13px;color:#effff8;font:clamp(22px,3vw,38px) 'DM Mono';letter-spacing:.03em}.cinema-hud small{display:block;margin-top:8px;color:#9fe4d7;font:12px 'Noto Sans SC'}.cinema-clock{padding-top:5px}.cinema-bottom{left:30px;right:30px;bottom:22px;align-items:center}.cinema-caption{margin-left:auto;margin-right:20px;color:#d6d0de}.cinema-bottom button{pointer-events:auto;border:1px solid rgba(216,255,245,.55);background:rgba(2,5,8,.58);padding:7px 10px;color:#effff8;cursor:pointer;margin-left:7px}.cinema-bottom button:hover{border-color:#b6e9ce;color:#b6e9ce}.cinema-progress{position:absolute;z-index:3;left:30px;right:30px;bottom:13px;height:2px;background:rgba(240,238,229,.2)}.cinema-progress i{display:block;width:0;height:100%;background:#ef554e;box-shadow:0 0 14px #ef554e}.motion-cinema.is-paused .motion-canvas{filter:saturate(.82)}@media(max-width:760px){.motion-cinema{height:calc(100svh - 120px);min-height:560px}.cinema-hud,.cinema-bottom{left:17px;right:17px}.cinema-hud{top:20px;display:block}.cinema-clock{display:block;margin-top:10px}.cinema-bottom{bottom:25px;flex-wrap:wrap;gap:8px}.cinema-caption{order:4;width:100%;margin:2px 0 0}.cinema-progress{left:17px;right:17px;bottom:16px}}@media(prefers-reduced-motion:reduce){.motion-cinema .motion-canvas{filter:none}}
.cinema-generated-layer{position:absolute;z-index:1;inset:0;overflow:hidden;background:#030507;pointer-events:none}.cinema-generated-layer:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.42),transparent 42%,rgba(0,0,0,.3)),linear-gradient(0deg,rgba(0,0,0,.62),transparent 35%,rgba(0,0,0,.38));mix-blend-mode:multiply}.cinema-generated-layer img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s;filter:saturate(.88) contrast(1.08)}.cinema-generated-layer img.is-active{opacity:.9}.motion-cinema .motion-canvas{z-index:0}.motion-cinema .cinema-hud,.motion-cinema .cinema-bottom,.motion-cinema .cinema-progress{z-index:4}
.workflow-reel{height:min(72vw,720px);min-height:560px;position:relative;overflow:hidden;background:#030507 url('assets/motion-prompt-tunnel.png') center/cover no-repeat;border:1px solid rgba(216,255,245,.3);color:#f1eee4}.workflow-reel:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.12) 60%,rgba(0,0,0,.5)),linear-gradient(0deg,rgba(0,0,0,.72),transparent 45%);z-index:0}.workflow-backdrop,.workflow-overlay{position:absolute;inset:0;pointer-events:none}.workflow-overlay{background:radial-gradient(circle at 66% 48%,rgba(123,235,216,.13),transparent 20%);z-index:1}.workflow-top,.workflow-bottom{position:absolute;z-index:3;left:30px;right:30px;display:flex;justify-content:space-between;color:#b2acbb;font:10px 'DM Mono';letter-spacing:.12em}.workflow-top{top:27px}.workflow-bottom{bottom:22px;color:#8f899d}.workflow-card{position:absolute;z-index:2;left:7%;top:17%;width:min(780px,86%);min-height:390px;padding:28px 32px 22px;border:1px solid rgba(237,238,230,.55);background:rgba(5,10,14,.74);box-shadow:18px 20px 0 rgba(0,0,0,.28);backdrop-filter:blur(8px)}.workflow-card-head,.workflow-card-foot{display:flex;align-items:center;justify-content:space-between}.workflow-card-head{padding-bottom:17px;border-bottom:1px solid rgba(202,255,244,.24);color:#9ce6d9;font:10px 'DM Mono';letter-spacing:.1em}.workflow-status{color:#b5a1cf}.workflow-card-body{display:grid;grid-template-columns:1.04fr .96fr;gap:32px;min-height:280px;padding:29px 0}.workflow-title{font-size:clamp(35px,5vw,68px);font-weight:500;line-height:.95;letter-spacing:-.07em;margin:0 0 12px}.workflow-cn{font-size:21px;font-weight:400;color:#9fe3d7;margin:0 0 25px}.workflow-body{max-width:420px;color:#c7c3ca;line-height:1.75;font-size:14px;margin:0}.workflow-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:28px}.workflow-meta span{padding:7px 9px;border:1px solid rgba(215,255,245,.35);color:#d7fff5;font:9px 'DM Mono'}.workflow-object{position:relative;min-height:235px;display:grid;place-items:center}.workflow-brief{width:210px;min-height:165px;padding:20px;border:1px solid #a4e9de;background:linear-gradient(145deg,rgba(75,157,151,.5),rgba(8,14,20,.84));transform:rotate(4deg);box-shadow:11px 13px 0 rgba(0,0,0,.24)}.workflow-brief span,.workflow-brief i{display:block;color:#a7e8dc;font:9px 'DM Mono';letter-spacing:.1em}.workflow-brief strong{display:block;color:#f3eee5;font-size:24px;line-height:1;margin:32px 0 18px}.workflow-brief i{font-style:normal;color:#8b9da2;font-size:8px}.workflow-brief b{display:block;color:#f4d95b;font:10px 'DM Mono';margin-top:14px}.workflow-matrix{display:grid;grid-template-columns:repeat(2,90px);gap:6px;transform:rotate(-4deg)}.workflow-matrix img{width:90px;height:68px;object-fit:cover;border:1px solid rgba(225,255,247,.7);filter:saturate(.75) brightness(.72)}.workflow-matrix img:nth-child(2){transform:translateY(-12px)}.workflow-matrix img:nth-child(3){transform:translateX(12px)}.workflow-computer{position:relative;width:250px;height:180px;transform:perspective(600px) rotateY(-15deg) rotateX(7deg)}.workflow-computer .screen{position:absolute;inset:0 0 23px;border:2px solid #d8e8df;background:linear-gradient(140deg,rgba(51,106,102,.72),rgba(10,13,19,.86));padding:25px 18px}.workflow-computer .screen span{display:block;height:7px;margin-bottom:17px;background:#a8f0e0;width:75%;opacity:.8}.workflow-computer .screen span:nth-child(2){width:50%;background:#bda8ef}.workflow-computer .screen span:nth-child(3){width:65%;background:#f0aa9a}.workflow-computer .screen b{position:absolute;bottom:18px;color:#d6fff3;font:9px 'DM Mono'}.workflow-computer i{position:absolute;left:25%;right:25%;bottom:0;height:24px;background:#b3b8be;transform:skewX(-25deg)}.workflow-network-art{position:relative;width:290px;height:220px}.workflow-network-art .core{position:absolute;left:50%;top:50%;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;transform:translate(-50%,-50%);background:#b4f3df;color:#0b1213;font:11px 'DM Mono';font-style:normal;box-shadow:0 0 35px #79d5c0}.workflow-network-art .node{position:absolute;padding:8px 9px;border:1px solid #a99ad7;background:rgba(13,14,22,.88);color:#effff8;font:8px 'DM Mono';font-style:normal}.workflow-network-art .n1{left:0;top:42%}.workflow-network-art .n2{left:29%;top:0}.workflow-network-art .n3{right:0;top:25%}.workflow-network-art .n4{left:23%;bottom:0}.workflow-network-art .n5{right:4%;bottom:7%}.workflow-network-art .wire{position:absolute;left:50%;top:50%;width:125px;height:1px;transform-origin:left center;background:linear-gradient(90deg,#9ce6d9,#9d8bdb,transparent)}.workflow-network-art .w1{transform:rotate(205deg)}.workflow-network-art .w2{transform:rotate(250deg)}.workflow-network-art .w3{transform:rotate(335deg)}.workflow-network-art .w4{transform:rotate(120deg)}.workflow-network-art .w5{transform:rotate(55deg)}.workflow-output{text-align:center}.output-cube{width:100px;height:100px;margin:0 auto 28px;border:1px solid #e9eee8;background:linear-gradient(135deg,rgba(171,238,221,.64),rgba(142,121,220,.4));transform:rotate(30deg) skewY(-10deg);box-shadow:inset 10px 0 28px rgba(255,255,255,.18),0 0 45px rgba(137,231,209,.4)}.workflow-output strong{display:block;color:#ecfff8;font:19px 'DM Mono';letter-spacing:.12em}.workflow-output small{display:block;margin-top:10px;color:#a2dcd0;font:8px 'DM Mono'}.workflow-card-foot{padding-top:17px;border-top:1px solid rgba(202,255,244,.24)}.workflow-progress{display:block;height:2px;width:20%;background:#ef554e;margin-right:auto;box-shadow:0 0 12px #ef554e}.workflow-card-foot button{border:1px solid rgba(216,255,245,.5);background:transparent;color:#effff8;padding:8px 11px;font:9px 'DM Mono';cursor:pointer;margin-left:8px}.workflow-card-foot button:hover{color:#b6e9ce;border-color:#b6e9ce}.workflow-card-foot button:disabled{opacity:.35;cursor:not-allowed}@media(max-width:760px){.workflow-reel{height:calc(100svh - 120px);min-height:640px}.workflow-top,.workflow-bottom{left:17px;right:17px}.workflow-top{top:19px}.workflow-bottom{bottom:16px}.workflow-card{left:17px;top:13%;width:calc(100% - 34px);min-height:520px;padding:22px 19px 16px}.workflow-card-body{display:block;min-height:420px;padding:22px 0}.workflow-title{font-size:42px}.workflow-cn{font-size:17px}.workflow-body{font-size:13px}.workflow-meta{margin-top:18px}.workflow-object{min-height:200px;margin-top:18px}.workflow-card-foot{padding-top:12px}.workflow-card-foot button{font-size:8px;padding:7px}.workflow-bottom span:first-child{font-size:8px}.workflow-matrix{transform:scale(.88) rotate(-4deg)}}
.motion-case .workflow-reel{height:min(72vw,720px);min-height:560px;background:#030507 url('assets/motion-prompt-tunnel.png') center/cover no-repeat;border:1px solid rgba(216,255,245,.3);position:relative}
/* Cathy profile page — second-page replacement */
.profile-page{padding:100px 0 170px;position:relative}
.profile-page-stage{min-height:720px;position:relative;overflow:hidden;border:1px solid #34383a;background:#080a0b;box-shadow:18px 20px 0 rgba(0,0,0,.34);isolation:isolate}
.profile-page-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.88) contrast(1.05);transform:translate(var(--profile-shift-x,0),calc(var(--profile-drift-y,0) + var(--profile-shift-y,0))) scale(var(--profile-scale,1.03));transition:transform .45s ease}
.profile-page-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,6,7,.22),transparent 54%,rgba(4,6,7,.26)),linear-gradient(0deg,rgba(0,0,0,.55),transparent 30%);pointer-events:none}
.profile-page-topline,.profile-page-footer{position:absolute;z-index:4;left:28px;right:28px;display:flex;justify-content:space-between;color:#ddd9cb;font:10px 'DM Mono';letter-spacing:.14em}
.profile-page-topline{top:25px}.profile-page-footer{bottom:22px;color:#a9aaa3}
.profile-page-kicker{display:block;color:#c8ff19;font:12px 'DM Mono';letter-spacing:.12em;margin-bottom:22px}
.profile-page-copy{position:absolute;z-index:3;left:6%;top:24%;max-width:430px;text-shadow:3px 4px 0 rgba(0,0,0,.35)}
.profile-page-copy h2{font-size:clamp(54px,7vw,100px);line-height:.88;letter-spacing:-.08em;font-weight:700;margin:0;color:#f2eee4}.profile-page-copy h2 em{font-family:'Playfair Display',serif;color:#c8ff19;font-weight:600}.profile-page-copy p{color:#e3e0d7;line-height:1.8;font-size:15px;margin:28px 0 0;max-width:360px}
.profile-page-hotspots{position:absolute;z-index:5;right:7%;top:27%;display:grid;gap:10px;width:185px}.profile-page-hotspots button{padding:13px 15px;text-align:left;color:#d8d5cc;border:1px solid rgba(214,255,86,.42);background:rgba(5,8,8,.64);cursor:pointer;transition:transform .25s ease,border-color .25s ease,background .25s ease}.profile-page-hotspots button:hover,.profile-page-hotspots button.is-active{transform:translateX(-8px);border-color:#c8ff19;background:rgba(115,143,0,.42)}.profile-page-hotspots b,.profile-page-hotspots span,.profile-page-hotspots i{display:block}.profile-page-hotspots b{color:#c8ff19;font:10px 'DM Mono'}.profile-page-hotspots span{margin-top:10px;font-size:13px;letter-spacing:.06em}.profile-page-hotspots i{margin-top:5px;color:#bfc1ad;font:10px 'Noto Sans SC';font-style:normal}
.profile-page-card{position:absolute;z-index:6;right:31%;bottom:13%;width:250px;padding:18px 20px;border:1px solid rgba(239,238,224,.7);background:rgba(5,8,8,.83);box-shadow:9px 10px 0 rgba(0,0,0,.35);display:none;animation:profile-card-in .35s ease both}.profile-page-card.is-active{display:block}.profile-page-card span{color:#c8ff19;font:9px 'DM Mono';letter-spacing:.12em}.profile-page-card strong{display:block;color:#f3f0e7;font:700 24px/1 'DM Mono';margin:25px 0 16px;letter-spacing:-.08em}.profile-page-card p{color:#c9cbc2;font-size:12px;line-height:1.7;margin:0}.profile-page-card[data-profile-panel="path"]{right:24%;transform:rotate(-2deg)}.profile-page-card[data-profile-panel="toolkit"]{right:18%;transform:rotate(2deg)}
.profile-page-interface{position:absolute;z-index:8;inset:7% 5%;padding:20px 22px;background:rgba(3,5,6,.9);border:1px solid rgba(231,240,226,.72);box-shadow:18px 20px 0 rgba(0,0,0,.45);opacity:0;visibility:hidden;transform:scale(.76) translateY(55px);transform-origin:50% 62%;transition:opacity .45s ease,transform .65s cubic-bezier(.2,.8,.2,1),visibility .45s;pointer-events:none}
.profile-page.is-zoomed .profile-page-stage>img{transform:scale(1.28) translate(var(--profile-drift-x,0),var(--profile-drift-y,0));filter:saturate(.72) contrast(1.1) brightness(.62);transition:transform .75s cubic-bezier(.2,.8,.2,1),filter .6s ease}.profile-page.is-zoomed .profile-page-shade{background:rgba(0,0,0,.48)}.profile-page.is-zoomed .profile-page-copy,.profile-page.is-zoomed .profile-page-hotspots,.profile-page.is-zoomed .profile-page-card{opacity:0;pointer-events:none;transition:opacity .25s ease}.profile-page.is-zoomed .profile-page-interface{opacity:1;visibility:visible;transform:scale(1) translateY(0);pointer-events:auto}
.interface-bar{display:flex;justify-content:space-between;align-items:center;padding-bottom:16px;border-bottom:1px solid rgba(218,240,224,.3);color:#c8ff19;font:10px 'DM Mono';letter-spacing:.11em}.interface-bar button{border:1px solid rgba(218,240,224,.5);background:transparent;color:#f1eee4;padding:8px 10px;font:9px 'DM Mono';cursor:pointer}.interface-bar button:hover{border-color:#c8ff19;color:#c8ff19}.interface-body{display:grid;grid-template-columns:150px minmax(280px,1fr) 1fr;gap:18px;height:calc(100% - 48px);align-items:center}.interface-index{display:grid;gap:14px;align-content:center;color:#a3a69d;font:10px 'DM Mono';letter-spacing:.08em}.interface-index span{color:#757a72;font-size:9px;margin-bottom:10px}.interface-index b{font-weight:400;cursor:pointer;transition:color .2s,transform .2s}.interface-index b:hover{color:#c8ff19;transform:translateX(5px)}.interface-index i{color:#626860;font-style:normal;font-size:8px;margin-top:28px}.interface-monitor{background:#111416;border:2px solid #a8aba0;box-shadow:10px 13px 0 rgba(0,0,0,.35);transform:rotate(-1deg)}.interface-monitor-top,.interface-monitor-foot{display:flex;justify-content:space-between;padding:12px 14px;color:#aeb5a8;font:8px 'DM Mono';letter-spacing:.08em}.interface-monitor-screen{min-height:245px;padding:28px 24px;background:radial-gradient(circle at 60% 55%,rgba(200,255,25,.26),transparent 19%),linear-gradient(145deg,#111718,#050708);position:relative;overflow:hidden}.interface-big-label{display:block;color:#f2efe4;font:700 clamp(26px,4vw,50px)/.88 'DM Mono';letter-spacing:-.1em}.interface-big-label::first-line{color:#c8ff19}.interface-line{position:absolute;height:1px;background:#c8ff19;transform-origin:left center;opacity:.7}.interface-line.line-one{width:68%;left:24%;top:52%;transform:rotate(-16deg)}.interface-line.line-two{width:43%;left:40%;top:67%;transform:rotate(24deg);background:#f36b57}.interface-chip{position:absolute;bottom:22px;left:24px;color:#dff4d7;font:9px 'DM Mono';border:1px solid rgba(200,255,25,.55);padding:7px 9px}.interface-monitor-foot{border-top:1px solid rgba(218,240,224,.25)}.interface-monitor-foot span:last-child{color:#c8ff19}.interface-output>span{display:block;color:#c8ff19;font:10px 'DM Mono';letter-spacing:.1em;margin-bottom:15px}.interface-output>div{display:grid;gap:11px}.interface-output figure{margin:0;border:1px solid rgba(218,240,224,.45);background:rgba(10,13,13,.76);padding:8px;transform:rotate(1deg)}.interface-output figure:nth-child(2){transform:rotate(-2deg)}.interface-output figure:nth-child(3){transform:rotate(1deg)}.interface-output img,.output-block{display:block;width:100%;height:72px;object-fit:cover;filter:saturate(.75) contrast(1.1)}.output-block{padding:12px;color:#0b100b;font:700 15px/1 'DM Mono';background:#c8ff19}.output-blue{background:#4c83dd;color:#f1eee4}.interface-output figcaption{display:block;margin-top:8px;color:#b9c0b5;font:8px 'DM Mono'}
@media(max-width:760px){.profile-page-interface{inset:5% 4%;padding:15px 13px}.interface-body{grid-template-columns:1fr;height:calc(100% - 40px);gap:12px;align-content:center}.interface-index{display:flex;gap:9px;flex-wrap:wrap}.interface-index span,.interface-index i{display:none}.interface-index b{font-size:8px;border:1px solid rgba(200,255,25,.3);padding:6px}.interface-monitor-screen{min-height:180px;padding:22px 18px}.interface-big-label{font-size:36px}.interface-output>div{grid-template-columns:repeat(3,1fr);gap:5px}.interface-output img,.output-block{height:48px}.output-block{font-size:9px;padding:7px}.interface-output figcaption{font-size:6px}.interface-bar{font-size:8px}.interface-bar button{font-size:7px;padding:6px}.profile-page.is-zoomed .profile-page-stage>img{transform:scale(1.42) translate(var(--profile-drift-x,0),var(--profile-drift-y,0))}}
@keyframes profile-card-in{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:760px){.profile-page{padding:80px 0 120px}.profile-page-stage{min-height:760px}.profile-page-topline,.profile-page-footer{left:15px;right:15px;font-size:7px;letter-spacing:.08em}.profile-page-topline{top:17px}.profile-page-footer{bottom:15px;display:block;line-height:2}.profile-page-footer span{display:block}.profile-page-copy{left:8%;top:14%;max-width:80%}.profile-page-copy h2{font-size:60px}.profile-page-copy p{font-size:13px;margin-top:20px}.profile-page-hotspots{left:8%;right:8%;top:auto;bottom:19%;width:auto;display:flex;gap:5px}.profile-page-hotspots button{flex:1;padding:10px 8px}.profile-page-hotspots button:hover,.profile-page-hotspots button.is-active{transform:translateY(-5px)}.profile-page-hotspots span{font-size:9px;margin-top:7px}.profile-page-hotspots i{font-size:8px}.profile-page-card,.profile-page-card[data-profile-panel="path"],.profile-page-card[data-profile-panel="toolkit"]{left:8%;right:auto;bottom:34%;width:84%;transform:none}}
/* Lens control for the profile scene */
.profile-page-card{display:none!important}
.profile-page-zoom{position:absolute;z-index:7;left:50%;bottom:52px;transform:translateX(-50%);display:flex;align-items:center;gap:12px;color:#c8ff19;font:9px 'DM Mono';letter-spacing:.1em;background:rgba(3,5,6,.72);border:1px solid rgba(218,240,224,.42);padding:9px 12px;backdrop-filter:blur(5px)}
.profile-page-zoom input{width:min(280px,28vw);accent-color:#c8ff19;cursor:ew-resize}
.profile-page.is-pulled-back .profile-page-copy,.profile-page.is-pulled-back .profile-page-hotspots{opacity:0;pointer-events:none;transform:translateY(14px);transition:opacity .3s,transform .45s}.profile-page-copy,.profile-page-hotspots{transition:opacity .35s,transform .45s}
.profile-page.is-zoomed .profile-page-stage>img{transform:translate(var(--profile-shift-x,0),var(--profile-shift-y,0)) scale(calc(var(--profile-scale,1.03) * 1.18))}
@media(max-width:760px){.profile-page-zoom{bottom:56px;gap:7px;padding:7px 8px}.profile-page-zoom input{width:40vw}.profile-page.is-zoomed .profile-page-stage>img{transform:translate(var(--profile-shift-x,0),var(--profile-shift-y,0)) scale(calc(var(--profile-scale,1.03) * 1.25))}}
/* Unified black-green palette */
:root{--bg:#050907;--fg:#eff6e8;--muted:#8e9b8e;--line:#27372d;--red:#b9ff17;--pink:#72d6a0;--mint:#b9f2d2;--blue:#6fcfc0;--yellow:#d7ff4a;--orange:#62b878}

/* Project swatches follow the requested rainbow order: red, orange, yellow, green, cyan, blue, purple. */
.rainbow-red{background:#ef5a55}
.rainbow-orange{background:#ef8a45}
.rainbow-yellow{background:#f4df45}
.rainbow-green{background:#65c878}
.rainbow-cyan{background:#5bd6c5}
.rainbow-blue{background:#4f8fe8}
.rainbow-purple{background:#a17be8}

/* Keep the project-specific rainbow swatches above the archive's default cyan mark rule. */
.archive-project .rainbow-red{background:#ef5a55}
.archive-project .rainbow-orange{background:#ef8a45}
.archive-project .rainbow-yellow{background:#f4df45}
.archive-project .rainbow-green{background:#65c878}
.archive-project .rainbow-cyan{background:#5bd6c5}
.archive-project .rainbow-blue{background:#4f8fe8}
.archive-project .rainbow-purple{background:#a17be8}

/* Keep the decorative glyph inside every swatch neutral and readable. */
.archive-project mark:after{color:#fff}

/* Physical card depth: a dark offset edge plus a soft contact shadow. */
.archive-card-ui{isolation:isolate;box-shadow:10px 14px 0 rgba(0,0,0,.52),0 5px 18px rgba(0,0,0,.52),inset 0 0 0 1px rgba(255,255,255,.22)}
.archive-card-ui::after{content:"";position:absolute;z-index:-1;right:-9px;bottom:-11px;width:100%;height:100%;border:1px solid rgba(0,0,0,.58);border-radius:inherit;background:linear-gradient(135deg,rgba(72,76,74,.72),rgba(9,11,12,.96) 70%);box-shadow:7px 9px 12px rgba(0,0,0,.42);transform:skewY(1.2deg);pointer-events:none}
.archive-card-ui:hover,.archive-card-ui:focus-visible{box-shadow:14px 20px 0 rgba(0,0,0,.56),0 8px 22px rgba(0,0,0,.68),inset 0 0 0 1px rgba(255,255,255,.28)}
.archive-skills::after{background:linear-gradient(135deg,#414349,#101114 72%);border-color:#070809}
.archive-selected::after{right:-11px;bottom:-14px;background:linear-gradient(135deg,#9b9d99,#303332 68%,#111313);box-shadow:9px 12px 15px rgba(0,0,0,.46)}
.archive-about::after,.archive-contact::after,.archive-open::after{background:linear-gradient(135deg,#b6b0a3,#333735 70%,#111313)}

/* Keep the paper faces bright; depth is carried by the card shadow, not a full-face overlay. */
.archive-card-ui:not(.archive-open)::after{content:none}
.archive-about,.archive-selected,.archive-contact,.archive-open{background-color:#f5f3ec;color:#151719}
.archive-selected{background:linear-gradient(115deg,#fbfaf4,#fffefa 48%,#f0f0eb)}
.archive-about{background:#f5eee0}
.archive-contact{background:#f7f5ee}
.archive-open{background:#f4f2e9}
.archive-open::after{content:"////";position:absolute;z-index:0;right:-2px;top:0;bottom:0;width:21px;border:0;border-radius:0;background:#f2d30b;box-shadow:none;transform:none;writing-mode:vertical-rl;text-align:center;color:#222;font:10px 'DM Mono';padding:12px 4px;pointer-events:none}
