:root{--bg:#0a1a0e;--muted:#8aa892;--text:#e8f3e8;--accent:#7ac28a}*{box-sizing:border-box}html{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}body{margin:0;min-height:100vh;min-height:100dvh;overscroll-behavior:none;background:var(--bg);color:var(--text);overflow:hidden;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}a{color:var(--accent);text-decoration:none}.splash{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:.5rem;cursor:pointer;background-color:#020604;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.splash-image-container{position:relative;width:min(96vw,calc(96svh * .558));width:min(96vw,calc(96dvh * .558));max-height:96vh;max-height:96dvh;border-radius:1.25rem;padding:3px;background:linear-gradient(135deg,rgba(15,35,22,.85),rgba(5,13,9,.95));overflow:hidden}.splash-image-container:before{content:"";position:absolute;inset:-50%;background:conic-gradient(from 0deg,transparent 0deg,transparent 340deg,#2dd16b 350deg,#6ef5a0 355deg,#ffd780 358deg,#6ef5a0 1turn);animation:splash-border-rotate 4.5s linear infinite;filter:drop-shadow(0 0 8px rgba(109,245,160,.85)) drop-shadow(0 0 16px rgba(45,209,107,.55))}.splash-image-container:after{content:"";position:absolute;inset:3px;border-radius:calc(1.25rem - 3px);background:#020604}.splash-image{position:relative;z-index:1;display:block;width:100%;height:auto;max-height:calc(100vh - 1rem);max-height:calc(100dvh - 1rem);object-fit:contain;border-radius:1rem;box-shadow:0 20px 60px rgba(0,0,0,.6)}@keyframes splash-border-rotate{0%{transform:rotate(0deg)}33%{transform:rotate(270deg)}to{transform:rotate(1turn)}}.splash-prompt,.vibe-dismiss{position:absolute;bottom:calc(40px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:50;padding:12px 26px;border-radius:999px;background:rgba(122,200,138,.12);border:1px solid rgba(122,200,138,.55);box-shadow:0 0 18px rgba(122,200,138,.25);color:var(--text);font-size:1.1rem;font-weight:700;letter-spacing:.16em;text-indent:.16em;text-transform:uppercase;white-space:nowrap;animation:tap-pulse 1.6s ease-in-out infinite}@keyframes tap-pulse{0%,to{transform:translateX(-50%) scale(1);box-shadow:0 0 14px rgba(122,200,138,.2);opacity:.92}50%{transform:translateX(-50%) scale(1.06);box-shadow:0 0 26px rgba(122,200,138,.45);opacity:1}}@media (prefers-reduced-motion:reduce){.splash-prompt,.vibe-dismiss{animation:none}}.vibe{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:48px 28px;text-align:center;background:radial-gradient(ellipse at center,#0d2012 0,#040a06 70%,#020503 100%);cursor:pointer}.vibe-headline{font-size:clamp(1.1rem,4.2vw,1.45rem);color:var(--text);max-width:32ch;margin:0;line-height:1.4}.vibe-cta{display:inline-block;padding:14px 26px;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:1rem;letter-spacing:.05em}.vibe-links{display:flex;flex-direction:column;gap:10px;color:var(--muted);font-size:.95rem;line-height:1.5}.vibe-links a{color:var(--accent)}.title-screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;padding:0}.title-art{position:relative;flex:0 0 auto;width:100%;height:30vh;max-height:260px;min-height:180px;overflow:hidden}.title-art-image{position:absolute;inset:0;background:url(/marco-splash.jpg) center 48%/cover;filter:saturate(1.05)}.title-art-image:after{content:"";background:radial-gradient(ellipse 85% 75% at 50% 55%,transparent 45%,rgba(4,14,10,.55) 100%)}.title-art-fade,.title-art-image:after{position:absolute;inset:0;pointer-events:none}.title-art-fade{background:linear-gradient(180deg,transparent 0,transparent 62%,rgba(4,14,10,.75) 85%,#040e0a);z-index:1}.title-art-drops{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:3}.title-art-drops span{position:absolute;top:-16px;width:2px;height:14px;background:linear-gradient(180deg,rgba(170,230,255,.95),rgba(150,210,245,0));border-radius:1px;opacity:0;animation:drop-fall 5s cubic-bezier(.55,0,.75,.35) infinite;filter:drop-shadow(0 0 3px rgba(150,220,255,.7))}.title-art-drops span:first-child{left:12%;animation-delay:0s;animation-duration:4.8s}.title-art-drops span:nth-child(2){left:28%;animation-delay:1.1s;animation-duration:5.2s}.title-art-drops span:nth-child(3){left:44%;animation-delay:2.4s;animation-duration:4.6s}.title-art-drops span:nth-child(4){left:60%;animation-delay:3.3s;animation-duration:5s}.title-art-drops span:nth-child(5){left:76%;animation-delay:4.2s;animation-duration:4.9s}.title-art-drops span:nth-child(6){left:90%;animation-delay:5.5s;animation-duration:5.1s;height:12px}.title-art-drops span:nth-child(n+7){display:none}@keyframes drop-fall{0%{transform:translateY(0) translateX(0);opacity:0}2%{opacity:.95}28%{transform:translateY(30vh) translateX(-2px);opacity:0}to{transform:translateY(30vh) translateX(-2px);opacity:0}}.title-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:18px 24px calc(24px + env(safe-area-inset-bottom, 0px));gap:4px}.title-logo{font-size:clamp(2.2rem,9vw,3.6rem);font-weight:800;letter-spacing:.05em;background:linear-gradient(135deg,#4a8f66,#7ac28a 50%,#a8d87a);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:transparent;margin:0;line-height:1;filter:drop-shadow(0 0 24px rgba(122,200,138,.3));text-align:center}.title-subtitle{color:var(--muted);font-size:.92rem;margin:6px 0 0;text-align:center}.title-meta{color:var(--muted);font-size:.82rem;margin-top:4px;opacity:.8}.title-buttons{display:flex;flex-direction:column;gap:10px;margin-top:14px;width:100%;max-width:280px}.btn-primary,.btn-secondary{-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit;cursor:pointer;padding:12px 20px;border-radius:999px;font-size:.98rem;letter-spacing:.04em;min-height:44px;transition:transform .12s ease,opacity .12s ease}.btn-primary:active,.btn-secondary:active{transform:scale(.97);opacity:.85}.btn-primary{border:none;background:linear-gradient(135deg,#4a8f66,#7ac28a);color:#0a1a0e;font-weight:700}.btn-secondary{background:transparent;border:1px solid var(--muted);color:var(--text)}.title-gear{top:calc(16px + env(safe-area-inset-top));right:calc(16px + env(safe-area-inset-right));width:40px;height:40px;border-radius:50%;background:hsla(0,0%,100%,.04);border:1px solid hsla(0,0%,100%,.08);display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.title-footer,.title-gear{position:absolute;color:var(--muted)}.title-footer{bottom:calc(12px + env(safe-area-inset-bottom));left:0;right:0;text-align:center;font-size:.75rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;opacity:.6}.howto{position:fixed;inset:0;cursor:pointer;background-color:#020604}.howto-image{background-image:url(/marco-howto.jpg);background-repeat:no-repeat;background-position:50%;background-size:contain}.eartest{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:48px 28px;text-align:center;background:radial-gradient(ellipse at center,#0d2012 0,#040a06 70%,#020503 100%)}.eartest-title{font-size:1.35rem;letter-spacing:.18em;margin:0;color:var(--accent)}.eartest-copy{color:var(--text);font-size:1.05rem;margin:0;max-width:30ch;line-height:1.5}.eartest-pulse{width:56px;height:56px;border-radius:50%;background:radial-gradient(circle,var(--accent) 0,transparent 70%);animation:earpulse 1.2s ease-in-out infinite;margin-top:8px}@keyframes earpulse{0%,to{transform:scale(.85);opacity:.5}50%{transform:scale(1.15);opacity:1}}.settings{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:48px 28px;background:radial-gradient(ellipse at center,#0d2012 0,#040a06 70%,#020503 100%)}.settings-title{font-size:1.25rem;letter-spacing:.25em;color:var(--accent);margin:0 0 8px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(100%,320px);color:var(--text);font-size:1rem}.settings-row>span:first-child{flex:1 1}.settings-row input[type=range]{flex:2 1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:#26402e;border-radius:2px;outline:none}.settings-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--accent);cursor:pointer}.settings-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--accent)}.settings-value{color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:3.5ch;text-align:right;font-size:.9rem}.flash{position:absolute;bottom:calc(48px + env(safe-area-inset-bottom));left:0;right:0;text-align:center;color:var(--accent);font-size:.9rem;letter-spacing:.2em;text-transform:uppercase;animation:flashfade 1.6s ease-out forwards}@keyframes flashfade{0%{opacity:0;transform:translateY(6px)}15%{opacity:1;transform:translateY(0)}70%{opacity:1}to{opacity:0}}.title-logo{cursor:pointer}.stub{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:48px 24px;text-align:center}.stub p{color:var(--muted);margin:0;max-width:32ch;line-height:1.5}