:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;color:#fff;background:#10141d;--accent:#a6c4ff;--muted:#c0c8d7}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{position:fixed;inset:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #c2d7ff;outline-offset:5px}button{touch-action:manipulation}.room{position:relative;width:100%;height:100dvh;overflow:hidden;isolation:isolate}.scene{position:absolute;left:50%;top:50%;width:100vw;height:100vw;transform:translate(-50%,-50%)}.scene-layer>img,.scene-layer>canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.scene-layer>canvas{pointer-events:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#060a157d 0,transparent 20%)}.header{position:absolute;top:0;left:0;right:0;padding:30px 38px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.header button{pointer-events:auto}.identity{border:0;background:none;text-align:left;padding:0;text-shadow:0 2px 18px #0008}.identity strong{display:block;font-size:26px;letter-spacing:-.8px;font-weight:600}.identity strong span{color:var(--accent)}.identity>span{display:block;font:12px monospace;letter-spacing:1.4px;color:#e4eaf5;margin-top:7px}.header-actions{display:flex;gap:12px;align-items:center}.icon-button{display:grid;place-items:center;background:#0b142855;backdrop-filter:blur(20px);border:1px solid #ffffff50;border-radius:50%;width:42px;height:42px;font-size:17px;transition:background .2s}.icon-button:hover{background:#283c60b3}.contact-button{padding:12px 18px;background:#111b3080;backdrop-filter:blur(20px);border:1px solid #ffffff55;border-radius:30px;font-size:14px}.contact-button span{margin-left:18px}.contact-button:hover{background:#283c60b3}.hotspot{position:absolute;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:calc(var(--w)*1%);height:calc(var(--h)*1%);transform:translate(-50%,-50%);border:1px solid transparent;border-radius:20%;padding:0;background:transparent;z-index:2;transition:background .3s,box-shadow .3s,border-color .3s}.hotspot:hover,.hotspot:focus-visible{background:transparent;border-color:transparent;box-shadow:none;outline:0}.detail-panel{position:fixed;left:auto;right:30px;top:50%;transform:translateY(-50%);margin:0;width:410px;max-width:calc(100vw - 36px);max-height:calc(100dvh - 40px);padding:0;background:#101a2bf2;backdrop-filter:blur(28px);color:#fff;border:1px solid #b6ceff45;border-radius:20px;box-shadow:0 25px 100px #0007;overflow:auto;scrollbar-width:thin;scrollbar-color:#65799b transparent}.detail-panel::backdrop{background:#03071438}.detail-panel[open]{animation:panel-in .25s ease-out}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 23px;border-bottom:1px solid #ffffff19}.panel-top>span{font:12px monospace;letter-spacing:1.3px;color:#bfcee6}.panel-top .icon-button{height:34px;width:34px;font-size:25px}.panel-body{padding:29px 28px 30px}.panel-kicker{font:12px monospace;letter-spacing:1.7px;color:#a9c7ff;margin:0 0 15px}.panel-body h2{font-size:38px;line-height:1.1;letter-spacing:-1.5px;font-weight:500;margin:0 0 20px}.panel-description{font-size:17px;line-height:1.65;color:#e1e6ef;margin:0 0 24px}.facts{display:grid;gap:0;margin:0 0 26px}.facts div{padding:13px 0;border-top:1px solid #ffffff1c}.facts dt{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#8fa7cf;margin-bottom:7px}.facts dd{font-size:14px;line-height:1.6;color:#d1dbea;margin:0}.panel-link{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px;background:#dbe8ff;color:#17233b;padding:14px 16px;border-radius:8px}.panel-link:hover{background:white}.secondary-link{display:block;font-size:14px;color:#abcaff;margin-top:18px}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:26px}.tags span{font-size:12px;border:1px solid #92b4ea40;border-radius:5px;padding:7px 10px;color:#bfd0eb}.panel-bottom{display:flex;align-items:center;justify-content:space-between;padding:16px 23px;border-top:1px solid #ffffff19;gap:20px}.panel-bottom button{width:35px;height:32px;background:transparent;border:0;border-radius:5px;font-size:22px}.panel-bottom button:hover{background:#ffffff15}.panel-bottom span{font:12px monospace;color:#aabbd7}.no-js{position:fixed;top:45%;left:15%;right:15%;background:#111e33;padding:25px;text-align:center}.no-js a{text-decoration:underline}@keyframes panel-in{from{opacity:0;translate:14px 0}to{opacity:1;translate:0 0}}@media(min-width:1800px){.header{padding:40px 50px}.detail-panel{right:50px;width:450px}}@media(max-width:700px){.header{padding:20px 18px}.identity strong{font-size:22px}.identity>span{font-size:12px;letter-spacing:.1px;max-width:160px;line-height:1.5}.header-actions{gap:8px}.contact-button{padding:11px 13px;font-size:13px}.contact-button span{margin-left:5px}.icon-button{width:36px;height:36px}.detail-panel{right:18px;width:calc(100vw - 36px);max-height:calc(100dvh - 36px)}.panel-body{padding:22px}.panel-body h2{font-size:33px}.panel-description{font-size:16px}.panel-top{padding:16px 20px}.panel-bottom{padding:12px 20px}}@media(max-height:620px){.header{padding:16px 22px}.panel-body{padding:18px 23px}.panel-top{padding:12px 20px}.panel-body h2{font-size:30px;margin-bottom:14px}.panel-description{font-size:15px;margin-bottom:18px}.facts div{padding:9px 0}.panel-bottom{padding:10px 20px}.identity>span{display:none}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.project-art{display:flex;gap:18px;align-items:center;margin:0 0 22px}.project-art img{width:108px;height:108px;object-fit:cover;border-radius:18px}.project-art strong{font-size:22px;display:block;margin-bottom:9px;letter-spacing:-.5px}.project-art span{display:block;font-size:14px;line-height:1.6;color:#b7c9dd}.hotspot[hidden]{display:none}
@media(max-height:700px){.project-art img{width:75px;height:75px}.project-art{margin-bottom:16px}.project-art strong{font-size:19px}.project-art span{font-size:12px}}

