@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{color-scheme:dark;font-family:Space Grotesk,sans-serif;color:#eef4fa;background:#000}*{box-sizing:border-box}body{margin:0;overflow:hidden}canvas{display:block;width:100vw;height:100dvh;touch-action:none}button,a{-webkit-tap-highlight-color:transparent}button{font:11px IBM Plex Mono,monospace;letter-spacing:.06em;cursor:pointer;color:#c9d6e4;background:#151a28;border:1px solid #354052;border-radius:4px;padding:12px 16px}button:hover,button:focus-visible{color:#68ffef;border-color:#68ffef}button:focus-visible,a:focus-visible{outline:2px solid #f978df;outline-offset:4px}header{position:absolute;top:30px;left:36px;right:36px;display:flex;align-items:center;justify-content:space-between}header a{font-size:29px;font-weight:700;letter-spacing:-2px;color:#fff;text-decoration:none}header span{font:9px IBM Plex Mono,monospace;letter-spacing:2px;margin-left:24px;color:#919bae}#status{position:absolute;right:38px;top:101px;font:9px IBM Plex Mono,monospace;letter-spacing:2px;color:#7f91a8}i{display:inline-block;width:5px;height:5px;background:#57edbf;border-radius:50%;margin:0 10px;box-shadow:0 0 10px #57edbf}aside{position:absolute;left:6%;top:23%;pointer-events:none}.eyebrow{font:9px IBM Plex Mono,monospace;letter-spacing:2px;color:#60e3dc}h1{font-size:clamp(48px,6.4vw,100px);line-height:.96;letter-spacing:-6px;margin:22px 0}h1 span{color:#ff75d5}aside>p:last-child{font-size:13px;line-height:1.8;color:#93a0b5}#console{position:absolute;bottom:64px;left:50%;transform:translate(-50%);width:440px;padding:16px;background:linear-gradient(145deg,#232a35ee,#0e1320ee);border:1px solid #435167;border-radius:12px;box-shadow:0 12px 40px #0008,inset 0 1px #8a9ab32a;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.readout{background:#07171b;padding:12px 14px;border:1px solid #28484d;border-radius:4px;display:grid;grid-template-columns:65px 1fr;gap:4px;color:#72f5e4;font-family:IBM Plex Mono,monospace}.readout span{font-size:10px;grid-row:span 2;align-self:center;color:#4c9698}.readout strong{font-size:13px;font-weight:500}.readout small{font-size:8px;letter-spacing:2px;color:#528d91}.controls{display:flex;gap:8px;margin-top:10px}.controls #open{flex:1;background:#b5f1d4;color:#101d25;border-color:#b5f1d4;font-weight:600}.channels{display:flex;gap:5px;margin-top:12px}.channels button{flex:1;padding:9px 2px;font-size:8px;border:0;background:#ffffff05}.channels .active{color:#fe7ad8;background:#ff70d51c;box-shadow:inset 0 -2px #ff70d5}footer{position:absolute;bottom:24px;left:36px;right:36px;display:flex;justify-content:space-between;color:#627085;font:8px IBM Plex Mono,monospace;letter-spacing:1.5px}#hint{position:absolute;right:35px;bottom:90px;writing-mode:vertical-rl;font:8px IBM Plex Mono,monospace;letter-spacing:2px;color:#6a7d91}dialog{color:#e9f1fa;background:#101724;border:1px solid #3d5362;border-radius:16px;width:min(550px,90vw);padding:45px;box-shadow:0 0 100px #3ddec822}dialog::backdrop{background:#02060dcc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}dialog h2{font-size:38px;letter-spacing:-2px}dialog p{line-height:1.8;color:#a4b2c4}dialog #close{position:absolute;right:15px;top:15px}.note{font:9px IBM Plex Mono,monospace;margin:30px 0}#loading{position:fixed;inset:0;background:#000;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:60px;letter-spacing:-4px;transition:opacity .6s;pointer-events:none}#loading span{font:10px monospace;letter-spacing:3px;margin-top:20px}#game{height:200px;background:#07101a;position:relative;border:1px solid #294259}#game p{margin:12px;font:11px monospace}#target{position:absolute;left:45%;top:45%;color:#ff72de;font-size:26px;padding:5px 13px}#return{margin-top:12px}@media(max-width:800px){header{top:20px;left:20px;right:20px}header span{display:none}aside{top:105px;left:24px}h1{font-size:46px;letter-spacing:-3px;margin:12px 0}aside .eyebrow{font-size:7px}aside>p:last-child{display:none}#status{right:20px;top:90px;font-size:7px}#console{width:min(400px,92vw);bottom:50px}footer{left:20px;right:20px;font-size:7px}footer span:last-child,#hint{display:none}}#home{display:block;line-height:0}.brand-logo{display:block;width:clamp(200px,26vw,340px);height:auto;overflow:hidden}@media(max-width:480px){.brand-logo{width:190px}header{gap:16px}#sound{padding:10px}}#home{position:relative}#logoMagnifier{position:absolute;display:block;width:112px;height:112px;margin:0;overflow:hidden;border:1px solid #75fff1;border-radius:50%;background:#05080e;box-shadow:0 0 0 5px #000b,0 0 26px #43eed879;pointer-events:none;opacity:0;visibility:hidden;z-index:5;transition:opacity .16s ease,visibility .16s ease}#logoMagnifier.active{opacity:1;visibility:visible}#logoMagnifier svg{position:absolute;display:block;max-width:none;overflow:visible}@media(hover:none){#logoMagnifier{display:none}}@media(prefers-reduced-motion:reduce){#logoMagnifier{transition:none}}header{align-items:flex-start}.brand-lockup{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.brand-lockup{transform-origin:left top;transition:transform 1.05s cubic-bezier(.72,-.02,.22,1),opacity .68s ease,filter .82s ease;will-change:transform,opacity,filter}.brand-lockup.brand-away{transform:translate(-125%) skew(-20deg) scaleX(.28);opacity:0;filter:blur(13px) brightness(2);pointer-events:none}#brand-tagline{margin:0;font:8px IBM Plex Mono,monospace;letter-spacing:1.8px;color:#60e3dc}aside{top:27%}@media(max-width:480px){.brand-lockup{gap:8px}#brand-tagline{margin-left:0;font-size:6px;letter-spacing:1.35px}}#consoleToggle{position:absolute;right:12px;top:-35px;padding:8px 12px;border-color:#36485c;background:#111927e8;color:#7f9aae;font-size:8px}#globalHelp{position:absolute;left:12px;top:-35px;padding:8px 12px;border-color:#385669;background:#101927e8;color:#69eade;font-size:8px}#console.collapsed{width:190px;padding:0;background:transparent;border-color:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}#console.collapsed>:not(#consoleToggle):not(#globalHelp){display:none}#console.collapsed #consoleToggle{position:static;width:calc(100% - 58px);padding:11px 8px;border-color:#3a5064;background:#101827f2;color:#75d8cf}#console.collapsed #globalHelp{position:absolute;left:auto;right:0;top:0;width:54px;height:100%;padding:8px 2px}@media(max-width:800px){#console.collapsed{width:180px;bottom:48px}}#VRButton{inset:136px 36px auto auto!important;width:132px!important;border-color:#3c5c69!important;background:#101927e8!important;color:#64e4d8!important;font:9px IBM Plex Mono,monospace!important;letter-spacing:1px!important;opacity:.82!important}.readout{grid-template-columns:65px 1fr auto;gap:4px 12px}.readout #slot{grid-column:3;grid-row:1/span 2;align-self:center;white-space:nowrap;color:#7d9cac}dialog{width:min(600px,90vw)}.project-state{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:18px 0 0}.project-state span{padding:9px 8px;border:1px solid #294751;background:#07171b;color:#6fd5c8;font:8px IBM Plex Mono,monospace;letter-spacing:1px;text-align:center}.project-state span:last-child{color:#7e8796;border-color:#303845}@media(max-width:800px){.readout{grid-template-columns:55px 1fr}.readout #slot{grid-column:2;grid-row:3}.project-state{grid-template-columns:1fr}}.detail-visual{margin:20px 0 0}.detail-visual[hidden]{display:none}.detail-visual img{display:block;width:100%;max-height:300px;object-fit:contain;background:#050b12;border:1px solid #294751;border-radius:7px}.detail-visual figcaption{margin-top:7px;color:#829bac;font:8px IBM Plex Mono,monospace;letter-spacing:.08em}#detail{width:min(650px,92vw);max-height:88dvh;overflow-y:auto}#detail .note{margin:18px 0;color:#91adba}.detail-mockup[hidden]{display:none}.detail-mockup{margin-top:18px;border:1px solid #294751;border-radius:9px;background:radial-gradient(circle at 78% 32%,#353b8738,transparent 55%),#080c14;padding:12px}.mockup-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;color:#75c8c3;font:9px IBM Plex Mono,monospace;letter-spacing:.08em}.mockup-toolbar button{padding:7px 9px;font-size:8px}.mockup-scroll{max-height:390px;overflow:auto;display:flex;justify-content:center;padding:15px}.mockup-phone{width:255px;min-width:255px;border:6px solid #151925;border-radius:29px;background:#121720;padding:16px 12px 11px;box-shadow:0 18px 35px #0008;color:#f5f8ff;font-family:Space Grotesk,sans-serif;transition:width .2s ease,min-width .2s ease}.detail-mockup.zoomed .mockup-phone{width:360px;min-width:360px}.mockup-camera{width:55px;height:8px;background:#06090f;border-radius:9px;margin:-12px auto 15px}.mockup-appbar{display:flex;align-items:center;gap:8px;font-size:17px}.mockup-symbol{display:grid;place-items:center;width:25px;height:25px;background:linear-gradient(130deg,#3975ff 40%,#31c4a2 40% 65%,#9e62f3 65%);border-radius:6px;color:#fff;font-size:15px;font-weight:700}.mockup-bell{margin-left:auto;color:#ff62b0;font-size:11px}.mockup-date{margin:17px 0 12px;color:#9eacc3;font-size:11px}.mockup-tabs{display:flex;gap:5px}.mockup-tabs button{flex:1;border:0;background:#1c2633;padding:7px 2px;color:#a5b5c7;font-size:8px}.mockup-tabs button[aria-selected=true]{background:#2e489b;color:#fff}.mockup-section{margin:16px 0 8px;color:#91a4bc;font:9px IBM Plex Mono,monospace;letter-spacing:.1em}.mockup-card{background:#1a222d;border:1px solid #343c4d;border-radius:12px;padding:10px;margin-bottom:8px}.mockup-card.urgent{border-color:#a54573}.mockup-card small{color:#89a2c7;font:8px IBM Plex Mono,monospace}.mockup-card strong{display:block;margin-top:6px;font-size:12px}.mockup-card p{font-size:10px;line-height:1.5;margin:6px 0;color:#a8b4c5}.mockup-actions{display:flex;gap:5px;margin-top:9px}.mockup-actions span{padding:6px;border-radius:6px;background:#47bea4;color:#071611;font:8px IBM Plex Mono,monospace}.mockup-actions span+span{background:#33212c;color:#f393a9}.mockup-week{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;text-align:center;color:#a9b9ce;font:9px IBM Plex Mono,monospace}.mockup-week b{padding:12px 0;background:#202b41;border-radius:5px;color:#eaf5ff}.mockup-focus-mark{text-align:center;color:#9ba8ff;font-size:48px;padding:16px}.mockup-nav{display:flex;justify-content:space-around;align-items:center;margin-top:10px;border-top:1px solid #313a4b;padding-top:8px;color:#9ba9bb}.mockup-plus{display:grid;place-items:center;background:#697dff;color:#fff;width:29px;height:29px;border-radius:9px}.mockup-disclaimer{margin:3px 8px 5px;color:#8aa1b0;font:9px/1.5 IBM Plex Mono,monospace}@media(max-width:600px){.mockup-toolbar{align-items:flex-start;flex-direction:column}.mockup-scroll{justify-content:flex-start}.detail-mockup.zoomed .mockup-phone{width:330px;min-width:330px}}footer{align-items:center}footer a{color:#536d7c;text-decoration:none}footer a:hover,footer a:focus-visible{color:#68e8dc}@media(max-width:800px){footer a{display:none}}#movement{position:absolute;right:36px;bottom:52px;display:grid;grid-template-columns:1fr 1fr;gap:6px;width:260px}#movement button{padding:9px 10px;font-size:8px;background:#101827e8;border-color:#385064}#movement button[aria-pressed=true]{color:#62f4e5;border-color:#62dace;background:#0b282c}#movement span{grid-column:1/-1;text-align:right;color:#5f7489;font:7px IBM Plex Mono,monospace;letter-spacing:1.2px}#movePad{display:none;position:absolute;left:22px;bottom:70px;width:138px;height:104px;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px);gap:5px;z-index:3}#movePad button{padding:0;font-size:15px;background:#101827d9;touch-action:none;-webkit-user-select:none;user-select:none}#movePad [data-move=forward]{grid-column:2}#movePad [data-move=left]{grid-column:1;grid-row:2}#movePad [data-move=back]{grid-column:2;grid-row:2}#movePad [data-move=right]{grid-column:3;grid-row:2}@media(pointer:coarse),(max-width:800px){#movement{right:18px;bottom:54px;width:178px}#movement span{display:none}#movePad.active{display:grid}}@media(max-width:520px){#movement{grid-template-columns:1fr;width:126px}#movement span{display:none}}aside{transition:opacity .45s ease,transform .65s cubic-bezier(.22,.8,.2,1)}body.walk-mode aside{opacity:0;transform:translate(-45px)}body.walk-mode #hint{opacity:.25}@media(min-width:801px){#console{inset:138px 36px auto auto;transform:none;width:280px;padding:10px}#console.collapsed{width:150px;bottom:auto}#consoleToggle{font-size:7px}}#editHud,#sprayHud{display:none;position:absolute;left:50%;top:24px;transform:translate(-50%);z-index:5;min-width:420px;padding:10px 14px;border:1px solid #54e9dc;background:#07151bea;box-shadow:0 0 30px #27e4d433;color:#7dfff2;font:9px IBM Plex Mono,monospace;letter-spacing:1px;text-align:center}#editHud strong,#sprayHud strong{margin-right:14px;color:#fff}#editHud small,#sprayHud small{display:block;margin-top:7px;color:#7896a3;font-size:7px}.edit-mode #editHud{display:block}.spray-mode #sprayHud{display:block;border-color:#ff61cf;color:#ff88dc}#editHud button{margin:0 10px;padding:6px 10px;border-color:#54e9dc;background:#103238;color:#8bfff2;font-size:7px}#layoutStatus{color:#7896a3;font-size:7px}#layoutStatus.saved{color:#65f2bd}#layoutStatus.error{color:#ff759a}#sprayStatus{margin-left:14px;color:#718c99}.spray-actions{display:flex;justify-content:center;gap:6px;margin-top:9px}.spray-actions button{padding:6px 9px;border-color:#694261;background:#211426;color:#ef9fdb;font-size:7px}.spray-actions button[aria-pressed=true]{border-color:#69f6e5;color:#69f6e5;background:#0b292c}.spray-actions button:disabled{opacity:.38;cursor:not-allowed}.spray-colors{display:flex;justify-content:center;gap:12px;margin-top:10px}.spray-color{width:25px;height:25px;min-width:25px;padding:0;border:2px solid #59717b;border-radius:50%;background:#4cfff0}.spray-color[data-color="1"]{background:#ff45c8}.spray-color[data-color="2"]{background:#ffc54d}.spray-color.active{border-color:#fff;box-shadow:0 0 0 2px #07151b,0 0 13px currentColor}.cap-menu{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:9px 0 7px}.cap-option{position:relative;display:grid;grid-template-rows:54px auto 12px;place-items:center;padding:3px 3px 5px;min-width:66px;overflow:hidden;border-color:#283947;background:#071117}.cap-option:hover,.cap-option.active{border-color:#65f8e8;background:#0b2428;box-shadow:inset 0 -2px #52e8dc}.cap-option b{font:6px IBM Plex Mono,monospace;letter-spacing:.6px;color:#a9bdc8}.cap-image{width:58px;height:52px;background-image:url(/spray-cap-menu-v1.png);background-size:300% 200%;background-repeat:no-repeat;border-radius:3px}.cap-skinny{background-position:0 0}.cap-soft{background-position:50% 0}.cap-standard{background-position:100% 0}.cap-fat{background-position:0 100%}.cap-super{background-position:50% 100%}.cap-needle{background-position:100% 100%}.cap-dot{display:block!important;margin:0!important;background:#dceef0!important;box-shadow:0 0 5px #eef!important}.dot-skinny{width:3px;height:3px}.dot-soft{width:5px;height:5px;filter:blur(.5px)}.dot-standard{width:7px;height:7px;filter:blur(1px)}.dot-fat{width:9px;height:9px;filter:blur(1.5px)}.dot-super{width:12px;height:12px;filter:blur(2px)}.dot-needle{width:13px;height:3px;border-radius:4px}@media(max-width:800px){#editHud,#sprayHud{top:auto;bottom:170px;min-width:0;width:92vw}}@media(max-width:700px){.cap-menu{grid-template-columns:repeat(3,1fr)}.cap-option{grid-template-rows:42px auto 9px}.cap-image{width:48px;height:40px}.spray-actions{display:grid;grid-template-columns:1fr 1fr}.spray-actions button{padding:7px 4px}}#helpDialog{width:min(620px,92vw);padding:38px 42px;background:linear-gradient(145deg,#101b27f7,#070d15f7);border-color:#3d716f;box-shadow:0 0 100px #1de9ce20}#helpDialog #helpClose{position:absolute;right:14px;top:14px}#helpDialog h2{margin:12px 0 10px;font-size:clamp(27px,5vw,43px)}#helpDialog ul{padding-left:20px;color:#b5c4d0;line-height:1.75}#helpKeys{display:flex;flex-wrap:wrap;gap:6px;margin-top:22px}#helpKeys span{padding:7px 9px;border:1px solid #31535a;background:#07171b;color:#72eadd;font:8px IBM Plex Mono,monospace;letter-spacing:.8px}.header-actions{display:flex;align-items:center;gap:10px}#vrAccess{display:inline-flex;align-items:center;justify-content:center;gap:9px;border-color:#ff70d5;background:#311126eb;color:#ffb4e7;box-shadow:0 0 18px #ff39be40,inset 0 0 13px #ff39be15;font-weight:700}#vrAccess:hover,#vrAccess:focus-visible{background:#4b173b;color:#fff;box-shadow:0 0 26px #ff39be70}#vrAccess svg{width:23px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#VRButton.xr-native-launch{position:fixed!important;inset:auto auto auto -10000px!important;opacity:0!important;pointer-events:none!important}@media(max-width:600px){.header-actions{gap:5px}#vrAccess,#sound{padding:9px 7px;font-size:8px}#vrAccess{gap:4px}#vrAccess svg{width:18px;height:13px}}body.look-locked #scene{cursor:none!important}body.look-locked:after,body.look-fallback:after{content:"";position:fixed;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border:1px solid #90fff2;border-radius:50%;box-shadow:0 0 8px #3effdf;pointer-events:none;z-index:4}#console{z-index:3;max-height:calc(100dvh - 175px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#31535a #101827}.console-heading{display:flex;justify-content:space-between;gap:8px;margin-bottom:9px}#consoleToggle,#globalHelp{position:static;padding:8px 10px;border-color:#365365;background:#0b1a24;color:#77eee1;font-size:8px}#consoleToggle{flex:1;text-align:left}#projectSection.collapsed,#actionBody.collapsed{display:none}#actionSection{margin-top:12px;padding-top:11px;border-top:1px solid #415064}#actionToggle{width:100%;padding:8px 10px;text-align:left;border-color:#31545a;background:#0a2226;color:#72eddf;font-size:8px}#actionStatus{margin:10px 2px 8px;color:#a9becb;font:9px/1.55 IBM Plex Mono,monospace;letter-spacing:.03em}#actionButtons{display:grid;grid-template-columns:1fr 1fr;gap:6px}#actionButtons[hidden]{display:none}#actionButtons button{padding:9px 5px;font-size:8px;border-color:#3c5964;background:#0d2830;color:#b6ede7}#actionButtons button:hover{border-color:#67f3e4;color:#fff}body.walk-mode #console{width:280px}@media(max-width:800px){#console{max-height:48dvh;bottom:145px;width:min(310px,92vw)}body.walk-mode #console{width:min(290px,92vw);left:auto;right:12px;transform:none;bottom:190px}#actionButtons button{font-size:7px}}.header-actions{gap:6px}#vrAccess,#sound{padding:8px 10px;font-size:9px;line-height:1.2}#vrAccess{gap:6px}#vrAccess svg{width:17px;height:12px}#status{top:85px}.readout{grid-template-columns:50px 1fr;gap:3px 7px;padding:9px 10px}.readout #slot{grid-column:2;grid-row:3;font-size:7px;letter-spacing:1px}.readout strong{font-size:11px}.readout small{font-size:7px;letter-spacing:1px}.controls{gap:5px;margin-top:7px}.controls button{padding:8px 9px;font-size:8px}.channels{gap:3px;margin-top:8px}.channels button{padding:7px 1px;font-size:7px;letter-spacing:0}.console-heading{gap:5px;margin-bottom:7px}#consoleToggle,#globalHelp,#actionToggle{padding:7px 8px;font-size:7px}#actionSection{margin-top:8px;padding-top:8px}@media(max-width:600px){#vrAccess,#sound{padding:8px 7px;font-size:8px}#status{top:76px}}.spray-mode #console{display:none}@media(max-width:800px){.spray-mode #sprayHud{bottom:190px;max-height:calc(100dvh - 210px);overflow-y:auto}}@media(min-width:801px){header{right:36px;top:24px}.header-actions{gap:5px}#vrAccess,#sound{padding:6px 8px;font-size:7px;min-height:29px}#vrAccess{gap:5px}#vrAccess svg{width:14px;height:10px}#status{right:36px;top:66px;font-size:7px;letter-spacing:1.2px}#status i{margin:0 7px}#console,body.walk-mode #console{right:36px;top:101px;width:230px;padding:7px;border-radius:9px}.console-heading{margin-bottom:5px}#consoleToggle,#globalHelp,#actionToggle{padding:6px 7px;font-size:7px}#actionSection{margin-top:6px;padding-top:6px}#actionStatus{font-size:8px;line-height:1.4}}@media(max-width:800px){.header-actions{gap:4px}#vrAccess,#sound{padding:6px 7px;font-size:7px}#vrAccess svg{width:14px;height:10px}#status{font-size:7px;letter-spacing:1px}#console{width:min(270px,82vw);padding:7px}body.walk-mode #console{width:min(270px,82vw)}}
