.contact-form{max-width:760px;margin:46px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:17px;text-align:left}.contact-form label{display:grid;gap:8px}.contact-form label span{font-size:10px}.contact-form input,.contact-form textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);background:var(--paper);padding:14px;font:14px var(--sans);color:var(--ink);border-radius:0}.contact-form textarea{min-height:130px;resize:vertical}.contact-message{grid-column:1/-1}.contact-form .button{justify-self:start}.form-status{align-self:center;margin:0;color:var(--muted);font-size:10px}.form-status.error{color:#a53d32}@media(max-width:640px){.contact-form{grid-template-columns:1fr}.contact-message{grid-column:auto}}
:root{--bg:#f2f1ed;--paper:#faf9f6;--ink:#111;--muted:#6b6a65;--line:#c9c7c0;--soft:#e6e4de;--inverse:#101010;--inverse-ink:#f4f2ec;--serif:"Newsreader",Georgia,serif;--sans:"Manrope",Arial,sans-serif;--mono:"DM Mono",monospace;--pad:clamp(22px,5vw,76px)}
.about:before,.about:after,.about-world,.sakura-row{display:none!important}.about>.section-no,.about>.about-grid,.about>.skill-grid{position:relative;z-index:auto}.sakura-3d{position:relative;background:#090d18;color:#f6f2ec;min-height:820px;overflow:hidden;border-top:1px solid #343c54;border-bottom:1px solid #343c54}.sakura-scene-copy{position:absolute;left:var(--pad);top:70px;z-index:3;width:min(430px,42vw);pointer-events:none;text-shadow:0 2px 18px #090d18}.sakura-scene-copy .section-no{color:#c7bcd1}.sakura-scene-copy h2{font-size:clamp(56px,7vw,108px);line-height:.84;letter-spacing:-.075em;margin:28px 0 25px}.sakura-scene-copy h2 em{font-family:var(--serif);font-weight:400}.sakura-scene-copy p{max-width:390px;color:#c7c9d4;font-size:15px}.sakura-canvas-wrap{position:relative;width:100%;height:820px}.sakura-canvas-wrap canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.sakura-canvas-wrap canvas.is-grabbing{cursor:grabbing}.scene-instructions{position:absolute;z-index:3;left:var(--pad);right:var(--pad);bottom:24px;display:flex;gap:22px;justify-content:flex-end;flex-wrap:wrap;color:#d8cede;font-size:9px;pointer-events:none}.scene-instructions span{border:1px solid #ffffff42;background:#090d188c;backdrop-filter:blur(8px);padding:7px 9px}.scene-status{position:absolute;right:var(--pad);top:30px;z-index:3;color:#f2c2d1;font-size:9px;pointer-events:none}.scene-fallback{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}@media(max-width:760px){.sakura-3d,.sakura-canvas-wrap{min-height:720px;height:720px}.sakura-scene-copy{top:42px;width:calc(100% - 2 * var(--pad))}.sakura-scene-copy h2{font-size:15vw}.sakura-scene-copy p{max-width:290px;font-size:12px}.scene-status{top:auto;bottom:80px;left:var(--pad);right:auto}.scene-instructions{justify-content:flex-start;gap:5px;bottom:18px}.scene-instructions span{padding:5px;font-size:7px}}
.about{position:relative;overflow:hidden;isolation:isolate}.about:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#101010 0%,#101010d9 39%,#10101076 66%,#10101028 100%),url("assets/cherry-blossom-world.png") center right/cover no-repeat;z-index:0}.about:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#10101038,transparent 42%,#1010108c);z-index:1;pointer-events:none}.about>.section-no,.about>.about-grid,.about>.skill-grid{position:relative;z-index:2}.sakura-row{display:none!important}.about-world{position:absolute;inset:0;z-index:3;pointer-events:none}.world-block{pointer-events:auto;position:absolute;width:52px;height:52px;border:0;cursor:grab;touch-action:none;filter:drop-shadow(0 10px 9px #0008);transition:filter .2s,transform .2s}.world-block:active{cursor:grabbing;transform:scale(1.08)}.world-block:focus-visible{outline:2px solid #fff;outline-offset:5px}.block-grass{right:12%;bottom:8%;background:linear-gradient(135deg,#8ac66c 0 34%,#49703b 35% 46%,#866142 47% 100%);clip-path:polygon(0 20%,50% 0,100% 20%,100% 80%,50% 100%,0 80%)}.block-lantern{right:31%;top:17%;width:43px;height:43px;background:radial-gradient(circle,#fff4a8 0 18%,#dc9e3c 19% 38%,#56391c 39% 100%);clip-path:polygon(50% 0,100% 24%,100% 76%,50% 100%,0 76%,0 24%);animation:lantern-float 3s ease-in-out infinite}.block-crystal{right:44%;bottom:19%;width:34px;height:62px;background:linear-gradient(110deg,#efd4ff,#a55ee8 48%,#45217e);clip-path:polygon(50% 0,100% 35%,77% 100%,22% 100%,0 35%);animation:crystal-pulse 2.8s ease-in-out infinite}@keyframes lantern-float{50%{transform:translateY(-12px)}}@keyframes crystal-pulse{50%{filter:drop-shadow(0 0 16px #c373ff)}}@media(max-width:640px){.about:before{background:linear-gradient(90deg,#101010e8 0%,#101010a8 64%,#1010105c 100%),url("assets/cherry-blossom-world.png") 68% center/auto 100% no-repeat}.world-block{transform:scale(.8)}.block-lantern{right:15%;top:12%}.block-crystal{right:28%;bottom:10%}.block-grass{right:6%;bottom:3%}}
[data-theme="dark"]{--bg:#111;--paper:#171717;--ink:#f1efe9;--muted:#aaa8a1;--line:#3e3d39;--soft:#262522;--inverse:#eceae4;--inverse-ink:#111}.dark-section{--ink:#f4f2ec;--muted:#aaa8a1;--line:#363633;--soft:#1d1d1b;background:#101010;color:var(--ink)}[data-theme="dark"] .dark-section{background:#050505}.pale-section{background:var(--soft)}
*{box-sizing:border-box}html{scroll-behavior:smooth;max-width:100%;overflow-x:hidden}body{width:100%;max-width:100%;margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;overflow-x:hidden}body.menu-open{overflow:hidden}::selection{background:var(--ink);color:var(--bg)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}img{display:block;max-width:100%}.mono,.section-no{font-family:var(--mono);font-size:11px;letter-spacing:.1em}.noise{position:fixed;inset:0;opacity:.035;pointer-events:none;z-index:1000;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.skip-link{position:fixed;top:-60px;left:20px;background:#fff;color:#000;padding:10px 16px;z-index:2000}.skip-link:focus{top:10px}.section-pad{padding:clamp(85px,11vw,160px) var(--pad)}.mobile-break{display:none}
.site-header{height:76px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:100;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;font-size:17px;letter-spacing:-.04em}.brand i{width:7px;height:7px;border-radius:50%;background:var(--ink)}.desktop-nav{display:flex;gap:34px;font-size:13px}.desktop-nav a,.header-mail{position:relative}.desktop-nav a:after,.header-mail:after{content:"";position:absolute;left:0;bottom:-5px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s}.desktop-nav a:hover:after,.header-mail:hover:after{transform:scaleX(1);transform-origin:left}.header-actions{display:flex;align-items:center;gap:22px}.header-mail{font-size:13px;font-weight:700}.header-mail span{margin-left:6px}.icon-button,.menu-toggle{border:0;background:none;cursor:pointer;padding:8px}.icon-button svg{width:18px;fill:none;stroke:currentColor;stroke-width:1.5}.menu-toggle{display:none;width:34px;height:34px}.menu-toggle span{display:block;width:20px;height:1px;background:var(--ink);margin:6px 0;transition:.3s}.mobile-menu{position:fixed;inset:76px 0 0;background:var(--bg);z-index:90;display:none;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-15px);transition:opacity .3s,transform .3s,visibility 0s linear .3s}.mobile-menu nav{display:flex;flex-direction:column;padding:40px var(--pad)}.mobile-menu a{font-size:clamp(30px,10vw,54px);padding:10px 0;border-bottom:1px solid var(--line);letter-spacing:-.05em}
.hero{padding-top:clamp(48px,7vw,95px);padding-bottom:34px;min-height:calc(100vh - 76px);display:flex;flex-direction:column;justify-content:space-between}.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.08em;display:flex;align-items:center;gap:8px;text-transform:uppercase}.eyebrow-place{margin-left:auto}.status-dot{width:7px;height:7px;border:1px solid var(--ink);border-radius:50%;position:relative}.status-dot:after{content:"";position:absolute;inset:1px;border-radius:50%;background:var(--ink);animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.2}}.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:7vw;align-items:center;padding:36px 0}.hero-copy{min-width:0}.hero h1,.section-head h2,.about h2,.credentials h2,.game h2,.contact h2{font-size:clamp(54px,8.3vw,132px);line-height:.83;letter-spacing:-.075em;margin:0;font-weight:600}.hero h1 em,.section-head h2 em,.about h2 em,.credentials h2 em,.game h2 em,.contact h2 em{font-family:var(--serif);font-weight:400}.hero-intro{font-size:clamp(16px,1.45vw,21px);max-width:620px;margin:48px 0 0;line-height:1.55;color:var(--muted)}.hero-intro strong{color:var(--ink);font-weight:600}.hero-cta{display:flex;align-items:center;gap:28px;margin-top:32px}.button{border:1px solid var(--ink);padding:13px 18px;display:inline-flex;align-items:center;justify-content:space-between;gap:40px;background:none;cursor:pointer;font-size:12px;font-weight:700;transition:.25s}.button.primary{background:var(--ink);color:var(--bg)}.button:hover{transform:translateY(-2px);box-shadow:4px 4px 0 var(--line)}.text-link{font-size:12px;font-weight:700;border-bottom:1px solid var(--line);padding-bottom:4px}.text-link span{margin-left:7px}.portrait-wrap{max-width:390px;margin-left:auto;width:100%}.portrait-index{margin-bottom:8px}.portrait-frame{position:relative;aspect-ratio:4/5;background:#ddd;overflow:hidden;filter:grayscale(1)}.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 55%;transform:scale(1.12);transition:filter .5s,transform .7s}.portrait-frame:hover img{filter:contrast(1.05);transform:scale(1.16)}.corner{position:absolute;width:20px;height:20px;border-color:#fff;border-style:solid}.c1{left:10px;top:10px;border-width:1px 0 0 1px}.c2{right:10px;top:10px;border-width:1px 1px 0 0}.c3{left:10px;bottom:10px;border-width:0 0 1px 1px}.c4{right:10px;bottom:10px;border-width:0 1px 1px 0}.portrait-caption{display:flex;justify-content:space-between;font-family:var(--mono);font-size:9px;text-transform:uppercase;margin-top:8px}.hero-foot{display:flex;align-items:center;gap:20px}.hero-foot .line{height:1px;background:var(--line);flex:1}.marquee-band{overflow:hidden;background:var(--ink);color:var(--bg);padding:15px 0;white-space:nowrap}.marquee-track{display:inline-flex;align-items:center;gap:30px;animation:marquee 30s linear infinite;font:500 11px var(--mono);letter-spacing:.08em}.marquee-track i{font-style:normal}@keyframes marquee{to{transform:translateX(-50%)}}
.section-head{display:grid;grid-template-columns:1.25fr .75fr;gap:7vw;align-items:end;margin-bottom:75px}.section-head h2{font-size:clamp(50px,7vw,102px);margin-top:28px}.section-head>p{max-width:480px;color:var(--muted);font-size:18px;margin:0 0 8px}.project{display:grid;grid-template-columns:70px minmax(280px,.8fr) minmax(300px,1.2fr);gap:34px;border-top:1px solid var(--line);padding:34px 0;min-height:390px;align-items:stretch}.project-no{padding-top:4px}.project-content{display:flex;flex-direction:column;align-items:flex-start}.project-meta{color:var(--muted);margin-bottom:auto}.project h3{font-size:clamp(34px,4vw,60px);letter-spacing:-.055em;line-height:1;margin:30px 0 18px}.project p{color:var(--muted);max-width:570px;margin:0}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:24px 0}.tags span{font:10px var(--mono);border:1px solid var(--line);padding:5px 8px;text-transform:uppercase}.project-link{margin-top:auto;padding-bottom:4px;border-bottom:1px solid var(--ink);font-size:12px;font-weight:700}.project-link span{margin-left:12px}.project-image,.project-visual{overflow:hidden;min-height:320px;background:#d6d4ce;position:relative}.project-image img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .7s,filter .4s}.project-image:hover img{transform:scale(1.035);filter:grayscale(.3)}.project-featured{min-height:440px}.project-visual{background:#181818;color:#fff;display:grid;place-items:center}.visual-label{position:absolute;left:18px;bottom:15px}.radar{width:220px;height:220px;border:1px solid #606060;border-radius:50%;position:relative;background:repeating-radial-gradient(circle,transparent 0 35px,#393939 36px 37px),linear-gradient(90deg,transparent 49.7%,#393939 50%,transparent 50.3%),linear-gradient(transparent 49.7%,#393939 50%,transparent 50.3%)}.radar:after{content:"";position:absolute;inset:50% 50% 0 0;background:linear-gradient(45deg,transparent,#eee5);transform-origin:100% 0;animation:scan 3s linear infinite}@keyframes scan{to{transform:rotate(360deg)}}.radar i{position:absolute;width:5px;height:5px;background:#fff;border-radius:50%;box-shadow:0 0 10px #fff}.radar i:nth-child(1){left:42px;top:80px}.radar i:nth-child(2){right:50px;bottom:50px}.radar i:nth-child(3){right:70px;top:45px}.vision-visual{background:var(--soft);color:var(--ink)}.eye{width:230px;height:110px;border:1px solid var(--ink);border-radius:100% 0 100% 0;transform:rotate(-45deg);display:grid;place-items:center}.eye i{width:76px;height:76px;background:var(--ink);border-radius:50%;position:relative}.eye i:after{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:var(--soft);left:18px;top:14px}.all-work{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:25px 0;font-size:clamp(20px,3vw,36px);font-weight:600;letter-spacing:-.035em}.all-work b{font-weight:400;transition:.3s}.all-work:hover b{transform:translate(4px,-4px)}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw;margin-top:55px}.about h2{font-size:clamp(54px,7vw,100px)}.about-copy .large{font-size:clamp(23px,3vw,42px);line-height:1.25;letter-spacing:-.04em;color:var(--ink);margin:0 0 35px}.about-copy>p:not(.large){color:var(--muted);max-width:600px}.personal-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}.skill-grid{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:45px;border-top:1px solid var(--line);margin-top:100px;padding-top:30px}.skill-title p{color:var(--muted);max-width:300px}.skill-col h3{font-size:13px;margin:0 0 20px}.skill-col ul{list-style:none;margin:0;padding:0;color:var(--muted)}.skill-col li{border-bottom:1px solid var(--line);padding:8px 0;font-size:14px}
.timeline{border-bottom:1px solid var(--line)}.timeline-item{display:grid;grid-template-columns:.7fr 1.4fr 100px;gap:5vw;padding:45px 0;border-top:1px solid var(--line);position:relative}.timeline-type{color:var(--muted)}.timeline-main h3{font-size:clamp(26px,3vw,42px);line-height:1.1;letter-spacing:-.04em;margin:14px 0 8px}.timeline-main h4{font-size:14px;font-weight:600;margin:0 0 20px}.timeline-main p,.timeline-main li{color:var(--muted);font-size:14px}.timeline-main ul{padding-left:18px}.timeline-mark{font-size:13px;font-weight:700;border:1px solid var(--line);width:70px;height:70px;border-radius:50%;display:grid;place-items:center;justify-self:end}
.papers{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.paper{background:var(--paper);border:1px solid var(--line);padding:25px;min-height:430px;display:flex;flex-direction:column;transition:.35s}.paper:hover{transform:translateY(-6px);box-shadow:0 14px 0 var(--line)}.paper-top,.paper-bottom{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:10px}.paper-num{font:italic 36px var(--serif);color:var(--ink)}.paper h3{font-size:clamp(22px,2vw,30px);letter-spacing:-.04em;line-height:1.2;margin:50px 0 20px}.paper>p{font-size:12px;color:var(--muted)}.paper-bottom{border-top:1px solid var(--line);padding-top:15px;margin-top:auto}.paper-bottom a{color:var(--ink);font-weight:700;white-space:nowrap}
.credentials-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.credentials h2{font-size:clamp(52px,7vw,98px);margin-top:28px}.credential-list>div{display:grid;grid-template-columns:110px 1fr .8fr;gap:20px;border-top:1px solid var(--line);padding:19px 0;align-items:start}.credential-list time{font:10px var(--mono)}.credential-list p{margin:0;font-size:14px;font-weight:600}.credential-list span{color:var(--muted);font-size:12px}.credential-list .webinars{row-gap:5px}.credential-list .webinars p:nth-of-type(2){grid-column:2}.credential-list .webinars span:nth-of-type(2){grid-column:3}.recognition-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:100px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.recognition{padding:28px;min-height:240px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.recognition h3{font-size:22px;letter-spacing:-.03em;margin:36px 0 10px}.recognition p{font-size:13px;color:var(--muted)}.recognition time{font:10px var(--mono)}
.game{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;align-items:center}.game h2{font-size:clamp(52px,7vw,96px);margin:25px 0 30px}.game-copy>p{color:var(--muted);max-width:520px}.game-stats{display:flex;gap:30px;margin:40px 0 22px}.game-stats span{display:flex;flex-direction:column}.game-stats b{font-size:28px;font-weight:400;color:var(--ink)}.button.light{background:var(--ink);color:#101010}.game-status{color:var(--muted);margin-top:18px}.game-board-wrap{position:relative;max-width:640px;justify-self:end;width:100%;overflow:hidden;border:1px solid var(--line);padding:18px}.game-board{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.game-cell{aspect-ratio:1;border:1px solid #4b4b48;background:#171717;position:relative;cursor:default;transition:.2s}.game-cell:before,.game-cell:after{content:"";position:absolute;background:#666}.game-cell:before{height:1px;width:38%;left:31%;top:50%}.game-cell:after{width:1px;height:38%;top:31%;left:50%}.game-cell.anomaly{cursor:pointer;background:#eee}.game-cell.anomaly:before,.game-cell.anomaly:after{background:#111;transform:rotate(45deg)}.game-cell.anomaly:focus{outline:2px solid #fff;outline-offset:3px}.scanline{position:absolute;left:0;right:0;height:80px;top:-80px;background:linear-gradient(transparent,#fff08,transparent);animation:scanline 5s linear infinite;pointer-events:none}@keyframes scanline{to{transform:translateY(700px)}}
.details-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.detail-card{border:1px solid var(--line);padding:28px;min-height:300px}.detail-card h3{font-size:23px;letter-spacing:-.03em;margin:35px 0 6px}.detail-card p{font-size:13px;color:var(--muted)}.detail-card a{font-size:12px;font-weight:700;display:inline-block;margin-top:14px;border-bottom:1px solid var(--ink)}
.contact{text-align:center;border-top:1px solid var(--line);padding-bottom:100px}.contact h2{font-size:clamp(52px,8vw,118px);margin:35px 0 50px}.contact-email{font-size:clamp(17px,3vw,42px);font-weight:600;letter-spacing:-.04em;border-bottom:1px solid var(--ink);padding-bottom:8px}.contact-email span{display:inline-block;transition:.3s}.contact-email:hover span{transform:translate(4px,-4px)}.contact-meta{display:flex;justify-content:center;flex-wrap:wrap;gap:25px;margin-top:55px;color:var(--muted);font:10px var(--mono);text-transform:uppercase}footer{background:#0b0b0b;color:#f1efe9;padding:70px var(--pad) 28px;display:grid;grid-template-columns:1fr 1fr;gap:70px}.footer-brand{display:flex;gap:50px}.footer-brand strong{font-size:30px;line-height:1;letter-spacing:-.05em}.footer-brand span{font-size:12px;color:#888;max-width:220px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}.footer-links .mono{grid-row:span 3;color:#777}.footer-links a{font-size:13px}.footer-end{grid-column:1/-1;border-top:1px solid #333;padding-top:20px;display:flex;justify-content:space-between;color:#777}.footer-end a{color:#ddd}
.reveal{opacity:0;transform:translateY(25px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.25,1)}.reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.marquee-track,.status-dot:after,.radar:after,.scanline{animation:none}}
@media(max-width:960px){.desktop-nav{display:none}.menu-toggle{display:block}.mobile-menu{display:block}.menu-open .mobile-menu{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-delay:0s}.menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.hero-grid{grid-template-columns:1fr}.portrait-wrap{max-width:330px;margin:0}.project{grid-template-columns:40px 1fr}.project-image,.project-visual{grid-column:2}.about-grid,.credentials-grid,.game{grid-template-columns:1fr}.papers{grid-template-columns:1fr}.paper{min-height:330px}.recognition-grid{grid-template-columns:repeat(2,1fr)}.game-board-wrap{justify-self:start;max-width:600px}.details-grid{grid-template-columns:1fr 1fr}.skill-grid{grid-template-columns:1fr 1fr}.skill-title{grid-column:1/-1}}
@media(max-width:640px){.site-header{height:66px;width:100%;max-width:100vw;background:var(--bg);backdrop-filter:none}.header-actions{margin-left:auto;gap:10px}.header-mail{display:none}.mobile-menu{inset:66px 0 0}.section-pad{padding-top:80px;padding-bottom:80px}.hero{min-height:auto;padding-top:35px}.hero-copy{width:calc(100vw - 2 * var(--pad));max-width:100%;min-width:0}.hero h1{font-size:13.8vw;letter-spacing:-.08em;max-width:100%}.desktop-space{display:none}.mobile-break{display:block}.eyebrow-place{display:none}.hero-grid{gap:45px;min-width:0}.hero-grid>*{min-width:0}.hero-intro{width:100%;margin-top:30px;max-width:100%;overflow-wrap:break-word}.hero-cta{align-items:flex-start;flex-direction:column}.hero-foot{margin-top:50px}.section-head{grid-template-columns:1fr;margin-bottom:45px}.project{grid-template-columns:28px 1fr;gap:12px;min-height:auto;padding:28px 0}.project-content{min-height:300px}.project-image,.project-visual{grid-column:1/-1;min-height:240px}.project-meta{margin-bottom:0}.project h3{margin-top:22px}.project-link{margin-top:auto}.about-grid{gap:55px}.personal-facts{grid-template-columns:1fr}.skill-grid{grid-template-columns:1fr;gap:30px}.skill-title{grid-column:auto}.timeline-item{grid-template-columns:1fr}.timeline-mark{position:absolute;right:0;top:30px;width:55px;height:55px}.timeline-main{padding-right:0}.recognition-grid{grid-template-columns:1fr}.credential-list>div{grid-template-columns:80px 1fr}.credential-list span{grid-column:2}.credential-list .webinars span:nth-of-type(2){grid-column:2}.credential-list .webinars p:nth-of-type(2){grid-column:2}.game-board{grid-template-columns:repeat(5,1fr);gap:7px}.details-grid{grid-template-columns:1fr}.contact-email{overflow-wrap:anywhere}.contact-meta{flex-direction:column}.footer-brand{flex-direction:column;gap:20px}footer{grid-template-columns:1fr}.footer-links{grid-template-columns:1fr}.footer-links .mono{grid-row:auto}.footer-end{flex-direction:column;gap:10px}.portrait-wrap{max-width:100%;min-width:0}.portrait-caption{gap:10px}.portrait-caption span{min-width:0}}

/* Personal colour, kept intentional rather than decorative. */
:root{--indigo:#25345f;--coral:#dd6955;--gold:#d9b45b;--night:#101526;--paper-pink:#fbf5ef}
[data-theme="dark"]{--paper-pink:#211a1d}
.status-dot:after{background:var(--coral)}
.portrait-frame{filter:grayscale(.78) sepia(.08)}
.portrait-frame:after{content:"";position:absolute;inset:auto -24% -17% auto;width:160px;height:160px;border-radius:50%;background:var(--coral);mix-blend-mode:multiply;opacity:.35}
.marquee-band{background:var(--indigo)}
.marquee-track i{color:var(--gold)}
.project-image img{filter:grayscale(.18) contrast(1.02)}
.project-image:hover img{filter:grayscale(0);transform:scale(1.035)}
.project-image-featured:after{content:"";position:absolute;inset:0;background:linear-gradient(130deg,transparent 35%,#25345f30);pointer-events:none}
.project-image{display:grid;place-items:center;padding:10px;background:#e7e3dc}
.project-image img{object-fit:contain;transform:none!important}
.project-image:hover img{transform:none!important}
.project-image-featured:after{display:none}
.achievements{background:var(--paper-pink)}
.achievement-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.achievement-card{min-height:380px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);transition:transform .3s,box-shadow .3s}
.achievement-card:hover{transform:translateY(-5px);box-shadow:5px 6px 0 var(--indigo)}
.achievement-card h3{font-size:clamp(26px,3.1vw,46px);line-height:1.02;letter-spacing:-.055em;margin:0 0 15px}
.achievement-card p{max-width:410px;color:var(--muted);font-size:14px}
.achievement-card a{font-size:12px;font-weight:700;border-bottom:1px solid var(--ink);align-self:flex-start;padding-bottom:4px}
.achievement-featured{background:var(--indigo);color:#f7f4ed}.achievement-featured p{color:#d7d9e4}.achievement-featured a{border-color:#f7f4ed}.achievement-orbit{display:block;width:78px;height:78px;border:1px solid var(--gold);border-radius:50%;position:relative;margin:0 0 28px}.achievement-orbit:before,.achievement-orbit:after{content:"";position:absolute;border-radius:50%;background:var(--gold)}.achievement-orbit:before{width:10px;height:10px;right:-5px;top:28px}.achievement-orbit:after{width:4px;height:4px;left:19px;top:9px}.coral-card{background:var(--coral);color:#1b1614}.coral-card p{color:#40241e}.achievement-mark{font:68px var(--serif);color:#fff3df;line-height:.7;align-self:flex-end}.work-modes{display:grid;grid-template-columns:180px 1fr auto;align-items:center;gap:36px;border-bottom:1px solid var(--line);padding:25px 0}.work-modes p{margin:0;font-size:clamp(16px,2vw,25px);line-height:1.35;letter-spacing:-.035em}.work-modes strong{color:var(--indigo)}[data-theme="dark"] .work-modes strong{color:var(--gold)}
.game.dark-section{background:var(--night)}.game.dark-section .section-no,.game.dark-section .game-copy>p,.game.dark-section .game-status{color:#a9b1ce}.game.dark-section h2,.game.dark-section .game-stats b{color:#f5f3ea}.button.light{background:var(--gold);border-color:var(--gold);color:var(--night)}
.celestial-wrap{background:radial-gradient(circle at 15% 15%,#35406f 0,transparent 25%),radial-gradient(circle at 80% 85%,#713d5a 0,transparent 29%),#101526;border-color:#56628b;min-height:435px;padding:0}.game-board{position:absolute;inset:0;display:block}.game-cell{position:absolute;width:44px;height:44px;border:0;background:transparent;cursor:pointer;z-index:3;transform:translate(-50%,-50%);touch-action:manipulation}.game-cell:before{content:"";position:absolute;width:8px;height:8px;left:50%;top:50%;transform:translate(-50%,-50%);background:#eef2ff;border-radius:50%;box-shadow:0 0 11px 2px #d5dcff}.game-cell:after{display:none}.game-cell:hover:before,.game-cell:focus:before{background:var(--gold);box-shadow:0 0 18px 4px #f3cd77}.game-cell.target:before{background:var(--gold);box-shadow:0 0 20px 6px #f3cd77}.game-cell.found:before{background:var(--coral);box-shadow:0 0 16px 4px #ec917f}.game-cell:focus{outline:1px solid #fff;outline-offset:-8px}.constellation-lines{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.constellation-lines line{stroke:var(--gold);stroke-width:1.5;stroke-dasharray:3 4;opacity:.85}.moon{position:absolute;right:10%;top:9%;width:75px;height:75px;border-radius:50%;background:#fff4d4;box-shadow:0 0 45px #fff4d488;z-index:1}.moon:after{content:"";position:absolute;inset:-7px -14px 6px 16px;background:#151a2e;border-radius:50%}.star-map-label{position:absolute;bottom:18px;left:18px;color:#c5cae1;z-index:4}.game-board-wrap:has(.game-board){overflow:hidden}
.detail-card:nth-child(2){background:var(--paper-pink)}
.sakura-row{display:flex;justify-content:space-between;align-items:center;gap:40px;margin:48px 0 0;padding:24px 0;border-top:1px solid #ffffff55}.sakura-row p{max-width:340px;margin:0;color:#d6d8e2;font-size:13px}.sakura-grove{width:210px;height:130px;position:relative;background:transparent;border:0;cursor:pointer;overflow:visible}.sakura-trunk{position:absolute;width:12px;height:98px;background:var(--gold);left:54px;bottom:0;transform:rotate(-12deg);transform-origin:bottom;border-radius:10px}.sakura-trunk:before,.sakura-trunk:after{content:"";position:absolute;height:8px;background:var(--gold);border-radius:10px;transform-origin:left}.sakura-trunk:before{width:77px;top:22px;left:7px;transform:rotate(-31deg)}.sakura-trunk:after{width:62px;top:43px;left:4px;transform:rotate(31deg)}.sakura-crown{position:absolute;width:132px;height:74px;left:38px;top:9px;border-radius:53% 47% 47% 53%;background:radial-gradient(circle at 20% 40%,#ffd9e4 0 10px,transparent 11px),radial-gradient(circle at 42% 20%,#f4a7c2 0 12px,transparent 13px),radial-gradient(circle at 63% 48%,#ffd9e4 0 14px,transparent 15px),radial-gradient(circle at 79% 25%,#f4a7c2 0 10px,transparent 11px),radial-gradient(circle at 45% 67%,#f9bfd2 0 12px,transparent 13px);transition:transform .35s,filter .35s}.sakura-grove:hover .sakura-crown,.sakura-grove.in-bloom .sakura-crown{transform:scale(1.08) rotate(-3deg);filter:drop-shadow(0 0 12px #f5a8c3aa)}.petal{position:absolute;width:9px;height:7px;background:#f6abc7;border-radius:70% 30% 70% 30%;opacity:0;z-index:2}.sakura-grove:hover .petal,.sakura-grove.in-bloom .petal{animation:petal-fall 2.2s ease-in infinite}.p1{left:112px;top:37px;animation-delay:.1s!important}.p2{left:153px;top:28px;animation-delay:.5s!important}.p3{left:88px;top:21px;animation-delay:.9s!important}.p4{left:144px;top:65px;animation-delay:1.3s!important}.p5{left:57px;top:31px;animation-delay:1.7s!important}.p6{left:171px;top:50px;animation-delay:.3s!important}.p7{left:101px;top:61px;animation-delay:1.1s!important}.p8{left:73px;top:54px;animation-delay:1.5s!important}.p9{left:132px;top:16px;animation-delay:1.9s!important}@keyframes petal-fall{0%{opacity:0;transform:translate(0,0) rotate(0)}15%{opacity:1}100%{opacity:0;transform:translate(32px,75px) rotate(200deg)}}.sakura-grove:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.life-highlights{background:var(--bg);border-top:1px solid var(--line)}
.highlight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.life-card{display:grid;grid-template-columns:1.08fr .92fr;min-height:380px;border:1px solid var(--line);background:var(--paper);overflow:hidden;transition:transform .3s,box-shadow .3s}.life-card:hover{transform:translateY(-5px);box-shadow:5px 6px 0 var(--coral)}
.life-image{display:block;background:#ddd1c7;min-height:100%;overflow:hidden}.life-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}.life-card:hover .life-image img{transform:scale(1.03)}
.life-copy{padding:27px;display:flex;flex-direction:column;align-items:flex-start}.life-copy h3{font-size:clamp(25px,2.7vw,42px);line-height:1;letter-spacing:-.055em;margin:34px 0 15px}.life-copy p{font-size:13px;color:var(--muted);margin:0}.life-copy>a{margin-top:auto;font-size:12px;font-weight:700;border-bottom:1px solid var(--ink);padding-bottom:4px}.life-card-wide{grid-column:span 2;grid-template-columns:1.1fr .9fr}.life-card-wide .life-image{max-height:400px}
@media(max-width:960px){.achievement-grid{grid-template-columns:1fr}.achievement-card{min-height:280px}.work-modes{grid-template-columns:1fr;gap:18px}.celestial-wrap{min-height:380px}}
@media(max-width:960px){.highlight-grid{grid-template-columns:1fr}.life-card-wide{grid-column:auto}.life-card{min-height:330px}}
@media(max-width:640px){.celestial-wrap{min-height:330px}.achievement-card{padding:22px}.work-modes{padding:22px 0}.life-card,.life-card-wide{grid-template-columns:1fr}.life-image{min-height:260px;max-height:330px}.life-copy{padding:22px}.life-copy h3{margin-top:26px}.sakura-row{align-items:flex-start;flex-direction:column}.sakura-grove{align-self:flex-end}}