.project-logo{display:block;max-width:100%;width:215px;height:110px;object-fit:contain;object-position:left center;margin:0 0 24px}.project-logo.golf-logo{width:185px;}
.project-logo.golf-logo{background:#fff;border-radius:10px;padding:10px;width:185px;height:124px}
.background-layer{transition:filter .8s}.night-mode .background-layer{filter:brightness(.22) saturate(.7)}.secret-object{border:0}.egg-toast{position:fixed;z-index:8;left:50%;top:105px;transform:translateX(-50%);padding:14px 20px;max-width:calc(100vw - 40px);background:#102332ed;border:1px solid #a4c8ea55;border-radius:10px;box-shadow:0 6px 28px #0005;font-size:14px;text-align:center;line-height:1.6}.play-panel,.terminal-panel{border:1px solid #b6ceff45;border-radius:18px;background:#101a2bf5;color:white;padding:24px;width:760px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px);overflow:auto;box-shadow:0 20px 90px #0008}.play-panel::backdrop,.terminal-panel::backdrop{background:#03071480}.play-panel header,.terminal-panel header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.play-panel h2{font-size:30px;font-weight:500;letter-spacing:-1px;margin:7px 0 0}.play-panel .panel-kicker{font-size:12px}.game-meta{display:flex;justify-content:space-between;gap:12px;font:14px monospace;color:#bcd2db;margin-bottom:15px}#golf-course{width:100%;height:auto;max-height:43dvh;object-fit:contain;border-radius:10px;background:#112431;display:block}.game-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:22px;align-items:center;margin-top:22px}.game-controls label{font-size:14px;display:block}.game-controls output{float:right;color:#a9ddc2}.game-controls input{width:100%;accent-color:#49d69c;margin-top:12px}.game-controls button{border:0;min-width:115px}.game-controls button:disabled{opacity:.55;cursor:wait}.game-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:15px}.game-bottom p{font-size:14px;color:#b6dec9;line-height:1.5;margin:0}.game-bottom button{font-size:14px;background:transparent;border:1px solid #678074;border-radius:5px;padding:8px 12px}.game-tip{font:12px monospace;color:#a3b4c4;margin:17px 0 0}.terminal-panel{width:580px;font-family:monospace}.terminal-panel header{font-size:14px;color:#a3d7ba;border-bottom:1px solid #496758;padding-bottom:15px}.terminal-panel header .icon-button{width:32px;height:32px}.terminal-panel #terminal-output{height:260px;max-height:43dvh;overflow:auto;font-size:14px;line-height:1.7;white-space:pre-wrap;color:#b9efcc}.terminal-panel p{margin:0 0 12px}.terminal-panel form{display:flex;gap:12px;border-top:1px solid #486053;padding-top:17px;margin-top:15px}.terminal-panel input{font:16px monospace;min-width:0;width:100%;background:transparent;border:0;color:white;outline:none}.terminal-panel form button{border:0;background:transparent;font-size:20px;color:#93ddb1}.rain-panel{padding:0;margin:0;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:#05100aed;color:#a0ffba;overflow:hidden}.rain-panel canvas{width:100%;height:100%;position:absolute;inset:0}.rain-panel>div{position:absolute;bottom:35px;left:20px;right:20px;display:flex;align-items:center;justify-content:center;gap:25px;font:14px monospace}.rain-panel .contact-button{color:#c2ffd2}@media(max-width:700px){.play-panel,.terminal-panel{padding:18px}.play-panel h2{font-size:24px}.play-panel .panel-kicker{font-size:12px;letter-spacing:.5px}.game-controls{gap:14px;grid-template-columns:1fr 1fr}.game-controls button{grid-column:1/-1;justify-content:center}.game-meta{font-size:12px}.game-tip{display:none}.game-bottom{gap:12px}.game-bottom p{font-size:12px}.rain-panel>div{flex-direction:column}.egg-toast{top:110px;width:max-content}}@media(max-height:600px){.play-panel{padding:15px}#golf-course{max-height:35dvh}.play-panel header{margin-bottom:10px}.game-controls{margin-top:12px;grid-template-columns:1fr 1fr auto}.game-controls button{grid-column:auto}.game-bottom{margin-top:10px}.game-tip{display:none}.egg-toast{top:75px}.play-panel h2{font-size:23px}}
/* The phone is a separate mobile presentation of the same portfolio actions. */
.icon-definitions{position:absolute;width:0;height:0;overflow:hidden}.mobile-experience,.mobile-dismiss{display:none}.app-glyph{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:700px){
 .room>.scene,.room>.vignette,.room>.header,.room>
 .mobile-experience{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;background:radial-gradient(ellipse at 10% 20%,#253b58,transparent 65%),radial-gradient(ellipse at 90% 80%,#172d3e,transparent 65%),#091019}
 .phone-shell{width:100%;max-width:420px;height:100%;max-height:900px;position:relative;isolation:isolate;border:7px solid #080a10;border-radius:48px;box-shadow:0 0 0 1px #626b7955,0 0 0 3px #121824,0 22px 65px #000b;overflow:hidden;background:#161b4a}
 .phone-screen{height:100%;position:relative;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at 105% 90%,#48afb9 0,transparent 47%),radial-gradient(ellipse at 15% 75%,#6b56ad 0,transparent 52%),radial-gradient(ellipse at 25% 5%,#334c9a 0,transparent 60%),linear-gradient(155deg,#172849 15%,#222453 65%,#345c7a);transition:background .5s}
 .phone-screen::before{content:"";position:absolute;inset:30% -50% -30% -20%;border:1px solid #ffffff14;border-radius:50%;transform:rotate(-35deg);pointer-events:none}
 .phone-status{height:53px;min-height:53px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:relative;font-size:14px;font-weight:600;letter-spacing:-.3px}
 .dynamic-island{position:absolute;width:100px;height:27px;background:#05070c;border-radius:22px;left:50%;top:10px;transform:translateX(-50%);box-shadow:inset 0 0 0 1px #000}
 .status-icons{display:flex;align-items:center;gap:6px}.signal-bars{font-size:12px;letter-spacing:-2px;line-height:1}.status-icons .app-glyph{width:16px;height:16px;stroke-width:2.6}.battery{height:10px;width:21px;border:1px solid #ffffffe0;border-radius:3px;position:relative;padding:1px;display:block}.battery::after{content:"";position:absolute;right:-3px;top:2px;width:2px;height:4px;background:#fff9;border-radius:1px}.battery i{display:block;width:80%;height:100%;background:#fff;border-radius:1px}
 .phone-home{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:14px;flex:1;min-height:0;padding:5px 18px 12px}
 .phone-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:#d2def4;letter-spacing:.3px;padding:0 2px;min-height:16px}.phone-intro>span:first-child{font-weight:700;letter-spacing:1px;color:#fff}
 .profile-widget{display:flex;align-items:center;gap:15px;text-align:left;border:1px solid #ffffff3a;border-radius:23px;padding:17px 15px;background:linear-gradient(130deg,#ffffff22,#ffffff0a);backdrop-filter:blur(20px);box-shadow:0 12px 25px #07162b20;min-height:117px;width:100%}.profile-widget:hover{background:#ffffff25}
 .profile-photo{position:relative;display:block;width:72px;height:72px;flex:0 0 72px;overflow:hidden;border-radius:50%;background:#a9c1ea;box-shadow:0 0 0 3px #fff2}.profile-photo img{position:absolute;left:-30%;top:-7%;width:160%;max-width:none;height:auto}
 .profile-copy{display:block;min-width:0}.profile-hello{display:block;font-size:12px;letter-spacing:.8px;color:#c5d5f0;line-height:1.5}.profile-copy h1{font-size:27px;font-weight:650;letter-spacing:-1px;line-height:1.05;margin:5px 0 7px;white-space:nowrap}.profile-copy h1>span{color:#9fbdff}.profile-role{display:block;font-size:12px;letter-spacing:-.1px;color:#f0f3ff;line-height:1.5}.profile-location{display:block;font-size:12px;color:#c2d2ed;margin-top:5px}.profile-location>span{float:right;color:#fff}
 .phone-widgets{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mini-widget{text-align:left;border:1px solid #ffffff27;padding:13px 13px 12px;border-radius:20px;min-height:130px;display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden;box-shadow:0 6px 15px #0001}.mini-widget .app-glyph{width:20px;height:20px;color:#bccdff;margin-bottom:11px}.work-widget{background:linear-gradient(145deg,#17223de6,#242547cf)}.labs-widget{background:linear-gradient(145deg,#633244c9,#43294bc9)}.widget-caption{display:block;font-size:12px;letter-spacing:1.2px;color:#afbeda;margin-bottom:7px}.mini-widget strong{font-size:17px;letter-spacing:-.45px;line-height:1.15;font-weight:600}.widget-detail{display:block;font-size:12px;letter-spacing:-.1px;color:#c4c8df;line-height:1.4;margin-top:9px}.widget-brand{font-weight:700;font-size:18px;letter-spacing:-1px;line-height:20px;margin-bottom:11px}.widget-brand>span{font-weight:400;color:#ff839d;margin-left:3px}.mini-widget:hover{border-color:#ffffff70}
 .phone-app-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));row-gap:18px;column-gap:10px;padding:2px 0}.phone-app{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0;background:transparent;border:0;padding:0;text-align:center;position:relative;color:#fff}.app-tile{display:grid;place-items:center;width:58px;height:58px;max-width:100%;border-radius:15px;border:1px solid #ffffff25;box-shadow:0 5px 10px #06142c25,inset 0 1px 1px #ffffff25;overflow:hidden;transition:transform .15s,box-shadow .15s}.phone-app:active .app-tile{transform:scale(.91)}.phone-app:hover .app-tile{box-shadow:0 7px 20px #0003,inset 0 1px 1px #fff5}.app-tile>img{display:block;width:90%;height:90%;object-fit:contain}.app-name{font-size:12px;line-height:1.2;white-space:nowrap;text-shadow:0 1px 8px #0005;letter-spacing:-.1px}.tile-golf{background:linear-gradient(150deg,#effff6,#ceecd8)}.tile-labs{background:linear-gradient(135deg,#331828,#160e1e)}.tile-labs img{width:90%;height:80%}.tile-cv{background:linear-gradient(145deg,#f9fafc,#d0dcf2);color:#31578e}.tile-work{background:linear-gradient(145deg,#3680e8,#254cbe)}.tile-terminal{background:linear-gradient(145deg,#203331,#07120f);color:#84f8bb}.tile-game{background:linear-gradient(145deg,#54cda3,#19866c);color:#fff}.tile-books{background:linear-gradient(145deg,#ffba6c,#e46f37)}.tile-lights{background:linear-gradient(145deg,#575483,#24254d);color:#f8dc97}.tile-chat{background:linear-gradient(145deg,#60dca2,#23ab77)}.tile-browser{background:linear-gradient(145deg,#71c3ff,#3579db)}.tile-discover{background:linear-gradient(145deg,#d48bf9,#9060d6)}
 .phone-hint{text-align:center;font-size:12px;line-height:1.3;margin:0;color:#d3d6eb}.phone-hint>span{margin-right:4px;color:#fff}
 .phone-dock{position:relative;display:flex;align-items:center;justify-content:space-evenly;margin:0 15px;padding:12px 10px 10px;border:1px solid #ffffff30;border-radius:27px;background:#e9efff28;backdrop-filter:blur(25px);box-shadow:inset 0 1px 1px #ffffff10;flex-shrink:0}.phone-dock .phone-app{min-width:67px;gap:6px}.phone-dock .app-tile{width:49px;height:49px;border-radius:14px}.phone-dock .app-glyph{width:27px;height:27px}.phone-dock .app-name{font-size:12px}.phone-home-indicator{height:21px;min-height:21px;display:grid;place-items:center}.phone-home-indicator::before{content:"";width:95px;height:4px;border-radius:4px;background:#f4f6ff}
 .night-mode .phone-screen{background:radial-gradient(ellipse at 90% 95%,#253e66,transparent 60%),radial-gradient(ellipse at 20% 50%,#332c53,transparent 60%),#0c1327}.night-mode .tile-lights{background:linear-gradient(145deg,#f9ca6b,#dc9651);color:#2f2443}
 .detail-panel,.play-panel,.terminal-panel,.rain-panel{position:fixed;inset:73px max(20px,calc((100vw - 406px)/2)) 30px;margin:0;width:auto;max-width:none;height:auto;max-height:none;transform:none;border:1px solid #b6ceff30;border-radius:29px;background:#121d32fa;box-shadow:0 15px 70px #0005;overflow:auto;scrollbar-width:none;animation:phone-app-open .2s ease-out}
 .detail-panel::backdrop,.play-panel::backdrop,.terminal-panel::backdrop,.rain-panel::backdrop{background:#080e2028}
 .detail-panel .panel-top{padding:18px 19px 14px}.detail-panel .panel-top>span{font-size:12px;letter-spacing:1px}.detail-panel .panel-body{padding:24px 23px}.detail-panel .panel-body h2{font-size:34px}.detail-panel .panel-description{font-size:16px}.detail-panel .panel-bottom{padding:11px 20px}.detail-panel .panel-kicker{font-size:12px}.mobile-dismiss{display:grid;place-items:center;position:sticky;bottom:0;z-index:2;border:0;width:100%;height:34px;margin:0;padding:15px;background:#121d32;flex-shrink:0}.mobile-dismiss span{display:block;width:100px;height:4px;border-radius:5px;background:#edf4ff}.mobile-dismiss:focus-visible{outline-offset:-5px}.play-panel .mobile-dismiss,.terminal-panel .mobile-dismiss{margin-top:20px}.rain-panel .mobile-dismiss{position:absolute;bottom:0;left:0}.rain-panel>div{bottom:60px;gap:18px;text-align:center;line-height:1.6}.rain-panel canvas{height:100%;width:100%}.terminal-panel #terminal-output{height:calc(100dvh - 290px);max-height:none;min-height:100px}.terminal-panel .mobile-dismiss{margin-top:15px}.terminal-panel input{font-size:16px}.egg-toast{top:90px;z-index:8;max-width:calc(100vw - 65px);font-size:13px;padding:12px 16px}
 .phone-home button:focus-visible,.phone-dock a:focus-visible,.phone-dock button:focus-visible{outline:2px solid white;outline-offset:4px;border-radius:15px}
}
@keyframes phone-app-open{from{opacity:0;scale:.97;translate:0 8px}to{opacity:1;scale:1;translate:0 0}}
@media(max-width:700px) and (max-height:760px){
 .phone-status{height:46px;min-height:46px}.dynamic-island{height:25px;top:8px;width:90px}.phone-home{gap:10px;padding-top:3px;padding-bottom:10px}.profile-widget{min-height:98px;padding:13px;gap:12px}.profile-photo{width:61px;height:61px;flex-basis:61px}.profile-copy h1{font-size:25px}.profile-hello{font-size:12px;letter-spacing:.4px}.mini-widget{min-height:107px;padding:11px 12px}.mini-widget .app-glyph,.widget-brand{margin-bottom:7px}.mini-widget strong{font-size:15px}.widget-detail{font-size:12px;margin-top:7px}.widget-caption{font-size:12px;margin-bottom:5px}.phone-app-grid{row-gap:13px}.app-tile{width:51px;height:51px;border-radius:14px}.app-tile .app-glyph{width:27px;height:27px}.phone-hint{display:none}.phone-dock{padding:10px 8px 9px}.phone-dock .app-tile{width:44px;height:44px;border-radius:12px}.phone-home-indicator{height:18px;min-height:18px}
}
@media(max-width:700px) and (max-height:640px){
 .phone-widgets{display:none}.phone-status{height:44px;min-height:44px}.profile-widget{min-height:95px}.phone-home{padding:6px 18px 17px;gap:12px}.phone-app-grid{row-gap:20px}.app-tile{width:55px;height:55px}.profile-photo{width:62px;height:62px;flex-basis:62px}.phone-home-indicator{height:17px;min-height:17px}
}
@media(max-width:360px){
 .mobile-experience{padding:9px}.phone-shell{border-width:6px;border-radius:41px}.phone-home{padding-left:14px;padding-right:14px}.phone-status{padding-left:21px;padding-right:21px}.profile-widget{gap:10px;padding:12px}.profile-copy h1{font-size:23px}.profile-hello{font-size:12px;letter-spacing:.1px}.profile-role,.profile-location{font-size:12px}.profile-photo{width:55px;height:55px;flex-basis:55px}.app-name{font-size:12px}.phone-app-grid{column-gap:8px}.app-tile{width:50px;height:50px}.phone-dock{margin:0 11px}.phone-dock .phone-app{min-width:59px}.status-icons{gap:4px}.dynamic-island{width:83px}.phone-intro{font-size:12px}.detail-panel,.play-panel,.terminal-panel,.rain-panel{left:15px;right:15px;top:64px;bottom:25px}
}

/* Quiet discovery, with a visible focus treatment for keyboard navigation. */
.hotspot{cursor:pointer}.hotspot:focus-visible{outline:2px solid #c2d7ff;outline-offset:4px}
.cv-heading{font-size:19px;font-weight:500;margin:24px 0 13px}
.desk-remote{position:absolute;z-index:3;left:calc(var(--x)*1%);top:calc(var(--y)*1%);width:6.8%;height:5.2%;transform:translate(-50%,-50%);cursor:pointer;background:none;border:0;padding:0;display:grid;place-items:center}
.desk-remote img{position:absolute;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(1px 2px 1.5px #35231680)}
.room:has(dialog[open]) .desk-remote{pointer-events:none}
@media(max-width:700px){.tile-lights{border-color:var(--neon-colour,#ffffff25)}.phone-screen{box-shadow:inset 0 -45px 85px -45px var(--neon-colour,transparent)}}

#scene-transition{opacity:0;pointer-events:none;will-change:opacity}

.scene-layer{position:absolute;inset:0;pointer-events:none}.scene-layer button,.scene-layer a{pointer-events:auto}
.background-layer{transform:none}
.avatar-layer{filter:drop-shadow(0 10px 14px #0002)}

/* A compact nine-hole course, with the playing surface taking priority. */
#golf-game{width:980px;padding:24px;background:#102c25;border-color:#a4cbb43d;border-radius:22px;scrollbar-color:#628574 #102c25}
#golf-game .golf-header{margin-bottom:20px}#golf-game h2{font-size:30px;letter-spacing:-1px;font-weight:500}#golf-game .panel-kicker{color:#b4cfab;font-size:11px;letter-spacing:1.8px}
.golf-dashboard{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.golf-stat-label{display:block;font:10px monospace;letter-spacing:1.7px;color:#9ebbaf;margin-bottom:7px}#hole-name{font-size:17px;font-weight:500;letter-spacing:-.2px}.golf-stats{display:flex;gap:26px}.golf-stats>span{display:flex;flex-direction:column;align-items:center;gap:5px}.golf-stats small{font-size:9px;letter-spacing:1.3px;color:#9ebbaf}.golf-stats b{font-size:23px;font-weight:500;font-variant-numeric:tabular-nums}
.golf-stage{position:relative}#golf-course{width:100%;height:auto;max-height:none;object-fit:fill;border-radius:12px;touch-action:none;cursor:crosshair;outline-offset:-3px}
.golf-scorecard{display:grid;grid-template-columns:repeat(9,1fr);border:1px solid #dcefc821;border-radius:9px;margin:14px 0 0;overflow:hidden}.score-cell{text-align:center;padding:8px 2px;border-right:1px solid #dcefc817;display:grid;gap:3px;color:#89a594}.score-cell:last-child{border:0}.score-cell>span{font:11px monospace}.score-cell>strong{font-size:18px;font-weight:500;line-height:1}.score-cell>small{font-size:8px;letter-spacing:.5px}.score-cell.current{background:#d4e6b5;color:#183b2d}.score-cell.played:not(.current){color:#ebf1d5;background:#ffffff05}
#golf-game .game-controls{grid-template-columns:1fr 1fr 160px;gap:24px;margin-top:18px;align-items:end}#golf-game .game-controls label{font-size:14px;color:#c9dfce}#golf-game input{accent-color:#d9edb5}#golf-game .panel-link{background:#e5eccb;color:#1a392c;border:0;min-height:43px;font-weight:600}#golf-game .panel-link:hover{background:#f3f8df}#golf-game .panel-link:disabled{opacity:.5;cursor:wait}#golf-game .game-bottom{align-items:center;gap:16px;margin-top:12px}#golf-status{font-size:13px;line-height:1.45;color:#d0dfc9;margin:0}#restart-hole{font-size:12px;white-space:nowrap;color:#aac4b4}#golf-game .game-tip{color:#8da99a;font-size:11px;line-height:1.5;margin-bottom:0}
.hole-result{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:24px;background:#06271ecc;backdrop-filter:blur(5px);border-radius:12px;text-align:center;pointer-events:none}.hole-result[hidden]{display:none}.hole-result>span{color:#bcd7a5;font:11px monospace;letter-spacing:2px}.hole-result>strong{font-size:clamp(25px,4vw,48px);font-weight:500;letter-spacing:-1.5px;margin:14px 0 0}.hole-result>p{color:#d3e4ce;font-size:15px;line-height:1.6}
@media(min-width:701px){#golf-game{width:min(980px,calc((100dvh - 350px)*1.73 + 48px));min-width:min(630px,calc(100vw - 28px))}}
@media(max-width:700px){#golf-game{width:auto;border-radius:30px;padding:17px;overflow:auto}#golf-game .golf-header{margin-bottom:17px}#golf-game h2{font-size:25px}#golf-game .panel-kicker{font-size:9px;letter-spacing:.8px}.golf-dashboard{gap:7px;align-items:start}.golf-stat-label{font-size:9px}#hole-name{font-size:13px;display:block;max-width:140px;line-height:1.45}.golf-stats{gap:11px}.golf-stats small{font-size:8px;letter-spacing:.4px}.golf-stats b{font-size:19px}.golf-scorecard{margin-top:11px}.score-cell{padding:7px 1px}.score-cell>strong{font-size:16px}.score-cell>small{font-size:7px}.score-cell>span{font-size:10px}#golf-game .game-controls{grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}#golf-game .game-controls button{grid-column:1/-1;justify-content:center;min-height:44px}#golf-game .game-bottom{align-items:start;gap:10px}#golf-status{font-size:12px}#golf-game .game-tip{font-size:10px}.hole-result{padding:12px}.hole-result>span{font-size:9px}.hole-result>strong{font-size:25px;margin-top:8px}.hole-result>p{font-size:12px;margin:7px 0 0}}

#avatar-night{opacity:0;pointer-events:none;transition:opacity .8s ease-in-out}.night-mode #avatar-night{opacity:1}

/* A responsive room, with a proportionally sized, static foreground. */
#room-background,#scene-transition{display:none}#room-frame-transition{opacity:0;pointer-events:none;will-change:opacity}

#desk-effects{pointer-events:none}#desk-effects[hidden]{display:none}
.mug-shadow{position:absolute;left:18.8%;top:94.1%;width:9.2%;height:1.7%;background:radial-gradient(ellipse,#23150966,transparent 68%);pointer-events:none}
