:root{--room-accent:#2f5b77;color-scheme:dark;--bg:#292c30;--panel:#172a40;--ink:#e7edf4;--muted:#b2b8bf;--edge:#15191e;--line:#4a5056;--grass:#76a8cc;--gold:#f4d45e;--blue:#77b8df;--orange:#f28b4c;--cursor-tint:rgba(94, 151, 189, .11);--cursor-dot:rgba(183, 216, 235, .55);--body-font:'Trebuchet MS', 'Noto Sans SC', Arial, sans-serif;--pixel-font:'Courier New', Consolas, monospace}:root[data-room-mode=profile]{--room-accent:#a68bd6}:root[data-room-mode=writing]{--room-accent:#6db3e5}:root[data-room-mode=moods]{--room-accent:#ef9568}:root[data-room-mode=music]{--room-accent:#df81aa}:root[data-room-mode=github]{--room-accent:#70bf87}:root[data-theme=light]{color-scheme:light;--bg:#e6eef3;--panel:#f5f7f6;--ink:#25394b;--muted:#5a7185;--edge:#293d50;--line:#8eabba;--grass:#367ca6;--gold:#c18418;--blue:#236f98;--orange:#b8582a;--cursor-tint:rgba(53, 112, 151, .09);--cursor-dot:rgba(52, 102, 137, .42)}@view-transition{navigation: auto; }::view-transition-old(root){animation:page-leave .16s ease both}::view-transition-new(root){animation:page-arrive .32s cubic-bezier(.2,.75,.25,1)both}@keyframes page-leave{to{opacity:.35;filter:blur(2px)}}@keyframes page-arrive{from{opacity:0;filter:blur(2px);transform:translateY(7px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;color:var(--ink);background-color:var(--bg);background-image:radial-gradient(circle 78px at var(--cursor-x,-600px) var(--cursor-y,-600px),var(--cursor-tint),transparent 100%),linear-gradient(90deg,transparent 95%,color-mix(in srgb,var(--line) 16%,transparent) 96%),linear-gradient(transparent 95%,color-mix(in srgb,var(--line) 16%,transparent) 96%);background-size:auto,24px 24px,24px 24px;background-attachment:fixed;font:16px/1.65 var(--body-font);transition:color .42s ease,background-color .42s ease}body::before{position:fixed;z-index:0;inset:0;content:'';opacity:.62;pointer-events:none;background-image:radial-gradient(circle,var(--cursor-dot) 1px,transparent 1.55px);background-size:18px 18px;-webkit-mask-image:radial-gradient(circle 60px at var(--cursor-x,-600px) var(--cursor-y,-600px),#000 0%,transparent 100%);mask-image:radial-gradient(circle 60px at var(--cursor-x,-600px) var(--cursor-y,-600px),#000 0%,transparent 100%)}body::after{position:fixed;z-index:20;inset:0;content:'';opacity:0;pointer-events:none;background:radial-gradient(circle at 67% 48%,color-mix(in srgb,var(--gold) 24%,transparent),transparent 58%)}body.theme-shift::after{animation:theme-glimmer .52s ease-out both}@keyframes theme-glimmer{0%{opacity:0}28%{opacity:1}100%{opacity:0}}a{color:inherit}a{transition:color .18s ease}a:hover{color:var(--gold)}button,input{color:inherit;font:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:3px}::selection{color:#102016;background:var(--gold)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;z-index:20;top:-5rem;left:1rem;padding:.5rem .8rem;border:3px solid var(--edge);background:var(--gold);color:#152319;font:700 .8rem var(--pixel-font)}.skip-link:focus{top:1rem}.home-shell{width:min(calc(100% - 4rem),1460px);min-height:100svh;margin:0 auto;display:grid;grid-template-columns:minmax(0,.88fr)minmax(0,1.12fr);grid-template-rows:auto 1fr auto;column-gap:clamp(2.5rem,5vw,6rem)}.home-tools{grid-column:1;grid-row:1;display:flex;align-items:center;gap:.8rem;padding-top:1.5rem}.tool-button{display:inline-flex;align-items:center;gap:.38rem;min-height:34px;padding:.18rem .42rem;border:1px solid transparent;border-radius:5px;background:0 0;color:var(--muted);cursor:pointer;transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .12s ease}.tool-button:hover,.tool-button:focus-visible{border-color:#425364;background:#111923;color:var(--ink);box-shadow:0 0 0 3px rgb(105 184 223/12%)}.tool-button:active{transform:scale(.97)}.tool-button:hover kbd,.tool-button:focus-visible kbd{border-color:#465666;background:#253443;color:#e7edf4}.tool-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square}kbd{padding:.12rem .35rem;border:2px solid var(--line);background:var(--panel);color:var(--muted);font:10px var(--pixel-font);box-shadow:2px 2px 0 var(--edge)}.home-copy{grid-column:1;grid-row:2;align-self:center;padding:2rem 0}.eyebrow,.room-kicker{margin:0 0 1rem;color:var(--grass);font:700 .7rem/1.5 var(--pixel-font);letter-spacing:.08em;text-transform:uppercase}.intro-copy{max-width:600px;font-size:clamp(1.2rem,2vw,1.75rem);line-height:1.65}.intro-copy p{margin:0 0 1.4rem}.intro-copy strong{color:var(--ink)}.copy-muted{color:var(--muted)}.inline-switch{display:inline-block;appearance:none;padding:.04em .16em;margin-inline:.035em;border:2px solid var(--edge);color:#122016;font:inherit;font-size:.96em;font-weight:800;line-height:1.18;letter-spacing:-.015em;vertical-align:-.06em;-webkit-text-stroke:.2px currentColor;cursor:pointer;box-shadow:3px 3px 0 var(--edge);transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,filter .2s ease}.inline-switch:hover,.inline-switch[aria-pressed=true]{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--edge)}.highlight-purple{background:#a68bd6}.highlight-blue{background:#6db3e5}.highlight-orange{background:#ef9568}.highlight-pink{background:#df81aa}.highlight-green{background:#70bf87}.home-links{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1.8rem}.home-links a,.text-link,.room-action{display:inline-block;padding:.45rem .65rem;border:2px solid var(--edge);background:var(--panel);color:var(--ink);font:700 .7rem var(--pixel-font);text-decoration:none;box-shadow:3px 3px 0 var(--edge);transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease,color .2s ease,background-color .42s ease,border-color .42s ease}.home-links a:hover,.text-link:hover,.room-action:hover{transform:translate(-2px,-2px);color:var(--ink);box-shadow:5px 5px 0 var(--edge)}.map-back{margin-bottom:1.2rem}.home-location{display:flex;align-items:center;gap:.55rem;margin:1.5rem 0 0;color:var(--muted);font:.7rem var(--pixel-font)}.location-dot{width:8px;height:8px;background:var(--grass);box-shadow:0 0 0 3px #65bd5333}.search-dialog{position:fixed;inset:50% auto auto 50%;display:none;flex-direction:column;width:min(570px,calc(100vw - 2rem));max-height:min(690px,calc(100dvh - 2rem));margin:0;padding:0;overflow:hidden;transform:translate(-50%,-50%);border:4px solid #101820;background:var(--panel);color:var(--ink);box-shadow:7px 7px #080d13,0 24px 70px #0009}.search-dialog[open]{display:flex;animation:search-arrive .18s cubic-bezier(.2,.8,.2,1)both}.search-dialog::backdrop{background:rgb(5 10 16/.72);backdrop-filter:blur(4px)}@keyframes search-arrive{from{opacity:0;transform:translate(-50%,-48%)scale(.985)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.search-head{display:flex;align-items:center;gap:.7rem;min-height:56px;padding:.45rem .7rem;border-bottom:3px solid #111923;background:color-mix(in srgb,var(--panel) 88%,#09131e)}.search-head>svg{flex:0 0 20px;width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:square}.search-head input{flex:1;min-width:0;padding:.45rem 0;border:0;outline:0;background:0 0;color:var(--ink);font:500 .92rem var(--body-font)}.search-head input::placeholder{color:#8d9aa6;opacity:1}.search-close{display:grid;flex:0 0 30px;width:30px;height:30px;place-items:center;padding:0;border:2px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer;font:1.3rem/1 var(--body-font)}.search-close:hover{border-color:var(--blue);color:var(--ink)}.search-scroll{overflow:auto;padding:.25rem .45rem .65rem;scrollbar-color:var(--line)transparent;scrollbar-width:thin;overscroll-behavior:contain}.search-group{padding-top:.55rem}.search-group[hidden]{display:none}.search-group h3{margin:0;padding:.3rem .4rem .35rem;color:var(--grass);font:700 .59rem var(--pixel-font);letter-spacing:.07em;text-transform:uppercase}.search-options{display:grid;gap:2px;padding:0;margin:0;list-style:none}.search-option{display:flex;align-items:center;gap:.65rem;min-height:44px;padding:.35rem .5rem;border:2px solid transparent;color:var(--ink);text-decoration:none;transition:background-color .14s ease,border-color .14s ease}.search-option[hidden]{display:none}.search-option:hover,.search-option:focus-visible{border-color:color-mix(in srgb,var(--blue) 48%,var(--line));outline:0;background:#293d50;color:var(--ink)}.search-glyph{display:grid;flex:0 0 25px;width:25px;height:25px;place-items:center;border:2px solid #101820;background:#334a5f;color:#e7edf4;font:700 .72rem var(--pixel-font)}.glyph-profile{background:#a68bd6;color:#201832}.glyph-writing{background:#6db3e5;color:#142432}.glyph-moods{background:#ef9568;color:#301c14}.glyph-music{background:#df81aa;color:#2c1722}.glyph-github{background:#70bf87;color:#14251a}.search-option-copy{display:grid;flex:1;min-width:0;gap:.12rem;line-height:1.25}.search-option-copy strong{overflow:hidden;font-size:.78rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.search-option-copy small{overflow:hidden;color:#b2bdc7;font-size:.63rem;text-overflow:ellipsis;white-space:nowrap}.search-option kbd,.search-footer kbd{padding:.12rem .3rem;border:1px solid #485460;border-radius:2px;background:#202a33;color:#c0c7ce;font:.55rem var(--pixel-font);box-shadow:none}.search-option time{color:#b2bdc7;font:.55rem var(--pixel-font);white-space:nowrap}.search-external{color:var(--muted);font:.85rem var(--pixel-font)}.search-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.7rem;padding:.55rem .75rem;border-top:2px solid #111923;background:#121e2a;color:#aeb8c2;font:.55rem var(--pixel-font)}.search-footer span{display:flex;align-items:center;gap:.28rem}.search-empty{padding:.7rem .5rem;margin:0;color:var(--muted);font-size:.76rem}.interactive-stage{grid-column:2;grid-row:1/4;align-self:center;display:flex;justify-content:center;width:100%;padding:1rem 0 1.6rem}.interactive-window{position:relative;width:min(100%,656px);aspect-ratio:4/5;overflow:hidden;border:7px solid color-mix(in srgb,var(--edge) 78%,var(--room-accent));background:var(--room-accent);box-shadow:9px 9px color-mix(in srgb,var(--edge) 78%,var(--room-accent)),13px 13px color-mix(in srgb,var(--line) 72%,var(--room-accent));image-rendering:pixelated;transition:background-color .48s ease,border-color .48s ease,box-shadow .48s ease}.window-tabs{position:absolute;z-index:12;top:0;right:0;left:0;display:flex;align-items:center;gap:.2rem;height:2.5rem;overflow-x:auto;padding:.25rem .45rem;border-bottom:3px solid color-mix(in srgb,var(--edge) 70%,var(--room-accent));background:color-mix(in srgb,var(--room-accent) 76%,var(--panel));transition:background-color .48s ease,border-color .48s ease;scrollbar-width:thin}.window-tab{flex:none;padding:.28rem .48rem;border:2px solid transparent;background:0 0;color:var(--ink);cursor:pointer;font:700 .58rem var(--pixel-font);text-decoration:none;transition:background-color .24s ease,transform .24s ease}.window-tab:hover{transform:translateY(-1px)}.window-tab[aria-pressed=true]{border-color:color-mix(in srgb,var(--edge) 45%,transparent);box-shadow:2px 2px color-mix(in srgb,var(--edge) 70%,transparent)}.tab-map[aria-pressed=true]{background:#2f5b77;color:#f3f7fa}.tab-profile[aria-pressed=true]{background:#a68bd6;color:#211b2c}.tab-writing[aria-pressed=true]{background:#6db3e5;color:#142432}.tab-moods[aria-pressed=true]{background:#ef9568;color:#301c14}.tab-music[aria-pressed=true]{background:#df81aa;color:#2c1722}.tab-github[aria-pressed=true]{background:#70bf87;color:#14251a}.map-view{position:absolute;inset:2.5rem 0 0;display:flex;flex-direction:column;overflow:hidden}.map-view[hidden],.room-panel[hidden]{display:none}.pixel-room{position:relative;flex:1;min-height:0;width:100%;overflow:hidden;background:#2f5b77;image-rendering:pixelated;outline:none}.pixel-room:focus-visible{outline:3px solid #e6edf2;outline-offset:-5px}.map-caption{flex:none;min-height:0;padding:.7rem 1.2rem .85rem;color:var(--ink);background:color-mix(in srgb,var(--room-accent) 78%,var(--panel));transition:background-color .48s ease}.map-caption .room-kicker{margin-bottom:.25rem}.map-caption h2{margin:0 0 .25rem;font-size:clamp(1.05rem,1.8vw,1.35rem);line-height:1.3}.map-caption p:last-child{margin:0;color:var(--muted);font-size:.8rem}.room-art{display:block;width:100%;height:100%;image-rendering:pixelated;shape-rendering:crispEdges}.lamp-rays{animation:lantern-breathe 3.8s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}@keyframes lantern-breathe{from{opacity:.18;transform:scale(.97)}to{opacity:.4;transform:scale(1.035)}}:root[data-theme=light] .lamp-rays{opacity:.025;animation:none}.room-stars rect:nth-child(2n){animation:star-blink 1.8s steps(2,end)infinite alternate}@keyframes star-blink{to{opacity:.2}}#pixel-player{filter:drop-shadow(3px 3px 0 #1118);transition:filter .28s ease}#pixel-player.walking{filter:drop-shadow(3px 4px 0 #1116)}#pixel-player:not(.walking):not(.pointer-paused){animation:player-idle 2.4s steps(2,end)infinite}#pixel-player.walking .player-leg-a{animation:pixel-step .24s steps(2,end)infinite alternate}#pixel-player.walking .player-leg-b{animation:pixel-step .24s steps(2,end)infinite alternate-reverse}#pixel-player.jumping{animation:player-hop .34s steps(4,end)}@keyframes player-idle{0%,80%,100%{translate:0 0}90%{translate:0 -2px}}@keyframes pixel-step{to{transform:translateY(-6px)}}@keyframes player-hop{50%{translate:0 -34px}}.water-glints{animation:water-drift 8s ease-in-out infinite alternate}@keyframes water-drift{to{transform:translateX(9px);opacity:.45}}.map-trees{transform-box:fill-box;transform-origin:center bottom;animation:tree-breeze 6s ease-in-out infinite alternate}@keyframes tree-breeze{to{transform:translateY(-1.5px)}}.map-flowers{animation:flower-shimmer 4s ease-in-out infinite alternate}.map-flowers-pink{animation-delay:-1.8s}@keyframes flower-shimmer{from{opacity:.72}to{opacity:1}}.music-notes{transform-box:fill-box;transform-origin:center;animation:notes-lilt 2.4s ease-in-out infinite alternate}@keyframes notes-lilt{to{transform:translateY(-4px);opacity:.65}}.room-hotspot{position:absolute;display:block;z-index:3;left:var(--x);top:var(--y);width:9%;height:16%;padding:0;border:0;background:0 0;color:inherit;font:inherit;cursor:pointer;transform:translate(-50%,-50%)}.room-hotspot::after{position:absolute;left:50%;bottom:-9px;width:16px;height:7px;content:'';background:#f6df6a;opacity:0;transform:translateX(-50%)scale(.75);transition:opacity .2s ease,transform .2s cubic-bezier(.2,.8,.2,1)}.room-hotspot:hover::after,.room-hotspot:focus-visible::after,.room-hotspot.is-nearby::after{opacity:1;transform:translateX(-50%)scale(1)}.room-hotspot>span{position:absolute;left:50%;bottom:calc(100% + 8px);padding:.3rem .45rem;border:2px solid var(--edge);background:var(--gold);color:#182519;font:700 .62rem var(--pixel-font);white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,4px);box-shadow:3px 3px 0 var(--edge);transition:opacity .18s ease,transform .2s cubic-bezier(.2,.8,.2,1)}.room-hotspot:hover>span,.room-hotspot:focus-visible>span,.room-hotspot.is-nearby>span{opacity:1;transform:translate(-50%,0)}.hotspot-profile>span{background:#a68bd6}.hotspot-notebook>span{background:#6db3e5}.hotspot-moods>span{background:#ef9568}.hotspot-record>span{background:#df81aa}.hotspot-plant>span{background:#70bf87}.game-toast{position:absolute;z-index:5;left:50%;top:5%;max-width:86%;padding:.4rem .65rem;border:3px solid var(--edge);background:var(--gold);color:#182519;font:700 .62rem var(--pixel-font);text-align:center;box-shadow:4px 4px 0 var(--edge);opacity:0;pointer-events:none;transform:translate(-50%,-8px);transition:opacity .24s ease,transform .32s cubic-bezier(.2,.8,.2,1)}.game-toast.is-visible{opacity:1;transform:translate(-50%,0)}.hotspot-clock{left:auto;top:.7rem;right:.9rem;width:auto;height:auto;color:#fbf3cd;font:700 .8rem var(--pixel-font);text-shadow:2px 2px #335039;pointer-events:none;transform:none}.game-controls{position:relative;z-index:4;flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .8rem;min-height:2.45rem;padding:.3rem .65rem;border-block:2px solid #b4c3cf66;background:#182537;color:#e6edf2;font:.58rem var(--pixel-font)}.game-controls span{display:flex;align-items:center;gap:.3rem}.game-controls kbd{padding:.15rem .3rem}.game-controls button{margin-left:auto;padding:.35rem .5rem;border:2px solid var(--edge);background:var(--panel);cursor:pointer;box-shadow:3px 3px 0 var(--edge);font:700 .62rem var(--pixel-font);transition:transform .18s ease,box-shadow .18s ease,background-color .42s ease,border-color .42s ease}.game-controls button:hover{transform:translateY(-2px);box-shadow:3px 5px 0 var(--edge)}.room-panel{position:absolute;z-index:8;inset:2.5rem 0 0;height:auto;min-height:0;max-height:none;overflow:auto;padding:1rem 1.2rem;background:color-mix(in srgb,var(--panel) 88%,#66717b);scrollbar-gutter:stable}.window-back{position:sticky;z-index:10;top:0;float:right;padding:.35rem .5rem;border:2px solid color-mix(in srgb,var(--edge) 78%,var(--room-accent));background:color-mix(in srgb,var(--panel) 70%,var(--room-accent));color:var(--ink);cursor:pointer;box-shadow:3px 3px color-mix(in srgb,var(--edge) 78%,var(--room-accent));font:700 .58rem var(--pixel-font)}.room-info[hidden]{display:none}.room-kicker{margin-bottom:.35rem;font-size:.62rem}.room-info.room-arrive{animation:info-arrive .42s cubic-bezier(.16,1,.3,1)both}@keyframes info-arrive{from{opacity:0;transform:translateY(8px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.room-info h2{margin:0 0 .45rem;font-size:clamp(1.05rem,1.7vw,1.4rem);line-height:1.35}.room-info p:not(.room-kicker){margin:0 0 .6rem;color:var(--muted);font-size:.85rem}.profile-preview,.music-preview,.github-preview{display:flex;align-items:center;gap:.8rem;margin:.25rem 0 .7rem}.profile-preview h2,.music-preview h2,.github-preview h2{margin:0 0 .2rem}.profile-preview p,.music-preview p,.github-preview p{margin:0!important}.profile-avatar{display:block;flex:0 0 42px;width:42px;height:42px;border:3px solid var(--edge);background:#a68bd6;object-fit:cover;object-position:center;box-shadow:3px 3px 0 var(--edge)}.mini-record{position:relative;flex:0 0 46px;width:46px;height:46px;border:3px solid var(--edge);border-radius:50%;background:repeating-radial-gradient(circle,#20272c 0 3px,#3c4853 4px 5px);box-shadow:3px 3px 0 var(--edge)}.mini-record::after{position:absolute;inset:38%;content:'';border:2px solid var(--edge);border-radius:50%;background:#df81aa}.record-player{--record-pink:#d58ba9;--record-dark:#171a20;display:grid;grid-template-columns:minmax(0,.82fr)minmax(0,1.18fr);align-items:center;gap:.7rem 1rem;padding:.75rem;border:2px solid #111d28;background:linear-gradient(145deg,#213449,#182b3b);box-shadow:5px 5px #11161a;color:var(--ink)}.record-deck{position:relative;display:grid;grid-column:1;place-items:center;justify-self:center;width:min(100%,236px);aspect-ratio:1.28;min-height:0;container-type:inline-size;overflow:hidden;border:9px solid #594032;border-radius:7px;background:repeating-linear-gradient(2deg,transparent 0 16px,#55432d1c 17px,#ead8b12c 19px,transparent 23px,#816d5020 31px,transparent 38px),repeating-linear-gradient(90deg,transparent 0 62px,#483a2b1c 64px,#e2d1ae18 67px,transparent 70px 119px),linear-gradient(108deg,#a08b71,#c1ad8f 38%,#8f7b63 66%,#bcaa8b);box-shadow:inset 0 0 0 2px #e0c9a04d,inset 0 0 0 6px #624b3933,0 7px #342720}.record-deck::before{position:absolute;inset:0;z-index:1;content:'';border:2px solid #e0c9a033;pointer-events:none}.platter{position:absolute;top:50%;left:50%;width:min(68cqw,170px);height:min(68cqw,170px);aspect-ratio:1/1;padding:6px;border:4px solid #59616a;border-radius:50%;background:repeating-conic-gradient(from 6deg,#73777a 0 1deg,#4c5359 1.5deg 3deg);box-shadow:inset 0 0 0 3px #adb2ad99,0 2px #25272a,0 5px 8px #181b20b3;transform:translate(-50%,-50%)}.vinyl-button{display:block;width:100%;height:100%;padding:0;border:0;border-radius:50%;background:0 0;cursor:pointer}.vinyl-disc{position:relative;display:grid;width:100%;height:100%;aspect-ratio:1/1;place-items:center;overflow:hidden;border:3px solid #11171b;border-radius:50%;background:repeating-radial-gradient(circle at 48% 48%,#15181c 0 3px,#292d32 4px 5px,#181b20 6px 9px,#22262b 10px 11px),conic-gradient(from 12deg,#262a30,#16191d,#33373b,#191c21,#262a30);box-shadow:inset 0 0 0 3px #444b51,inset 0 0 0 6px #171b1e,0 3px 8px #1118}.vinyl-disc::before{position:absolute;inset:8%;content:'';border:1px solid #9da5aa33;border-radius:50%;box-shadow:0 0 0 2px #0d101433,0 0 0 5px #b5bbc01c,0 0 0 9px #0b0d111f}.vinyl-label{position:relative;z-index:1;display:grid;align-content:center;justify-items:center;width:30%;aspect-ratio:1;overflow:hidden;border:3px solid #252629;border-radius:50%;background:radial-gradient(circle at 40% 32%,#e5a8bd,#b66e91 75%);color:#25151e;font:700 clamp(.45rem,1vw,.62rem)/1.2 var(--pixel-font);box-shadow:0 1px 5px #0009}.vinyl-label img{position:absolute;inset:0;width:100%;height:100%;border-radius:50%;object-fit:cover}.vinyl-label img[hidden]{display:none}.vinyl-label>span{font-size:.7em}.vinyl-label img:not([hidden])+span{display:none}.vinyl-disc::after{position:absolute;width:6px;height:6px;content:'';border:2px solid #14191e;border-radius:50%;background:#e4c7d3}.vinyl-button:hover .vinyl-disc{filter:brightness(1.14)}.record-player[data-spinning=true] .vinyl-disc{animation:vinyl-spin 2.2s linear infinite}@keyframes vinyl-spin{to{transform:rotate(1turn)}}.tonearm{position:absolute;z-index:2;top:4%;right:4%;width:46%;height:89%;transform-origin:81% 8%;transform:rotate(-2deg);transition:transform .65s cubic-bezier(.2,.8,.2,1);pointer-events:none}.tonearm-art{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(2px 2px 1px #1a1918a8)}.record-player[data-spinning=true] .tonearm{transform:rotate(8deg)}.turntable-light{position:absolute;right:9%;bottom:14%;width:10px;height:10px;border:2px solid #13191e;background:#65747e}.record-player[data-spinning=true] .turntable-light{background:#8fdda5;box-shadow:0 0 0 3px #8fdda533,0 0 12px #8fdda5aa}.turntable-brand{position:absolute;right:8%;bottom:7%;color:#d0d5d5;font:700 .48rem var(--pixel-font);letter-spacing:.06em}.record-console{display:grid;grid-column:2;grid-row:1;grid-template-columns:minmax(0,1fr)auto;align-items:center;gap:.3rem .8rem;min-width:0;padding:.2rem;border:0;background:0 0;box-shadow:none}.record-meta{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-width:0;grid-column:1/-1}.record-console .room-kicker{margin-bottom:.2rem;color:#b68a9e;font-size:.54rem}.record-console h2{margin:0;color:#f0ece9;font-size:clamp(1.05rem,2vw,1.35rem);line-height:1.2}.record-subtitle{margin:.16rem 0 0!important;color:#a9aaab!important;font-size:.68rem!important}.record-actions{display:flex;align-items:center;gap:.55rem}.record-console .record-status{grid-column:1/-1;min-height:0;margin:0!important;color:#b6b8ba;font-size:.67rem;line-height:1.4}.record-meter{display:flex;align-items:end;gap:3px;height:19px;margin:0}.record-meter i{width:5px;height:30%;background:#e78bad;opacity:.75}.record-player[data-spinning=true] .record-meter i{animation:meter-bounce .5s steps(3,end)infinite alternate}.record-player[data-spinning=true] .record-meter i:nth-child(3n){animation-delay:-.28s}.record-player[data-spinning=true] .record-meter i:nth-child(2n){animation-delay:-.14s}@keyframes meter-bounce{to{height:100%}}.record-control{padding:.45rem .6rem;border:2px solid #14191e;background:#df81aa;color:#281720;cursor:pointer;box-shadow:3px 3px #14191e;font:700 .58rem var(--pixel-font);transition:transform .18s ease,box-shadow .18s ease}.record-control:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:4px 4px #14191e}.record-control:disabled,.vinyl-button:disabled{cursor:wait;opacity:.62}.record-progress{display:flex;grid-column:1/-1;align-items:center;gap:.5rem;color:#aeb2b4;font:.5rem var(--pixel-font)}.record-progress input{flex:1;min-width:0;height:12px;margin:0;appearance:none;background:0 0;cursor:pointer}.record-progress input::-webkit-slider-runnable-track{height:3px;background:#64696d}.record-progress input::-moz-range-track{height:3px;background:#64696d}.record-progress input::-webkit-slider-thumb{width:10px;height:10px;margin-top:-3px;appearance:none;border:2px solid #171b20;border-radius:50%;background:#d58ba9;box-shadow:0 0 0 1px #d58ba9}.record-progress input::-moz-range-thumb{width:7px;height:7px;border:2px solid #171b20;border-radius:50%;background:#d58ba9;box-shadow:0 0 0 1px #d58ba9}.apple-music-embed{grid-column:1/-1;min-width:0;margin-top:.1rem;padding:.65rem 0 0;border:0;border-top:1px solid #ffffff24;background:0 0;box-shadow:none}.track-list-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.track-list-head .room-kicker{margin:0 0 .45rem;color:#bd8fa3}.track-list-head a{margin-bottom:.45rem;color:#d89bb5;font:700 .5rem var(--pixel-font);text-decoration:none}.track-filter{width:100%;margin:0 0 .4rem;padding:.45rem .5rem;border:1px solid #4c4b50;background:#171b1f;color:#e4e5e5;font-size:.67rem}.track-filter::placeholder{color:#858b90}.record-track-list{display:grid;max-height:250px;overflow:auto;scrollbar-color:#56616a transparent;scrollbar-width:thin}.record-track{display:flex;align-items:center;gap:.55rem;min-width:0;padding:.48rem .35rem;border:0;border-bottom:1px solid #ffffff16;background:0 0;color:#e4e5e5;text-align:left;cursor:pointer}.record-track[hidden]{display:none}.record-track:hover,.record-track[aria-current=true]{background:#d58ba918}.track-index{flex:0 0 20px;color:#858b90;font:.5rem var(--pixel-font)}.track-copy{display:grid;flex:1;min-width:0;gap:.1rem}.track-copy strong,.track-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-copy strong{font-size:.7rem;font-weight:600}.track-copy small{color:#a9adb0;font-size:.58rem}.track-play{color:#d58ba9;font-size:.58rem;opacity:0}.record-track:hover .track-play,.record-track[aria-current=true] .track-play{opacity:1}@media(max-width:570px){.record-player{grid-template-columns:minmax(0,1fr);gap:.6rem;padding:.65rem}.record-deck{grid-column:1;grid-row:auto;width:min(100%,220px);aspect-ratio:1.28;min-height:0}.record-console{grid-column:1;grid-row:auto;padding:.15rem .1rem .3rem}.record-console .record-status{min-height:0}.record-actions{flex-direction:row;align-items:center;gap:.3rem}.record-connection{font-size:.43rem}.music-page .record-deck{width:min(100%,220px)}}@media(prefers-reduced-motion:reduce){.record-player[data-spinning=true] .vinyl-disc,.record-player[data-spinning=true] .record-meter i{animation-duration:8s}}.github-game{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:.75rem;min-height:124px}.github-tree-button{display:grid;justify-items:center;gap:.1rem;width:82px;padding:.15rem;border:2px solid transparent;background:0 0;color:var(--muted);cursor:pointer;font:700 .5rem var(--pixel-font)}.github-tree-button:hover,.github-tree-button:focus-visible{border-color:var(--line);background:color-mix(in srgb,var(--grass) 12%,transparent)}.github-tree{display:block;width:72px;height:78px;overflow:visible}.github-game.is-shaking .github-tree{animation:tree-rattle .42s steps(3,end)2}.github-game.is-shaking .github-leaves path{animation:github-leaf-fall .72s ease-in forwards}.github-game.is-shaking .github-leaves path:nth-child(2n){animation-delay:.08s}.github-game.is-shaking .github-leaves path:nth-child(3n){animation-delay:.16s}@keyframes tree-rattle{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}.github-leaves path{transform-box:fill-box;transform-origin:center}.github-game.is-shaking .github-leaves path{animation-fill-mode:forwards}@keyframes github-leaf-fall{to{opacity:0;transform:translate(12px,50px)rotate(140deg)}}.github-card-content{min-width:0}.github-card-content h2{margin:0 0 .15rem;font-size:1rem}.github-card-content p{margin:0 0 .45rem!important;font-size:.7rem!important}.github-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:.35rem 0}.github-stats[hidden]{display:none}.github-stat{padding:.25rem .35rem;border:2px solid var(--line);background:color-mix(in srgb,var(--grass) 10%,var(--panel));text-align:center}.github-stat strong{display:block;color:var(--ink);font:700 .78rem var(--pixel-font)}.github-stat span{display:block;color:var(--muted);font:.48rem var(--pixel-font);text-transform:uppercase}.github-links{display:flex;flex-wrap:wrap;gap:.3rem .75rem}.github-links a{color:var(--green,#70bf87);font:700 .58rem var(--pixel-font);text-decoration:none}.room-links{display:grid;gap:.35rem;padding:0;margin:.5rem 0 .75rem;list-style:none}.room-links li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.3rem 1rem;padding:.3rem 0;border-bottom:2px dashed var(--line)}.room-links a{font-size:.82rem;font-weight:700;text-decoration:none}.room-links time{color:var(--muted);font:.63rem var(--pixel-font)}.home-footer{grid-column:1;grid-row:3;display:flex;flex-wrap:wrap;gap:.8rem;align-self:end;padding:1rem 0 1.3rem;color:var(--muted);font-size:.7rem}.home-footer a{color:var(--ink)}.site-header{position:relative;z-index:1;border-bottom:4px solid var(--edge);background:var(--panel);box-shadow:0 4px 0 var(--line);transition:background-color .42s ease,border-color .42s ease,box-shadow .42s ease}.site-main,.site-footer{position:relative;z-index:1}.header-inner,.site-main:not(:has(.home-shell)),.footer-inner{width:min(calc(100% - 3rem),920px);margin-inline:auto}.header-inner{min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--ink);font:700 .75rem var(--pixel-font);text-decoration:none}.brand-mark{display:block;flex:0 0 28px;width:28px;height:28px;border:3px solid var(--edge);background:#a68bd6;object-fit:cover;object-position:center;box-shadow:3px 3px 0 var(--edge)}.site-nav{display:flex;flex-wrap:wrap;gap:1rem;color:var(--muted);font:700 .66rem var(--pixel-font)}.site-nav a{text-decoration:none}.site-nav a[aria-current=page]{color:var(--gold)}.site-main:not(:has(.home-shell)){min-height:calc(100svh - 128px)}.page-intro{padding:4rem 0 2rem}.page-intro .eyebrow{color:var(--grass)}.page-intro h1{margin:0;font-size:clamp(2rem,5vw,3.3rem);line-height:1.25}.page-intro>p:not(.eyebrow){color:var(--muted)}.post-list-page{margin-bottom:4rem;border-top:4px solid var(--edge)}.post-row{display:grid;grid-template-columns:105px minmax(0,1fr)30px;gap:1rem;padding:1.2rem .4rem;border-bottom:3px solid var(--edge);transition:background .22s ease,transform .22s cubic-bezier(.2,.8,.2,1)}.post-row:hover{background:color-mix(in srgb,var(--grass) 12%,transparent);transform:translateX(3px)}.post-row-date{padding-top:.25rem;color:var(--muted);font:.65rem var(--pixel-font)}.post-row-body h2,.post-row-body h3{margin:0;font-size:1.1rem}.post-row-body p{margin:.35rem 0 0;color:var(--muted);font-size:.88rem}.tag-list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.6rem}.tag-list span{padding:.12rem .35rem;border:2px solid var(--line);color:var(--muted);font:.6rem var(--pixel-font)}.row-arrow{align-self:center;font:700 1.1rem var(--pixel-font)}.article{max-width:760px;margin:0 auto;padding:3rem 0 4rem}.article-header{padding:1.2rem;border:4px solid var(--edge);background:var(--panel);box-shadow:6px 6px 0 var(--edge);transition:background-color .42s ease,border-color .42s ease}.back-link{display:inline-block;margin-bottom:1.5rem;color:var(--muted);font:.65rem var(--pixel-font);text-decoration:none}.article-header .eyebrow{color:var(--grass)}.article-header h1{margin:0;font-size:clamp(1.8rem,5vw,3.2rem);line-height:1.3}.article-deck{color:var(--muted)}.post-meta{display:flex;gap:1rem;margin-top:1rem;color:var(--muted);font:.65rem var(--pixel-font)}.article-content{margin-top:1.2rem;padding:clamp(1.2rem,4vw,2.3rem);border:4px solid var(--edge);background:var(--panel);box-shadow:6px 6px 0 var(--edge);font-size:1.02rem;line-height:1.95;transition:background-color .42s ease,border-color .42s ease}.article-content h2,.article-content h3{margin:2em 0 .7em;color:var(--ink);line-height:1.4}.article-content a:not(.inline-switch){color:var(--blue);text-underline-offset:3px}.article-content img{max-width:100%;height:auto;image-rendering:pixelated}.article-content blockquote{margin:1.8em 0;padding:.25rem 1rem;border-left:6px solid var(--grass);color:var(--muted)}.article-content pre{overflow-x:auto;padding:1rem;border:3px solid var(--edge);background:var(--bg);font:.8rem/1.7 var(--pixel-font)}.article-content :not(pre)>code{padding:.15em .35em;border:1px solid var(--line);background:var(--bg);font:.85em var(--pixel-font)}.article-end{display:flex;justify-content:space-between;gap:1rem;margin-top:1.2rem;padding:.8rem;border:3px solid var(--edge);background:var(--panel);font:.7rem var(--pixel-font)}.article-end a{color:var(--gold);text-decoration:none}.profile-links .inline-switch,.profile-links .inline-switch:hover{color:#122016}.music-page{max-width:760px;margin:0 auto;padding:4rem 0}.music-page .record-player{max-width:760px;margin-inline:auto}.music-page .record-deck{width:min(100%,236px)}.music-console{display:grid;grid-template-columns:200px 1fr;gap:1.5rem;align-items:center;padding:1.2rem;border:5px solid var(--edge);background:var(--panel);box-shadow:8px 8px 0 var(--edge)}.pixel-record{position:relative;width:180px;aspect-ratio:1;border:4px solid var(--edge);border-radius:0;background:repeating-conic-gradient(#171b1c 0 3deg,#252b2a 3deg 6deg);box-shadow:6px 6px 0 var(--edge);image-rendering:pixelated}.pixel-record::before{position:absolute;inset:34%;content:'';border:4px solid var(--edge);background:var(--orange)}.pixel-record::after{position:absolute;inset:46%;content:'';background:var(--gold)}.music-empty{padding:.8rem;border:3px dashed var(--line);color:var(--muted)}.track-row{display:grid;gap:.4rem;padding:.6rem 0;border-bottom:2px dashed var(--line)}.track-row audio{width:100%}.site-footer{margin-top:2rem;border-top:4px solid var(--edge);background:var(--panel)}.footer-inner{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;color:var(--muted);font-size:.7rem}.footer-inner a{color:var(--ink)}.not-found{min-height:60svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}body.motion-paused *,body.motion-paused *::before,body.motion-paused *::after{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){@view-transition{navigation: none; }*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}@media(max-width:980px){.home-shell{width:min(calc(100% - 3rem),760px);grid-template-columns:1fr;grid-template-rows:auto auto auto auto;column-gap:0}.home-tools{grid-column:1;grid-row:1;padding-top:1rem}.home-copy{grid-column:1;grid-row:2;padding:2rem 0 1.3rem}.interactive-stage{grid-column:1;grid-row:3;width:min(100%,656px);margin:0 auto 1.2rem}.home-footer{grid-column:1;grid-row:4}.interactive-stage{grid-template-rows:auto}.interactive-window{width:min(100%,656px)}}@media(max-width:560px){.home-shell{width:calc(100% - 1.5rem)}.intro-copy{font-size:1.15rem;line-height:1.65}.interactive-stage{width:100%}.interactive-window{border-width:5px}.room-panel{padding:.7rem}.game-controls{gap:.45rem;font-size:.52rem}.game-controls button{font-size:.52rem}.hotspot-clock{font-size:.62rem}.home-footer{font-size:.61rem}.header-inner,.site-main:not(:has(.home-shell)),.footer-inner{width:calc(100% - 1.5rem)}.header-inner{min-height:60px}.brand{font-size:.61rem}.site-nav{gap:.65rem;font-size:.55rem}.article{padding:2rem .2rem 3rem}.post-row{grid-template-columns:1fr 24px;gap:.25rem .6rem}.post-row-date{grid-column:1;grid-row:1}.post-row-body{grid-column:1;grid-row:2}.row-arrow{grid-column:2;grid-row:2}.music-console{grid-template-columns:1fr}.pixel-record{width:128px;margin-inline:auto}}@keyframes mobile-room-arrive{from{opacity:.75;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:560px){body.mobile-room-active{overflow:hidden}.interactive-window.mobile-room-open{position:fixed;z-index:1000;inset:0;display:flex;flex-direction:column;width:100%;max-width:none;height:100vh;height:100dvh;min-height:0;aspect-ratio:auto;overflow:hidden;padding-top:env(safe-area-inset-top);border:0;background:var(--bg);box-shadow:none;animation:mobile-room-arrive .32s cubic-bezier(.2,.8,.2,1)both}.interactive-window.mobile-room-open .window-tabs{position:relative;top:auto;right:auto;left:auto;flex:0 0 4rem;height:4rem;gap:.35rem;padding:.35rem max(.6rem,env(safe-area-inset-left)).35rem .6rem;overscroll-behavior-x:contain}.interactive-window.mobile-room-open .window-tab{display:grid;min-width:44px;min-height:44px;place-items:center;padding:.5rem .7rem;font-size:.66rem}.interactive-window.mobile-room-open .window-tab[aria-pressed=true]{padding-inline:.95rem;font-size:.76rem}.interactive-window.mobile-room-open .map-view{inset:calc(env(safe-area-inset-top) + 4rem)0 env(safe-area-inset-bottom)}.interactive-window.mobile-room-open .room-panel{inset:calc(env(safe-area-inset-top) + 4rem)0 env(safe-area-inset-bottom);padding:1rem clamp(1rem,5vw,1.5rem)max(1.25rem,env(safe-area-inset-bottom));overscroll-behavior:contain;scrollbar-gutter:auto}.interactive-window.mobile-room-open .window-back{position:sticky;top:0;float:none;display:block;width:100%;min-height:44px;margin:0 0 1rem;padding:.55rem .7rem;text-align:left;font-size:.68rem}.interactive-window.mobile-room-open .room-info{min-height:100%}}