@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#182b29;--muted:#62716b;--cream:#f6f5ef;--paper:#fffefa;--line:#d9dfd8;--teal:#1f6d60;--orange:#e78555;--blue:#c5d9dc;--sage:#d8e5d4;--max:1220px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-ui);line-height:1.55}a{color:inherit;text-decoration:none}button{font:inherit}img,svg{max-width:100%}.wrap{width:min(calc(100% - 64px),var(--max));margin:auto}.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:10}.brand{font-family:var(--font-ui);font-weight:800;letter-spacing:-.07em;font-size:24px}.brand span{color:var(--teal)}.nav{display:flex;align-items:center;gap:32px;font-size:14px;font-weight:700}.nav a{color:#5b6862;transition:color .2s}.nav a:hover,.nav a.active{color:var(--teal)}.nav .nav-contact{background:var(--ink);color:white;padding:11px 17px;border-radius:100px}.nav .nav-contact:hover{color:white;background:var(--teal)}.menu-button{display:none;border:0;background:transparent;font-size:26px;color:var(--ink)}
.eyebrow{text-transform:uppercase;letter-spacing:.17em;font-size:11px;font-weight:800;color:var(--teal);display:flex;gap:12px;align-items:center}.eyebrow:before{content:'';height:1px;width:25px;background:currentColor}.hero{padding:88px 0 80px;display:grid;grid-template-columns:1.05fr .95fr;gap:65px;align-items:center}.hero h1,.page-hero h1{font-family:var(--font-ui);font-weight:700;letter-spacing:-.065em;line-height:1.06;font-size:clamp(54px,6.5vw,104px);margin:24px 0}.hero h1 em,.page-hero h1 em{font-style:normal;color:var(--teal)}.hero p,.page-hero p{color:var(--muted);font-size:18px;max-width:570px}.hero-actions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}.button{display:inline-flex;gap:16px;align-items:center;justify-content:center;padding:14px 22px;border:1px solid var(--ink);border-radius:100px;font-weight:700;font-size:13px;min-height:47px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button.primary{color:white;background:var(--ink)}.button.secondary{background:transparent}.button.light{background:white;border-color:white}.arrow{font-size:18px;line-height:0}.hero-art{min-height:550px;position:relative;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1.1fr .9fr;gap:12px}.art-panel{overflow:hidden;position:relative;border-radius:8px}.art-panel.one{grid-row:1/3;background:#b1c9c5}.art-panel.two{background:#e2cbb1}.art-panel.three{background:#b5c3af}.art-panel svg{display:block;width:100%;height:100%;object-fit:cover}.art-label{position:absolute;left:16px;bottom:16px;background:rgba(255,254,250,.93);font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:8px 12px;border-radius:30px;font-weight:800}.art-stamp{position:absolute;z-index:2;top:42%;left:36%;width:112px;height:112px;border-radius:50%;background:#f9f2df;border:5px solid var(--cream);display:grid;place-items:center;text-align:center;transform:rotate(-13deg);font-family:var(--font-ui);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1.3;box-shadow:0 10px 28px #18312c1e}
.section{padding:85px 0}.section-top{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:32px}.section h2,.section-top h2{font-family:var(--font-ui);font-weight:700;font-size:clamp(34px,4vw,58px);letter-spacing:-.055em;line-height:1.12;margin:14px 0 0}.section-top p{color:var(--muted);max-width:380px;margin:0}.paths{display:grid;grid-template-columns:1fr 1fr;gap:20px}.path-card{min-height:430px;padding:34px;border-radius:9px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s}.path-card:hover{transform:translateY(-4px)}.path-card.creative{background:#c9d9ce}.path-card.education{background:#e8ded0}.path-card .number{font:800 12px var(--font-ui);letter-spacing:.12em}.path-card h3{font:700 clamp(34px,4vw,55px)/1.05 var(--font-ui);letter-spacing:-.06em;margin:0 0 12px;max-width:350px}.path-card p{max-width:330px;font-size:15px;margin:0}.path-card .go{height:48px;width:48px;border:1px solid #1c3935;border-radius:50%;display:grid;place-items:center;font-size:23px}.path-card .shape{position:absolute;right:-45px;top:26px;width:275px;height:275px;border-radius:45% 55% 50% 50%;border:1px solid #37594d70;transform:rotate(25deg)}.path-card.education .shape{border-radius:8px;transform:rotate(-18deg);box-shadow:20px 20px 0 #d7bd9d,40px 40px 0 #c8a885}
.manifesto{background:var(--ink);color:#fff;padding:90px 0}.manifesto-inner{display:grid;grid-template-columns:.65fr 1.35fr;gap:65px}.manifesto .eyebrow{color:#b6d6c6}.manifesto blockquote{font:500 clamp(28px,3.1vw,47px)/1.35 var(--font-ui);letter-spacing:-.045em;margin:0}.manifesto blockquote span{color:#a5c8b6}.manifesto small{display:block;color:#aec0b8;margin-top:22px;font-size:13px}.footer{padding:46px 0}.footer-inner{display:flex;justify-content:space-between;gap:25px;align-items:end}.footer p{font-size:13px;color:var(--muted);margin:8px 0 0}.footer-links{display:flex;gap:20px;font-size:13px;font-weight:700}
.page-hero{padding:75px 0 55px}.page-hero h1{font-size:clamp(48px,6vw,88px);max-width:950px}.page-hero p{max-width:690px}.subnav{display:flex;gap:9px;flex-wrap:wrap;margin-top:28px}.subnav a{border:1px solid var(--line);padding:9px 14px;border-radius:30px;color:var(--muted);font-size:12px;font-weight:700}.subnav a:hover{border-color:var(--teal);color:var(--teal)}.feature-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:18px}.feature{border-radius:8px;min-height:420px;padding:32px;display:flex;flex-direction:column;justify-content:end;position:relative;overflow:hidden}.feature h2{font:700 44px/1.08 var(--font-ui);letter-spacing:-.055em;margin:0 0 12px}.feature p{max-width:440px;margin:0}.feature .tag{position:absolute;top:26px;left:30px;border:1px solid currentColor;padding:6px 11px;border-radius:20px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.feature-land{background:linear-gradient(150deg,#d4e2d9 0%,#adcbc2 62%,#5f887c 100%)}.feature-land:before,.feature-land:after{content:'';position:absolute;width:150%;height:250px;left:-25%;bottom:-120px;background:#73978a;transform:rotate(-12deg);border-radius:50% 50% 0 0}.feature-land:after{background:#426e62;bottom:-185px;transform:rotate(13deg)}.feature-land>*{z-index:1}.feature-note{background:#e9d8bf}.feature-note:before{content:'';position:absolute;width:260px;height:340px;right:-40px;top:65px;background:#f7eedb;transform:rotate(17deg);box-shadow:-18px 22px 0 #b89772,-35px 40px 0 #d6bd9d}.feature-note>*{z-index:1}.content-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.content-card{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:28px;min-height:235px;display:flex;flex-direction:column;justify-content:space-between}.content-card .icon{font-size:29px;color:var(--teal)}.content-card h3{font:700 23px/1.15 var(--font-ui);letter-spacing:-.04em;margin:0 0 9px}.content-card p{font-size:14px;color:var(--muted);margin:0}.planned{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:#845e45;background:#f4e5d6;padding:7px 10px;border-radius:20px}.wide-note{display:flex;justify-content:space-between;gap:32px;align-items:center;background:#dce8e0;padding:40px;border-radius:8px}.wide-note h2{font:700 32px/1.15 var(--font-ui);letter-spacing:-.05em;margin:0 0 8px}.wide-note p{margin:0;color:#4d665d;max-width:650px}
.library-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.library-intro p{font-size:17px;color:var(--muted);margin:0}.library-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.step{background:var(--paper);border:1px solid var(--line);padding:25px;border-radius:8px;min-height:245px}.step strong{font:800 12px var(--font-ui);color:var(--teal)}.step h3{font:700 22px/1.16 var(--font-ui);letter-spacing:-.04em;margin:56px 0 9px}.step p{font-size:14px;color:var(--muted);margin:0}.resource-shelf{background:#e1eae4;padding:36px;border-radius:8px}.shelf-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}.shelf-head h3{font:700 28px var(--font-ui);letter-spacing:-.04em;margin:0}.shelf-items{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.shelf-item{background:var(--paper);border-radius:6px;padding:24px;min-height:220px;display:flex;flex-direction:column;justify-content:space-between}.shelf-item .file{font:800 11px var(--font-ui);color:var(--teal);letter-spacing:.12em}.shelf-item h4{font:700 23px/1.12 var(--font-ui);letter-spacing:-.045em;margin:0}.shelf-item small{color:var(--muted)}.shelf-empty{font-size:12px;color:#647b70;margin:18px 0 0}.roadmap{display:grid;grid-template-columns:1fr 1fr;gap:18px}.roadmap-card{background:#e8ded0;padding:34px;border-radius:8px;min-height:265px}.roadmap-card:nth-child(2){background:#d7e5dd}.roadmap-card h3{font:700 28px var(--font-ui);letter-spacing:-.045em;margin:65px 0 8px}.roadmap-card p{color:#566a60;font-size:14px;margin:0;max-width:420px}.page-footer-space{padding-bottom:65px}
@media(max-width:800px){.wrap{width:min(calc(100% - 36px),var(--max))}.site-header{height:70px}.menu-button{display:block}.nav{display:none;position:absolute;left:-18px;right:-18px;top:69px;background:var(--cream);padding:24px 18px;flex-direction:column;align-items:stretch;gap:18px;border-bottom:1px solid var(--line)}.nav.open{display:flex}.nav .nav-contact{text-align:center}.hero{grid-template-columns:1fr;padding:62px 0;gap:48px}.hero-art{height:450px;min-height:0}.section{padding:64px 0}.section-top,.manifesto-inner,.library-intro{display:block}.section-top p,.manifesto blockquote,.library-intro p{margin-top:20px}.paths,.feature-grid,.roadmap{grid-template-columns:1fr}.content-grid,.library-steps,.shelf-items{grid-template-columns:1fr}.path-card{min-height:360px}.feature{min-height:360px}.wide-note,.footer-inner{display:block}.wide-note .button{margin-top:25px}.footer-links{margin-top:25px}.page-hero{padding:55px 0 40px}}
@media(max-width:520px){.hero h1{font-size:55px}.hero p,.page-hero p{font-size:16px}.hero-art{height:340px;gap:8px}.art-stamp{width:80px;height:80px;font-size:8px}.art-label{font-size:8px;padding:6px 8px}.manifesto{padding:70px 0}.page-hero h1{font-size:49px}.resource-shelf{padding:20px}}

/* Dark spectrum direction: deep canvas, luminous lines, substantial content. */
:root{--ink:#eaf0fb;--muted:#9ba9bd;--cream:#080b12;--paper:#111722;--line:#253044;--teal:#55d7ee;--orange:#ff9a72;--blue:#c5d9dc;--sage:#d8e5d4}
body{background:var(--cream);color:var(--ink);background-image:radial-gradient(circle at 75% 8%,#1c2340 0,transparent 28%),radial-gradient(circle at 2% 30%,#10364155 0,transparent 25%)}
.brand span,.hero h1 em,.page-hero h1 em{background:linear-gradient(95deg,#52d6ff 5%,#777bff 42%,#dd70d3 72%,#ff9c74);color:transparent;-webkit-background-clip:text;background-clip:text}
.site-header{border-color:#30384b}.nav a{color:#a9b4c5}.nav a:hover,.nav a.active{color:#8cddff}.nav .nav-contact{background:linear-gradient(100deg,#1e9bc5,#7053d7);color:#fff;box-shadow:0 6px 24px #4161e340}.nav .nav-contact:hover{background:linear-gradient(100deg,#45bceb,#8f72ec)}
.eyebrow{color:#7dceef}.hero{grid-template-columns:.85fr 1.15fr;gap:35px;padding:98px 0 90px}.hero h1{font-size:clamp(58px,6vw,93px);margin:23px 0}.hero p{font-size:18px}.button{border-color:#65718a}.button.primary{color:#fff;border-color:transparent;background:linear-gradient(100deg,#1889ad,#6c59c9);box-shadow:0 10px 30px #354bd644}.button.secondary{color:#d8e7fb;border-color:#52617a}.button.secondary:hover{background:#151e2d}
.flow-art{display:block;height:560px;min-height:0;overflow:hidden;background:#090d15;border:1px solid #2b3e5c;border-radius:18px;box-shadow:0 35px 90px #02040a88,0 0 55px #325ac021;position:relative}.flow-art:before{content:'';position:absolute;inset:-1px;pointer-events:none;border-radius:18px;border:1px solid #6ca8ee44}.flow-art svg{width:100%;height:100%;display:block}.flow-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:18px 25px;color:#aebdd4;font-size:11px;letter-spacing:.09em;text-transform:uppercase;background:linear-gradient(0deg,#0b101de8,#0b101d75)}.flow-caption i{display:inline-block;width:7px;height:7px;background:#46e6bd;border-radius:50%;box-shadow:0 0 10px #46e6bd;margin-right:8px}.flow-caption strong{color:#dbe6f6;font-weight:700}.flow-line{stroke-dasharray:1050;stroke-dashoffset:1050;animation:drawFlow 2.5s ease-out forwards}.line-b{animation-delay:.2s}.line-c{animation-delay:.4s}.line-d{animation-delay:.6s}.node-pulse{animation:nodeGlow 3s ease-in-out infinite alternate}@keyframes drawFlow{to{stroke-dashoffset:0}}@keyframes nodeGlow{to{opacity:.45}}
.section-top p,.library-intro p{color:#a4b0c2}.path-card{border:1px solid #364055;color:#e8f0fa;min-height:440px}.path-card.creative{background:radial-gradient(circle at 88% 24%,#256c8d88,transparent 38%),linear-gradient(145deg,#172b3e,#101620 75%)}.path-card.education{background:radial-gradient(circle at 86% 20%,#7a4a9a88,transparent 40%),linear-gradient(145deg,#2b253c,#141520 75%)}.path-card .shape{border-color:#86c3fc44}.path-card.education .shape{box-shadow:20px 20px 0 #67489b55,40px 40px 0 #9a568055}.path-card .go{border-color:#b3caed;color:#e9efff}.path-card:hover{box-shadow:0 18px 45px #223a6870}
.manifesto{background:radial-gradient(circle at 80% 50%,#28336d 0,transparent 36%),#0d1220;border-top:1px solid #25334c;border-bottom:1px solid #25334c}.manifesto .eyebrow{color:#7dcfed}.manifesto blockquote span{color:#a6a2ff}.manifesto small{color:#a8b4cb}
.wide-note{background:linear-gradient(110deg,#152537,#25234a);border:1px solid #3d5475}.wide-note p{color:#aebbd0}.footer{border-top:1px solid var(--line)}.footer p{color:#8796ac}
.subnav a{color:#adbbd0;border-color:#35435c}.subnav a:hover{border-color:#63ceef;color:#9feaff}.feature{border:1px solid #3b4660;color:#ecf3ff}.feature-land{background:radial-gradient(circle at 72% 23%,#467cbf77,transparent 38%),linear-gradient(145deg,#101c31,#172639)}.feature-land:before{background:#1b3d55}.feature-land:after{background:#102c45}.feature-note{background:radial-gradient(circle at 80% 20%,#9d536c66,transparent 42%),linear-gradient(135deg,#30203a,#171a31)}.feature-note:before{background:#e8d8dc;box-shadow:-18px 22px 0 #a777a3,-35px 40px 0 #584575}.content-card,.step,.shelf-item{background:#111a29;border:1px solid #303e56}.content-card p,.step p,.shelf-item small{color:#a3b0c6}.planned{background:#402c48;color:#efacd7}.resource-shelf{background:linear-gradient(135deg,#162236,#201c38);border:1px solid #3d4666}.shelf-empty{color:#9eabc1}.roadmap-card{background:linear-gradient(135deg,#2d233d,#181d32);border:1px solid #493e62}.roadmap-card:nth-child(2){background:linear-gradient(135deg,#173344,#1b1b37)}.roadmap-card p{color:#acb8cc}
@media(max-width:800px){.nav{background:#0e1420;border-color:#303a4c}.hero{grid-template-columns:1fr;gap:48px;padding:70px 0}.flow-art{height:480px}.flow-caption strong{display:none}}
@media(max-width:520px){.hero h1{font-size:58px}.flow-art{height:380px}.flow-art svg{width:125%;max-width:none;position:relative;left:-12%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.flow-line{stroke-dashoffset:0}}
.page-hero{position:relative;min-height:565px;padding-top:92px}.page-hero h1{max-width:650px;position:relative;z-index:1}.page-hero p{max-width:575px;position:relative;z-index:1}.page-hero .subnav{position:relative;z-index:1}.page-visual{position:absolute;right:0;top:65px;width:420px;height:400px;border-radius:15px;background:radial-gradient(circle at 50% 50%,#1c2852,#0d121d 72%);border:1px solid #354568;box-shadow:0 22px 60px #06081680;overflow:hidden}.page-visual:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#8097c544 1px,transparent 1px);background-size:25px 25px}.page-visual svg{width:100%;height:100%;position:relative}.education-visual{background:radial-gradient(circle at 50% 50%,#272057,#101321 72%)}
@media(max-width:1050px){.page-hero{min-height:0;padding-bottom:60px}.page-hero h1{max-width:100%}.page-visual{position:relative;right:auto;top:auto;margin-top:36px;width:min(100%,520px)}}
@media(max-width:520px){.page-visual{height:340px}.page-hero{padding-top:55px}}

/* A quiet field of particles, revealed by a moving point of light. */
body{background:#080b12;background-image:radial-gradient(ellipse at 50% 12%,#17203966,transparent 40%)}
.particle-hero{min-height:calc(100svh - 82px);padding-top:38px;display:flex;flex-direction:column;position:relative}
.hero-overline,.field-footer{display:flex;align-items:center;justify-content:space-between;gap:20px}.field-index,.field-footer{font:10px/1.6 var(--font-ui);letter-spacing:.14em;color:#9aa8bd}.hero-overline .eyebrow{font-size:10px}
.particle-stage{position:relative;flex:1;min-height:300px;height:clamp(300px,43vh,540px);display:grid;place-items:center;margin:16px -20px 0;background-image:radial-gradient(#798bb51f .8px,transparent .8px);background-size:28px 28px}
.particle-stage h1{font:800 clamp(45px,12vw,172px)/1 var(--font-ui);letter-spacing:-.065em;background:linear-gradient(100deg,#54dfff,#737cff,#dc76d5,#ffa281);background-clip:text;color:transparent;margin:0}
.particle-stage canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.particle-stage.ready h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.field-guides{position:absolute;inset:25px 20px;pointer-events:none;color:#566580;font:18px monospace}.field-guides span{position:absolute}.field-guides span:nth-child(2){right:0}.field-guides span:nth-child(3){bottom:0}.field-guides span:nth-child(4){bottom:0;right:0}
.hero-bottom{display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:center;padding:25px 0 35px}.hero-intro h2{font:500 clamp(25px,3vw,39px)/1.2 var(--font-ui);letter-spacing:-.045em;margin:0 0 15px}.hero-intro em{font-style:normal;background:linear-gradient(100deg,#6edbff,#c497ff,#ffb7bd);background-clip:text;color:transparent}.hero-intro p{font-size:15px;color:#a8b5c9;line-height:1.7;margin:0}
.hero-entry{max-width:380px;width:100%;justify-self:end}.field-link{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid #394459;font-size:14px;font-weight:500;color:#b5b2ff}.field-link:first-child{color:#8edcff}.field-link span{font-size:23px;transition:transform .25s}.field-link:hover span{transform:translate(4px,-4px)}.field-link:hover{color:#efc3ff}
.field-footer{border-top:1px solid #2b3546;padding:20px 0 23px}.interaction-hint{display:flex;align-items:center;gap:10px;letter-spacing:.055em}.interaction-hint i{width:5px;height:5px;background:#8ee1ff;border-radius:50%;box-shadow:0 0 8px #8ee1ff}.touch-hint{display:none}
.saturation-veil{position:fixed;inset:0;z-index:1000;pointer-events:none;backdrop-filter:saturate(.12) brightness(.92);-webkit-backdrop-filter:saturate(.12) brightness(.92);mask-image:radial-gradient(circle 340px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 0%,transparent 28%,#0005 55%,#000e 86%,#000 100%);-webkit-mask-image:radial-gradient(circle 340px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 0%,transparent 28%,#0005 55%,#000e 86%,#000 100%)}
.cursor-light{position:fixed;left:0;top:0;width:620px;height:620px;border-radius:50%;z-index:1001;pointer-events:none;opacity:0;background:radial-gradient(circle,#b8c8ff0c 0%,#71c6ff08 22%,#9d85ff04 44%,transparent 69%);transform:translate(-1000px,-1000px);transition:opacity .3s;mix-blend-mode:screen}.cursor-core{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#f7f5ff;box-shadow:0 0 9px #fff,0 0 23px #93bfff,0 0 45px #b295ff;transform:translate(-50%,-50%)}.cursor-core:after{content:'';position:absolute;inset:-11px;border:1px solid #bad9ff55;border-radius:50%}.light-active .cursor-light{opacity:1}
@media(pointer:fine){body.light-active,body.light-active a,body.light-active button{cursor:none}}
:focus-visible{outline:2px solid #b6b0ff;outline-offset:7px}
@media(max-width:800px){.particle-hero{min-height:calc(100svh - 70px);padding-top:26px}.hero-overline .eyebrow{font-size:9px}.field-index{display:none}.particle-stage{margin:12px -8px 0;min-height:240px;height:34vh}.hero-bottom{gap:30px;padding:10px 0 28px}.hero-intro h2{font-size:27px}.hero-intro p{font-size:13px}.field-link{font-size:12px}.field-footer{font-size:8px;letter-spacing:.06em}}
@media(max-width:520px){.hero-bottom{grid-template-columns:1fr;gap:24px}.hero-intro h2{font-size:27px}.hero-entry{justify-self:start;max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:22px}.field-link{font-size:11px;padding:12px 0}.particle-stage{height:29vh;min-height:205px}.field-guides{inset:18px 10px}.field-footer{gap:10px}.saturation-veil{mask-image:radial-gradient(circle 240px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 25%,#000 100%);-webkit-mask-image:radial-gradient(circle 240px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 25%,#000 100%)}}
@media(pointer:coarse){.desktop-hint{display:none}.touch-hint{display:inline}.cursor-core{display:none}}
@media(prefers-reduced-motion:reduce){.cursor-core:after{display:none}}

/* The homepage is a map: one personal introduction branches into two worlds. */
.exploration-map{padding-top:110px;position:relative}.map-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:35px;border-bottom:1px solid #273447}.map-coordinate,.orbit-label,.world-meta,.portfolio-label{font-size:10px;letter-spacing:.16em;color:#9dacc3}.profile-stop{display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:center;padding:70px 0 35px}.portrait-orbit{position:relative}.portrait-orbit img{width:100%;height:auto;display:block;mask-image:radial-gradient(ellipse,#000 45%,transparent 73%);-webkit-mask-image:radial-gradient(ellipse,#000 45%,transparent 73%)}.orbit-label{position:absolute;top:0;left:0;z-index:1}.portrait-caption{display:block;text-align:center;font-size:10px;letter-spacing:.06em;color:#94a3b8;margin-top:-10px}.profile-copy h2,.world-copy h2,.portfolio-section h2{font:500 clamp(34px,4.2vw,59px)/1.12 var(--font-ui);letter-spacing:-.055em;margin:20px 0 25px}.profile-copy em,.portfolio-intro em{font-style:normal;background:linear-gradient(110deg,#82e7ef,#b7b0ff,#eba8db);background-clip:text;color:transparent}.profile-copy p{color:#a8b5c9;max-width:510px;font-size:16px;line-height:1.9}.map-cta{display:inline-flex;align-items:center;gap:45px;border-bottom:1px solid #8a9dbd;padding:12px 0;font-size:14px;color:#d9dcff}.map-cta span{font-size:22px}.map-cta:hover{color:#9ee8ff;border-color:#9ee8ff}.profile-topics{display:flex;gap:14px;font-size:11px;color:#99a9c2;margin-top:20px}.profile-topics a:hover{color:#d7c6ff}.map-junction{height:150px;text-align:center;padding-top:30px}.map-junction>span{font-size:9px;letter-spacing:.23em;color:#9cabbe;background:#080b12;padding:0 20px}.map-junction svg{display:block;width:100%;height:100px;margin-top:15px;overflow:visible}.map-junction path{stroke:#667392;fill:none;stroke-width:1;stroke-dasharray:4 7;vector-effect:non-scaling-stroke}.worlds{display:grid;grid-template-columns:1fr 1fr;gap:48px}.world-stop{display:block;position:relative;border-top:1px solid #38566b;padding:24px 0 35px;perspective:900px}.teaching-world{border-color:#614d85;transition-delay:120ms!important}.world-meta{display:flex;align-items:center;justify-content:space-between;font-size:9px}.world-meta>span:last-child{font-size:25px;color:#a6dce7;letter-spacing:0}.world-art{position:relative;margin:12px -12px -8px}.world-art img{display:block;width:100%;height:auto;mask-image:radial-gradient(ellipse,#000 44%,transparent 73%);-webkit-mask-image:radial-gradient(ellipse,#000 44%,transparent 73%);transition:transform .7s cubic-bezier(.2,.7,.3,1);will-change:transform}.world-stop:hover .world-art img,.world-stop:focus-visible .world-art img{transform:translateY(-12px) rotateX(4deg) rotateY(-5deg) scale(1.025)}.teaching-world:hover .world-art img{transform:translateY(-12px) rotateX(4deg) rotateY(5deg) scale(1.025)}.world-copy{padding:5px 18px}.world-copy .eyebrow{font-size:10px}.world-copy h2{font-size:clamp(34px,3.6vw,49px);margin:15px 0 20px}.world-copy em{font-style:normal;background:linear-gradient(110deg,#56bfff,#70efbb);background-clip:text;color:transparent}.teaching-world .eyebrow{color:#c3a1ff}.teaching-world .world-copy em{background-image:linear-gradient(110deg,#b69bff,#e9a5ed)}.world-copy p{font-size:15px;line-height:1.85;color:#a4b2c8;max-width:420px}.world-enter{display:flex;justify-content:space-between;border-bottom:1px solid #365464;padding:20px 0 15px;margin-top:16px;font-size:12px;color:#a3e5dd}.teaching-world .world-enter{color:#d0b5f6;border-color:#574270}.map-end{display:flex;flex-direction:column;align-items:center;gap:12px;padding:90px 0 100px;color:#aab8ce}.map-dot{width:6px;height:6px;background:#a9baff;border-radius:50%;box-shadow:0 0 20px #7c83ff}.map-end p{font:400 22px var(--font-ui);letter-spacing:-.04em}.map-end a{font-size:11px;color:#95a4ba}.reveal{opacity:1;transform:none}.reveal-pending{opacity:0;transform:translateY(45px) scale(.975)}.reveal{transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.3,1)}.reveal.is-visible{opacity:1;transform:none}
.portfolio-page{padding-bottom:80px}.portfolio-intro{padding:95px 0 60px}.portfolio-intro h1{font:500 clamp(56px,8vw,110px)/1.04 var(--font-ui);letter-spacing:-.065em;margin:25px 0}.portfolio-intro>p{max-width:600px;color:#a8b5ca;font-size:18px;line-height:1.8}.portfolio-tabs{display:flex;gap:45px;flex-wrap:wrap;border-bottom:1px solid #344158;padding:35px 0 25px;font-size:12px;color:#b7b8ff}.portfolio-tabs a:hover{color:#a6e5f1}.portfolio-section{display:grid;grid-template-columns:.4fr 1fr;gap:65px;padding:65px 0;border-bottom:1px solid #2c374a;scroll-margin-top:30px}.portfolio-label{padding-top:25px}.portfolio-section h2{margin-top:15px;font-size:42px}.project-row{padding:30px 0;border-top:1px solid #29374b}.project-row h3,.cv-placeholder h3,.skills-list h3{font:500 24px var(--font-ui);letter-spacing:-.035em;margin:15px 0}.project-row p,.cv-placeholder p,.skills-list p,.section-description{color:#a5b3c8;font-size:15px;line-height:1.8;max-width:680px}.project-status{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#a8c7df}.skill-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.skill-tags span{border:1px solid #3b4b65;padding:5px 10px;border-radius:20px;font-size:10px;color:#a8c6dc}.cv-placeholder{border-left:1px solid #a19cdb;padding:15px 0 15px 28px;margin-top:30px}.skills-list article{display:flex;gap:25px;padding:20px 0;border-top:1px solid #2c374a}.skills-list article>span{font-size:10px;color:#a5a4ed;padding-top:20px}.back-map{display:inline-block;margin-top:40px;font-size:13px;color:#b6c3dd}
@media(max-width:1050px){.nav{gap:18px;font-size:12px}.profile-stop{gap:40px}.worlds{gap:30px}.world-copy{padding:0 5px}}
@media(max-width:800px){.exploration-map{padding-top:70px}.map-coordinate{display:none}.profile-stop{grid-template-columns:1fr;gap:35px;padding-top:40px}.portrait-orbit{width:min(100%,400px);margin:auto}.profile-copy h2{font-size:42px}.profile-copy{max-width:560px;margin:auto;width:100%}.map-junction{height:130px}.worlds{gap:26px}.world-copy h2{font-size:32px}.world-meta{font-size:8px;letter-spacing:.06em}.world-copy p{font-size:13px}.portfolio-section{grid-template-columns:1fr;gap:5px}.portfolio-intro{padding-top:65px}.portfolio-tabs{gap:25px}}
@media(max-width:560px){.worlds{grid-template-columns:1fr;gap:65px}.world-art{max-width:430px;margin:10px auto}.world-copy h2{font-size:42px}.world-copy p{font-size:15px}.map-junction svg{display:none}.map-junction{height:120px;padding-top:55px}.profile-copy h2{font-size:36px}.profile-copy p{font-size:15px}.map-end{padding:65px 0}.map-end p{font-size:19px}.portfolio-section h2{font-size:34px}.portfolio-tabs{gap:19px;font-size:11px}.portfolio-intro>p{font-size:16px}}
@media(prefers-reduced-motion:reduce){.reveal-pending{opacity:1;transform:none}.world-stop:hover .world-art img,.world-stop:focus-visible .world-art img{transform:none}}
/* Keep the two map palettes recognisable; the moving light still restores full colour. */
body.map-view .saturation-veil{backdrop-filter:saturate(.52) brightness(.92);-webkit-backdrop-filter:saturate(.52) brightness(.92)}

/* Charcoal surfaces, character photography, and precise axonometric strokes. */
body{background:#16191e;background-image:radial-gradient(ellipse at 48% 7%,#34394488,transparent 38%),linear-gradient(125deg,#191d23,#111419 65%,#23272e)}
.site-header{border-color:#444b57}.exploration-map{background:linear-gradient(110deg,#262b3440,transparent 65%)}.map-heading,.field-footer{border-color:#414954}.map-junction>span{background:#1b1e24}.world-stop{border-color:#59616d}.world-copy p,.profile-copy p{color:#b4bdca}
.saturation-veil,body.map-view .saturation-veil{backdrop-filter:saturate(.018) brightness(.94);-webkit-backdrop-filter:saturate(.018) brightness(.94);mask-image:radial-gradient(circle 310px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 0%,transparent 38%,#0007 65%,#000 100%);-webkit-mask-image:radial-gradient(circle 310px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 0%,transparent 38%,#0007 65%,#000 100%)}
.instrument{position:relative;aspect-ratio:640/500;margin:20px 0 30px;outline-offset:5px;background:radial-gradient(ellipse at 50% 48%,#454b5744,transparent 72%);filter:saturate(1.6);border-bottom:1px solid #414955;isolation:isolate}
.instrument:before{content:'';position:absolute;inset:16% 3% 8%;background-image:radial-gradient(#a2aabd55 .6px,transparent .7px);background-size:9px 9px;opacity:.25;z-index:-1}
.instrument svg{display:block;width:100%;height:100%;overflow:visible}.ascii-screen{position:absolute;left:12.5%;top:37%;width:57.5%;height:44%;border-radius:2px;background:#101821;pointer-events:none}.camera-readout{position:absolute;left:12.5%;width:57.5%;top:37%;display:flex;justify-content:space-between;gap:4px;font:clamp(5px,.56vw,8px)/1.2 monospace;padding:5px;background:linear-gradient(#0d1426ee,transparent);color:#b9cde4;pointer-events:none}.camera-status{color:#67fbd6}.instrument-hint{position:absolute;bottom:0;left:0;right:0;font:8px/1.5 monospace;letter-spacing:.13em;display:flex;justify-content:center;gap:12px;padding-bottom:8px;color:#aab4c2}.instrument-hint span{color:#7ce7e7}.camera-art.is-active .camera-drawing{filter:drop-shadow(0 0 5px #55cbee33)}.camera-art.is-active .camera-status{color:#68ffd5}.floating-book{transform:translateY(0);transition:transform .65s cubic-bezier(.2,.7,.3,1);filter:drop-shadow(0 8px 4px #07091144)}.teaching-art.is-active .floating-book{transform:translateY(-32px);animation:book-hover 3.5s .65s ease-in-out infinite}.book-shadow{transform-origin:290px 300px;transition:transform .65s,opacity .65s}.teaching-art.is-active .book-shadow{transform:scale(.83);opacity:.3}.teaching-art.is-active .floating-book{filter:drop-shadow(0 0 8px #b477ff33)}
@keyframes book-hover{0%,100%{transform:translateY(-32px)}50%{transform:translateY(-42px)}}
@media(max-width:800px){.camera-readout{font-size:5px;padding:3px}.instrument-hint{font-size:6px;letter-spacing:.04em}}
@media(max-width:560px){.instrument{max-width:none;width:100%;margin:10px 0 28px}.camera-readout{font-size:6px}.instrument-hint{font-size:7px}.saturation-veil,body.map-view .saturation-veil{mask-image:radial-gradient(circle 230px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 30%,#000 100%);-webkit-mask-image:radial-gradient(circle 230px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 30%,#000 100%)}}
@media(prefers-reduced-motion:reduce){.teaching-art.is-active .floating-book{animation:none;transform:translateY(-22px)}}

/* Simplified homepage: editable illustrations and three portfolio entrances. */
.field-footer{justify-content:center;border:0;padding:24px 0 40px}
.field-footer a{font:500 clamp(17px,1.7vw,24px)/1.4 var(--font-ui);letter-spacing:.01em;color:#c9d6e8;display:flex;gap:18px;align-items:center}
.field-footer a span{font-size:30px;transition:transform .3s}.field-footer a:hover span{transform:translateY(5px)}
.exploration-map{padding-top:65px;padding-bottom:70px;background:none;scroll-margin-top:25px}
.profile-stop{padding:30px 0 50px;gap:65px;grid-template-columns:.85fr 1.15fr}
.portrait-orbit{max-width:430px;width:100%;margin:auto;background:radial-gradient(ellipse,#5c6b8a1c,transparent 68%)}
.portrait-orbit img{mask-image:none;-webkit-mask-image:none;transition:transform .5s}.portrait-orbit:hover img{transform:translateY(-8px)}
.profile-copy h2{font-size:clamp(38px,4.5vw,64px);line-height:1.15}.profile-copy p{font-size:17px;line-height:1.8}
.portfolio-windows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:12px 0 115px}
.portfolio-window{position:relative;display:grid;grid-template-columns:1fr auto;align-items:end;min-height:245px;padding:24px 28px;background:linear-gradient(140deg,#30364099,#1c212b66);border:1px solid #65718a66;border-radius:10px;transition:transform .4s,box-shadow .4s,border-color .4s;isolation:isolate}
.portfolio-window img{grid-column:1/-1;width:145px;height:130px;object-fit:contain;justify-self:center;transition:transform .4s;filter:saturate(1.6)}
.portfolio-window h3{font:500 clamp(24px,2.6vw,36px)/1.2 var(--font-ui);letter-spacing:-.04em;margin:12px 0 0}.portfolio-window>span{font-size:27px;color:#aebee8}
.portfolio-window.is-near,.portfolio-window:focus-visible{transform:translateY(-12px);border-color:#9cb8f0;box-shadow:0 20px 40px #0003,0 0 35px #7b9cf414}
.portfolio-window.is-near img,.portfolio-window:focus-visible img{transform:translateY(-5px) rotate(-3deg)}
.hobbies-title{font:500 clamp(35px,4vw,56px)/1.15 var(--font-ui);letter-spacing:-.05em;margin:0 0 48px}
.worlds{gap:48px}.world-stop{padding:24px 0 0}.world-heading h3{font:500 clamp(25px,2.7vw,38px)/1.2 var(--font-ui);letter-spacing:-.045em;margin:0 0 20px}.world-heading h3 a{display:flex;align-items:center;justify-content:space-between;gap:14px}.world-heading h3 a span{font-size:27px;color:#7fdcdd;transition:transform .3s}.teaching-world .world-heading h3 a span{color:#bd9ff5}.world-heading h3 a:hover span{transform:translate(4px,-4px)}
.world-heading p{font-size:16px;line-height:1.8;color:#b4bdca;max-width:500px;margin:0;min-height:87px}
.instrument{margin:8px 0 0;border:0;transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .45s}
.instrument .camera-drawing{width:100%;height:100%;display:block;mask-image:none;-webkit-mask-image:none;transform:none!important}
.camera-readout{visibility:hidden}
@media(max-width:800px){.profile-stop{grid-template-columns:1fr;gap:15px;padding-top:0}.portrait-orbit{max-width:310px}.profile-copy h2{font-size:42px}.portfolio-windows{gap:14px;margin-bottom:80px}.portfolio-window{padding:18px;min-height:205px}.portfolio-window img{width:105px;height:100px}.portfolio-window h3{font-size:27px}.worlds{gap:28px}.world-heading h3{font-size:27px}.world-heading p{font-size:15px;min-height:108px}}
@media(max-width:560px){.particle-hero{padding-top:15px}.profile-copy h2{font-size:38px}.profile-copy p{font-size:16px}.portfolio-windows{gap:9px;margin-top:5px;margin-bottom:70px}.portfolio-window{min-height:156px;padding:12px 8px}.portfolio-window img{width:82px;height:82px}.portfolio-window h3{font-size:21px}.portfolio-window>span{font-size:18px}.hobbies-title{font-size:36px;margin-bottom:32px}.worlds{gap:44px}.world-heading h3{font-size:29px}.world-heading p{min-height:0}.instrument{margin-top:10px}.exploration-map{padding-top:40px}}
@media(prefers-reduced-motion:reduce){.portfolio-window.is-near,.portfolio-window:focus-visible,.portfolio-window.is-near img,.portrait-orbit:hover img,.instrument{transform:none}}
@media(max-width:560px){.portfolio-window h3{grid-column:1/-1}.portfolio-window>span{position:absolute;top:8px;right:9px;font-size:16px}}

/* Spotlight: previous ambient brightness .94 × .8 = .752. */
.saturation-veil,body.map-view .saturation-veil{backdrop-filter:saturate(.012) brightness(.752);-webkit-backdrop-filter:saturate(.012) brightness(.752)}
.cursor-light{background:radial-gradient(circle,#d6edff25 0%,#8eceff16 18%,#a090ff0b 42%,transparent 70%);backdrop-filter:brightness(1.22) saturate(1.15);-webkit-backdrop-filter:brightness(1.22) saturate(1.15);mask-image:radial-gradient(circle,#000 0%,#000b 28%,transparent 68%);-webkit-mask-image:radial-gradient(circle,#000 0%,#000b 28%,transparent 68%)}
.cursor-core{width:6px;height:6px;box-shadow:0 0 12px 3px #fff9,0 0 32px 9px #9fdbff77,0 0 65px 18px #b99bff33}
.firefly-title{position:relative;display:inline-block;background:linear-gradient(105deg,#a7e8fb,#b5a4ff 53%,#e1b3f2);background-clip:text;-webkit-background-clip:text;color:transparent;isolation:isolate}
.firefly-title.teal-title{background-image:linear-gradient(105deg,#89ceff,#8bffe0)}
.firefly-title.violet-title{background-image:linear-gradient(105deg,#b9a1ff,#efb4f2)}
.firefly-canvas{position:absolute;left:-24px;top:-32px;width:calc(100% + 48px);height:calc(100% + 64px);pointer-events:none;max-width:none;z-index:1}
.world-heading h3 a .firefly-title{font-size:inherit;color:transparent;transform:none;transition:none}
.pixel-portrait{aspect-ratio:500/460;max-width:430px;overflow:hidden;background:radial-gradient(ellipse,#447ca01a,transparent 67%)}
.pixel-portrait canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
.study-object{transform-box:view-box;transform-origin:320px 300px;transition:transform .85s cubic-bezier(.2,.75,.2,1),filter .85s;filter:drop-shadow(0 5px 3px #080b1444)}
.teaching-art .floating-book{animation:none;transform:translate(0,0)}
.teaching-art{cursor:pointer;-webkit-tap-highlight-color:transparent}
.teaching-art.is-lifted .floating-book{transform:translate(-8px,-65px) rotate(-4deg);filter:drop-shadow(0 0 8px #b995ff55);animation:closed-book-drift 4.6s .85s ease-in-out infinite}
.teaching-art.is-lifted .floating-tablet{transform:translate(18px,-45px) rotate(4deg);animation:tablet-drift 4s .85s ease-in-out infinite}
.teaching-art.is-lifted .pen-one{transform:translate(-20px,-48px) rotate(-8deg);animation:pen-drift 3.7s .85s ease-in-out infinite}
.teaching-art.is-lifted .pen-two{transform:translate(7px,-32px) rotate(7deg);animation:pen-two-drift 4.3s .85s ease-in-out infinite}
@keyframes closed-book-drift{0%,100%{transform:translate(-8px,-65px) rotate(-4deg)}50%{transform:translate(-5px,-76px) rotate(-2deg)}}
@keyframes tablet-drift{0%,100%{transform:translate(18px,-45px) rotate(4deg)}50%{transform:translate(14px,-56px) rotate(2deg)}}
@keyframes pen-drift{0%,100%{transform:translate(-20px,-48px) rotate(-8deg)}50%{transform:translate(-15px,-60px) rotate(-5deg)}}
@keyframes pen-two-drift{0%,100%{transform:translate(7px,-32px) rotate(7deg)}50%{transform:translate(3px,-43px) rotate(4deg)}}
@media(max-width:800px){.pixel-portrait{max-width:310px}}
@media(prefers-reduced-motion:reduce){.study-object{transition:none}.teaching-art.is-lifted .study-object{animation:none}.firefly-canvas{opacity:.6}}

@media(max-width:360px){.portfolio-window h3{font-size:18px}.portfolio-window img{width:100%;height:70px}.portfolio-window{min-height:145px}}

/* One shared spotlight radius: broad falloff, concentrated centre, no hard colour boundary. */
.saturation-veil,body.map-view .saturation-veil{mask-image:radial-gradient(circle var(--light-radius,450px) at var(--light-x,-1000px) var(--light-y,-1000px),transparent 0%,#0002 25%,#0008 58%,#000e 82%,#000 100%);-webkit-mask-image:radial-gradient(circle var(--light-radius,450px) at var(--light-x,-1000px) var(--light-y,-1000px),transparent 0%,#0002 25%,#0008 58%,#000e 82%,#000 100%)}
.cursor-light{width:calc(var(--light-radius,450px)*2);height:calc(var(--light-radius,450px)*2);background:radial-gradient(circle,#dbf4ff3b 0%,#a7d5ff20 13%,#9aaaff0b 42%,transparent 70%);backdrop-filter:brightness(1.38) saturate(1.18);-webkit-backdrop-filter:brightness(1.38) saturate(1.18);mask-image:radial-gradient(circle,#000 0%,#000c 18%,#0004 43%,transparent 70%);-webkit-mask-image:radial-gradient(circle,#000 0%,#000c 18%,#0004 43%,transparent 70%)}
.cursor-core{box-shadow:0 0 11px 4px #f2fcffb0,0 0 35px 10px #a4d9ff70,0 0 85px 25px #9baeff33}
.light-motes{position:fixed;inset:0;width:100%;height:100%;z-index:1002;pointer-events:none;mix-blend-mode:screen}
.pixel-portrait{aspect-ratio:1;max-width:410px;background:none;border-radius:3px}
.pixel-portrait canvas{aspect-ratio:1;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent)}
.firefly-title{background-image:linear-gradient(105deg,#9de9f5,#98b9ff 50%,#ba9ff4)}
.field-footer .explore-prompt{gap:22px;padding:14px 22px;position:relative}
.field-footer .explore-letters{font-size:inherit;display:inline-flex;white-space:nowrap}
.field-footer .explore-letters>span{font-size:inherit;display:inline-block;background:linear-gradient(120deg,#8ee9f7,#a4b7ff,#bd9af5);background-size:220% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:cue-colour 7s linear infinite;animation-delay:calc(var(--i)*-.12s)}
.field-footer .explore-arrow{color:#a6caff;font-size:30px;animation:cue-arrow 2.4s ease-in-out infinite}
.field-footer .explore-prompt:hover .explore-letters>span,.field-footer .explore-prompt:focus-visible .explore-letters>span{animation:cue-wave 1.7s ease-in-out infinite,cue-colour 4s linear infinite;animation-delay:calc(var(--i)*-.095s),calc(var(--i)*-.12s)}
.field-footer .explore-prompt:hover .explore-arrow,.field-footer .explore-prompt:focus-visible .explore-arrow{animation:cue-arrow 1.2s ease-in-out infinite}
.explore-prompt.intro-glitch .explore-letters{animation:cue-glitch 1.2s steps(1,end) both}
.explore-prompt.intro-glitch .explore-arrow{animation:cue-glitch 1.2s steps(1,end) both}
@keyframes cue-colour{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
@keyframes cue-wave{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes cue-arrow{0%,100%{transform:translateY(-3px)}50%{transform:translateY(6px)}}
@keyframes cue-glitch{0%{opacity:.45;transform:translateX(-7px);text-shadow:4px 0 #8edcfc}13%{transform:translateX(5px)}27%{opacity:1;transform:translateX(-3px);text-shadow:-3px 0 #b09eff}45%{transform:translateX(2px)}65%,100%{opacity:1;transform:none;text-shadow:none}}
@media(max-width:800px){.pixel-portrait{max-width:310px}}
@media(prefers-reduced-motion:reduce){.field-footer .explore-prompt .explore-letters,.field-footer .explore-prompt .explore-letters>span,.field-footer .explore-prompt .explore-arrow{animation:none;transform:none}}

.pixel-portrait:focus-visible{outline:2px solid #9dcaf5;outline-offset:8px}.field-footer .explore-prompt:hover>.explore-letters{transform:none}

/* Text and arrow share a canvas, so their dot rhythm and vertical movement stay aligned. */
.field-footer .explore-prompt.pixel-cue-ready{padding:8px 6px;gap:0;max-width:100%}
.pixel-cue-ready .explore-letters,.pixel-cue-ready .explore-arrow{display:none!important}
.explore-pixels{display:block;width:380px;max-width:100%;height:auto;aspect-ratio:380/64}
@media(max-width:600px){.explore-pixels{width:310px}}

/* A 30% saturation lift, still subject to the shared spotlight falloff. */
.firefly-title{filter:saturate(1.6)}

/* Native system typography; canvas pixel lettering keeps its original stencil. */
:root{--font-ui:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue","PingFang SC","Segoe UI",sans-serif;--cursor-intensity:.56}
button,input,textarea,select{font-family:var(--font-ui)}
#particle-title,.explore-letters{font-family:Manrope,sans-serif}
.light-active .cursor-light{opacity:var(--cursor-intensity)}

/* Two-line fallback matches the particle canvas, including its Chinese line. */
#particle-title span{display:block}
#particle-title span:first-child{font-size:clamp(48px,14vw,190px)}
#particle-title span[lang]{font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:clamp(25px,7.5vw,100px);letter-spacing:.015em;margin-top:.35em}
/* Editorial copy settles gently into place, staggered within each section. */
.scroll-copy{opacity:0;transform:translateY(var(--copy-offset,20px));transition:opacity .65s cubic-bezier(.22,1,.36,1),transform .75s cubic-bezier(.22,1,.36,1);transition-delay:0ms}
.scroll-copy.copy-visible,.scroll-copy:focus-within,a:focus-visible .scroll-copy{opacity:1;transform:translateY(0);transition-delay:var(--copy-delay,0ms)}
@media(prefers-reduced-motion:reduce){.scroll-copy{opacity:1;transform:none;transition:none}}

/* A single native link and motion surface for each hobby destination. */
.world-card{padding:28px 26px 10px;border:1px solid #65718a45;border-radius:24px;background:linear-gradient(145deg,#30364075,#1c212b35);color:inherit;text-decoration:none;cursor:pointer;transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s ease,border-color .3s ease;transition-delay:0ms!important}
.world-card .world-heading h3{display:flex;align-items:center;justify-content:space-between;gap:14px}
.world-card .world-heading h3>.firefly-title{font-size:inherit;color:transparent}
.world-card .world-heading h3>[aria-hidden]{font-size:27px;color:#a9c8ec;flex-shrink:0;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.world-card .world-art{pointer-events:none;transform:none!important;cursor:inherit}
.world-card .world-art img{transform:none!important}
.world-card:focus-visible{outline:2px solid #b3c8ff;outline-offset:5px;border-color:#b3c8ff;box-shadow:0 20px 45px #0004;transform:translateY(-8px)}
@media(hover:hover) and (pointer:fine){.world-card:hover{transform:translateY(-8px);border-color:#a0bedf99;box-shadow:0 22px 48px #0005,0 1px 0 #ffffff0d inset}.world-card:hover .world-heading h3>[aria-hidden]{transform:translate(3px,-3px)}.world-card:active{transform:translateY(-3px) scale(.995);transition-duration:.16s}}
@media(max-width:800px){.world-card{padding:24px 18px 8px;border-radius:20px}}
@media(prefers-reduced-motion:reduce){.world-card,.world-card .world-heading h3>[aria-hidden]{transition:none}.world-card:hover,.world-card:active,.world-card:focus-visible,.world-card:hover .world-heading h3>[aria-hidden]{transform:none}}

/* One continuous dot grid on every page, including the hero. */
body{background-color:#16191e;background-image:radial-gradient(circle,#798bb56d .8px,transparent .9px),radial-gradient(ellipse at 48% 7%,#34394488,transparent 38%),linear-gradient(125deg,#191d23,#111419 65%,#23272e);background-size:28px 28px,100% 100%,100% 100%;background-position:0 0;background-repeat:repeat,no-repeat,no-repeat;min-height:100svh}
.particle-stage{background-image:none}
#side-hobbies,.portfolio-section{scroll-margin-top:40px}
.contact-page{padding-top:100px;padding-bottom:70px;min-height:calc(100svh - 82px);max-width:1040px}
.contact-intro{display:flex;justify-content:space-between;align-items:center;gap:36px;margin-bottom:64px}
.contact-intro h1{font-size:clamp(64px,8vw,112px);font-weight:500;line-height:1.05;letter-spacing:-.065em;margin:0 0 24px}
.contact-intro h1 span{color:#a7baff}
.contact-intro p{font-size:19px;color:#aebaca;margin:0}
.contact-illustration{width:210px;color:#acbce5;flex-shrink:0;opacity:.85}
.contact-methods{border-top:1px solid #788ba345}
.contact-method{display:grid;grid-template-columns:40px minmax(150px,1fr) 1.5fr;align-items:center;gap:28px;padding:38px 0;border-bottom:1px solid #788ba345}
.contact-number{font:12px ui-monospace,monospace;color:#8d9daf}
.contact-method h2{font-size:clamp(25px,3vw,36px);font-weight:500;letter-spacing:-.04em;margin:0}
.contact-value{min-height:40px;border-bottom:1px solid #91a5c330}
.contact-back{display:inline-block;margin-top:56px;color:#aebed2;font-size:14px}
.contact-back:hover{color:#d7e9ff}
@media(max-width:600px){.contact-page{padding-top:65px}.contact-intro{gap:12px;margin-bottom:45px}.contact-illustration{width:105px}.contact-intro p{font-size:16px}.contact-method{grid-template-columns:24px 1fr;gap:12px;padding:28px 0}.contact-value{grid-column:2;width:100%}.contact-back{margin-top:38px}}

@media(max-width:360px){.contact-intro h1{font-size:52px}.contact-illustration{width:75px}}

/* CV introduction, balanced document choices, and shared footer. */
.portfolio-intro h1{font-size:clamp(40px,7vw,96px)}
.cv-pdf-block{margin-top:56px;text-align:center;padding-bottom:20px}
.cv-pdf-block h2{font-size:clamp(20px,2.5vw,28px);font-weight:500;letter-spacing:-.035em;margin:0 0 28px}
.cv-pdf-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:850px;margin:auto}
.cv-pdf-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 12px;background:#28313f4a;border:1px solid #8b9fbd40;border-radius:16px;color:#d5e2f5;font:500 25px var(--font-ui);transition:transform .4s cubic-bezier(.22,1,.36,1),border-color .3s}
.cv-pdf-option small{font:12px var(--font-ui);color:#9bacc2}
.cv-pdf-option:disabled{opacity:.65;cursor:default}
a.cv-pdf-option:hover,a.cv-pdf-option:focus-visible{transform:translateY(-6px);border-color:#a5c1f0}
.portfolio-section .cv-section-label{font-size:clamp(27px,3vw,38px);margin:15px 0;font-weight:500;letter-spacing:-.045em}
.education-school{font-size:32px;font-weight:500;letter-spacing:-.04em;margin:18px 0}
.back-map-footer{display:flex;justify-content:center;margin-top:55px;padding-bottom:0}
.portfolio-footer .footer-inner{display:flex;justify-content:center;text-align:center;align-items:center}
.portfolio-footer .footer-inner p{margin-top:12px}
@media(max-width:600px){.cv-pdf-options{gap:10px}.cv-pdf-option{font-size:20px;padding:22px 8px}.cv-pdf-option small{font-size:10px}.cv-pdf-block{margin-top:38px}.portfolio-intro h1{letter-spacing:-.06em}}
@media(prefers-reduced-motion:reduce){.cv-pdf-option{transition:none}a.cv-pdf-option:hover,a.cv-pdf-option:focus-visible{transform:none}}

/* One centred, bold footer signature. */
.footer-credit{display:inline-block;font:700 clamp(17px,2vw,24px)/1.5 var(--font-ui);letter-spacing:-.035em;text-wrap:balance}
.site-header>.brand{white-space:nowrap}
@media(min-width:801px) and (max-width:960px){.site-header .nav{gap:20px}}

/* CV detail rhythm and independent portfolio pages. */
.cv-details{padding-left:1.15em;color:#aebfd4;font-size:17px;line-height:1.85;max-width:650px}
.cv-details li+li{margin-top:8px}
.beam-content article+article{margin-top:48px}
.cv-text-link{display:inline-block;color:#b7c6f6;border-bottom:1px solid #899ed466;padding:8px 0;margin-top:12px}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-bottom:65px}
.detail-card{padding:38px;border:1px solid #8a9bb62b;border-radius:24px;background:linear-gradient(130deg,#648cff0b,#ad86f90a)}
.detail-number{font:12px ui-monospace,monospace;letter-spacing:.15em;color:#95a7c6}
.detail-card h2{font-size:clamp(26px,3vw,38px);font-weight:500;letter-spacing:-.04em;line-height:1.15;margin:25px 0 15px}
.detail-card p{color:#aebfd4;line-height:1.8}.detail-card .detail-meta{color:#b5b8ef}
.detail-card a{display:inline-block;margin-top:16px;border-bottom:1px solid #899ed466;padding-bottom:5px}
@media(max-width:700px){.detail-grid{grid-template-columns:1fr}.detail-card{padding:28px}.cv-details{font-size:15px}.beam-content article+article{margin-top:35px}}

/* Homepage-derived typography and colour shared by the portfolio pages. */
:root{--type-card:500 clamp(25px,2.7vw,38px)/1.2 var(--font-ui);--tracking-card:-.045em;--type-section:500 clamp(35px,4vw,56px)/1.15 var(--font-ui);--copy-color:#b4bdca;--heading-spectrum:linear-gradient(105deg,#9de9f5,#98b9ff 50%,#ba9ff4);--heading-saturation:1.6;--intro-spectrum:linear-gradient(110deg,#82e7ef,#b7b0ff,#eba8db)}
.world-heading h3{font:var(--type-card);letter-spacing:var(--tracking-card)}
.hobbies-title{font:var(--type-section)}
.firefly-title{background-image:var(--heading-spectrum);filter:saturate(var(--heading-saturation))}
.profile-copy em,.portfolio-intro em{background-image:var(--intro-spectrum)}
.portfolio-intro>p{font:400 17px/1.8 var(--font-ui);color:#a8b5c9}
.world-heading p{color:var(--copy-color)}
@media(max-width:800px){:root{--type-card:500 27px/1.2 var(--font-ui)}}
@media(max-width:560px){:root{--type-card:500 29px/1.2 var(--font-ui);--type-section:500 36px/1.15 var(--font-ui)}.portfolio-intro>p{font-size:16px}}

/* Shared pixel navigation; reserved width prevents a hover label from moving the nav. */
.explore-pixels{width:420px;aspect-ratio:420/72}
.brand.pixel-cue-ready{display:block;width:270px;flex:0 0 270px;line-height:1}
.brand.pixel-cue-ready .explore-pixels{width:270px}
.pixel-cue-ready .pixel-fallback{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.nav-contact{display:inline-flex;align-items:center;justify-content:center;gap:9px}
.nav-contact span{font-size:17px;transition:transform .2s}
.nav-contact:hover span{transform:translate(2px,-2px)}
.brand:focus-visible,.explore-prompt:focus-visible{outline:1px solid #8de5ff;outline-offset:5px;border-radius:3px}
@media(max-width:600px){.explore-pixels{width:330px}.brand.pixel-cue-ready{width:230px;flex-basis:230px}.brand.pixel-cue-ready .explore-pixels{width:230px}}

.site-header:has(.brand:hover,.brand:focus-visible){z-index:1005}
