:root{--gold-1:#f3d27a;--gold-2:#a8792b;--gold-3:#5c3f12;--ink:#f3ead2;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:ui-rounded, "SF Pro Rounded", -apple-system, "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;touch-action:none;overscroll-behavior:none;background:#05060c;margin:0;overflow:hidden}#gl{outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}#gallery{pointer-events:none;transition:opacity 1.6s;position:fixed;inset:0}#gallery.leaving{opacity:0}#gallery.gone{display:none}#wall{pointer-events:auto;background:radial-gradient(90% 70% at 50% 34%,#4a46608c 0%,#1e1e2e40 46%,#0000 78%),linear-gradient(#1b1b29 0%,#12121c 60%,#0a0a11 100%);transition:transform 1.9s cubic-bezier(.6,0,.3,1);position:absolute;inset:0}#frame-shadow,#frame{will-change:transform;transition:transform 1.9s cubic-bezier(.6,0,.3,1),opacity 1.2s;position:absolute}#frame-shadow{box-shadow:0 2px 3px #000000b3,0 26px 70px 4px #000000b8,0 0 140px 30px #5c78dc1a}#frame{background:linear-gradient(135deg, #fbe7a6 0%, var(--gold-1) 10%, var(--gold-2) 30%, #f0cf78 48%, var(--gold-3) 66%, #c79a41 82%, #f6dc93 100%) border-box;-webkit-mask-composite:xor;pointer-events:none;border-style:solid;border-color:#0000;-webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) padding-box exclude,linear-gradient(#000 0 0)}#frame-lip{pointer-events:none;transition:transform 1.9s cubic-bezier(.6,0,.3,1),opacity 1.2s;position:absolute;box-shadow:inset 0 0 0 2px #160d02eb,inset 0 0 0 3px #ffe29638,inset 0 10px 26px #0000008c,inset 0 0 60px #00001447}#gallery.leaving #frame,#gallery.leaving #frame-lip,#gallery.leaving #frame-shadow{opacity:0;transform:scale(2.6)}#gallery.leaving #wall{transform:scale(2.6)}#plaque{text-align:center;pointer-events:auto;width:min(92vw,720px);transition:opacity .6s;position:absolute;left:50%;transform:translate(-50%)}#gallery.leaving #plaque{opacity:0}#plaque h1{font-family:var(--serif);letter-spacing:.14em;text-transform:uppercase;color:#f6e7b8;text-shadow:0 0 28px #ffcd6047;margin:0;font-size:clamp(22px,3.3vh,38px);font-weight:500}#plaque .sub{font-family:var(--serif);letter-spacing:.04em;color:#e2dbc89e;margin:.35em 0 0;font-size:clamp(12px,1.6vh,16px)}#enter{font:600 clamp(12px, 1.5vh, 15px) / 1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#1a1305;cursor:pointer;background:linear-gradient(#ffe08a,#f2b63c);border:0;border-radius:999px;margin-top:1.1em;padding:.95em 1.9em;transition:transform .2s,filter .2s;animation:2.6s ease-in-out infinite breathe;box-shadow:inset 0 0 0 1px #fff0be80,0 8px 30px #ffb43252}#enter:hover{filter:brightness(1.08);transform:translateY(-1px)scale(1.03)}#enter:active{transform:scale(.98)}@keyframes breathe{0%,to{box-shadow:inset 0 0 0 1px #fff0be80,0 8px 30px #ffb43242}50%{box-shadow:inset 0 0 0 1px #fff0be80,0 8px 44px #ffbe468c}}#hud{pointer-events:none;transition:opacity 1.2s;position:fixed;inset:0}#hud.hidden{opacity:0}#hint{left:50%;bottom:max(22px, env(safe-area-inset-bottom));white-space:nowrap;letter-spacing:.04em;color:#fff6dedb;-webkit-backdrop-filter:blur(10px)saturate(1.4);background:#080c286b;border-radius:999px;gap:18px;padding:10px 18px;font-size:13px;transition:opacity 1.4s;display:flex;position:absolute;transform:translate(-50%);box-shadow:inset 0 0 0 1px #ffffff14}#hint.faded{opacity:0}kbd{min-width:1.7em;font:600 11px / 1.2 var(--sans);text-align:center;color:#1a1305;background:linear-gradient(#ffe9a8,#f0bd4e);border-radius:6px;margin-right:4px;padding:3px 6px;display:inline-block}#stars{top:max(18px, env(safe-area-inset-top));font:500 22px / 1 var(--serif);color:#ffe9a3;text-shadow:0 0 18px #ffc850bf,0 1px 2px #00001ecc;opacity:0;align-items:center;gap:8px;transition:opacity .8s,transform .25s;display:flex;position:absolute;left:22px}#stars.on{opacity:1}#stars.bump{transform:scale(1.22)}#stars .glyph{font-size:20px}#mult{font:700 13px / 1 var(--sans);letter-spacing:.04em;color:#1a1305;text-shadow:none;opacity:0;background:linear-gradient(#ffe9a8,#f0bd4e);border-radius:999px;margin-left:4px;padding:3px 9px;transition:opacity .25s,transform .25s;transform:scale(.8)}#mult.on{opacity:1;transform:scale(1)}#guide{top:max(16px, env(safe-area-inset-top));font:500 14px / 1 var(--serif);letter-spacing:.06em;color:#fff0c2;-webkit-backdrop-filter:blur(10px)saturate(1.4);text-shadow:0 0 14px #ffc85080;white-space:nowrap;opacity:0;background:#080c286b;border-radius:999px;align-items:center;gap:10px;padding:8px 16px 8px 12px;transition:opacity .8s;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 1px #ffffff14}#guide.on{opacity:1}#guide{--hl:#ffd76a}#guide-arrow{text-align:center;width:22px;height:22px;line-height:22px;font:700 15px / 22px var(--sans);color:#1a1305;text-shadow:none;will-change:transform;background:linear-gradient(#ffe9a8,#f0bd4e);border-radius:50%;display:inline-block}#guide-dist{font-family:var(--sans);opacity:.8;font-variant-numeric:tabular-nums;font-size:12px}#hint .goal{color:#ffe9a3;font-weight:600}#corner{top:max(14px, env(safe-area-inset-top));pointer-events:auto;gap:8px;display:flex;position:absolute;right:16px}#corner button{color:#fff6dee6;-webkit-backdrop-filter:blur(10px);cursor:pointer;background:#080c286b;border:0;border-radius:50%;width:38px;height:38px;font-size:16px;box-shadow:inset 0 0 0 1px #ffffff1a}#corner button.off{color:#fff6de59;text-decoration:line-through}#toast{font:italic 500 clamp(16px, 2.4vh, 24px) / 1.3 var(--serif);color:#fff3c9;text-align:center;text-shadow:0 0 22px #ffc85a99,0 2px 6px #000028e6;opacity:0;white-space:nowrap;transition:opacity 1.2s;position:absolute;top:16%;left:50%;transform:translate(-50%)}#toast.on{opacity:1}#bank{top:calc(max(18px, env(safe-area-inset-top)) + 32px);font:500 12px / 1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#ffecb8c7;text-shadow:0 1px 3px #000028e6;opacity:0;transition:opacity .8s;position:absolute;left:24px}#bank.on{opacity:1}#bank-count{font:600 14px / 1 var(--serif);letter-spacing:.04em;color:#ffe9a3;font-variant-numeric:tabular-nums}#hyper{top:calc(max(18px, env(safe-area-inset-top)) + 56px);opacity:0;background:#080c2880;border-radius:999px;width:150px;height:7px;transition:opacity .5s,box-shadow .4s;position:absolute;left:24px;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1f}#hyper.on{opacity:1}#hyper-fill{transform-origin:0;background:linear-gradient(90deg,#6fb6ff 0%,#b79bff 45%,#ff9ad5 75%,#ffe08a 100%);position:absolute;inset:0;transform:scaleX(0)}#hyper.live{animation:.5s ease-in-out infinite hyperpulse;box-shadow:inset 0 0 0 1px #ffffff80,0 0 26px #be96ffd9}@keyframes hyperpulse{0%,to{filter:brightness()}50%{filter:brightness(1.35)}}#trick{text-align:center;white-space:nowrap;opacity:0;flex-direction:column;align-items:center;gap:4px;transition:opacity .35s,transform .25s cubic-bezier(.2,1.6,.4,1);display:flex;position:absolute;top:66%;left:50%;transform:translate(-50%)scale(.9)}#trick.on{opacity:1;transform:translate(-50%)scale(1)}#trick-name{font:italic 600 clamp(20px, 3.4vh, 34px) / 1.1 var(--serif);letter-spacing:.03em;color:#fff3c9;text-shadow:0 0 22px #ffc85abf,0 2px 6px #000028e6}#trick-points{font:800 clamp(15px, 2.4vh, 22px) / 1 var(--sans);letter-spacing:.06em;color:#1a1305;background:linear-gradient(#ffe9a8,#f0bd4e);border-radius:999px;padding:4px 12px}#trick-points:empty{display:none}#trick.live #trick-name{opacity:.85;font-size:clamp(16px,2.6vh,24px)}#trick.combo #trick-name{color:#ffe2f4;text-shadow:0 0 26px #ff82d2d9,0 2px 6px #000028e6}#trick.bail #trick-name{color:#ffb4a4;text-shadow:0 0 18px #ff5a3c99,0 2px 6px #000028e6}#brief{text-align:center;color:#fff3d4;-webkit-backdrop-filter:blur(14px)saturate(1.4);opacity:0;background:#080c2885;border-radius:20px;width:min(88vw,520px);padding:20px 26px 16px;transition:opacity .9s,transform .9s;position:absolute;top:24%;left:50%;transform:translate(-50%,8px);box-shadow:inset 0 0 0 1px #ffe29638,0 18px 60px #00001e80}#brief.on{opacity:1;transform:translate(-50%)}#brief p{font:500 14.5px / 1.45 var(--serif);letter-spacing:.02em;color:#fff3d4db;margin:0 0 8px}#brief .lead{font:600 clamp(18px, 2.7vh, 24px) / 1.3 var(--serif);color:#ffe9a3;text-shadow:0 0 20px #ffc85080}#brief .keys{font:500 12px / 1.8 var(--sans);letter-spacing:.04em;color:#fff6debf;margin-top:12px}#toast{z-index:2}#riders{right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));font:500 12.5px / 1 var(--sans);letter-spacing:.04em;color:#fff6dee0;-webkit-backdrop-filter:blur(10px)saturate(1.4);opacity:0;background:#080c2875;border-radius:999px;align-items:center;gap:7px;padding:8px 14px 8px 11px;transition:opacity .9s;display:flex;position:absolute;box-shadow:inset 0 0 0 1px #ffffff14}#riders.on{opacity:1}#riders .dot{background:#7dffa8;border-radius:50%;width:8px;height:8px;animation:2.2s ease-in-out infinite pulse;box-shadow:0 0 10px #7dffa8}#riders-count{color:#ffe9a3;font-variant-numeric:tabular-nums;font-weight:700}#riders-best:not(:empty){color:#ffe9a3d9;border-left:1px solid #ffffff2e;margin-left:4px;padding-left:10px}.map-pips{vertical-align:1px;gap:2px;margin-left:6px;display:inline-flex}.map-pips i{border:1px solid var(--hl);opacity:.7;width:6px;height:6px;transform:rotate(45deg)}.map-pips i.got{background:var(--hl);opacity:1}#map{--map:208px;left:max(18px, env(safe-area-inset-left));bottom:max(18px, env(safe-area-inset-bottom));opacity:0;pointer-events:none;flex-direction:column;gap:12px;width:236px;transition:opacity .9s,transform .9s;display:flex;position:absolute;transform:translateY(8px)}#map.on{opacity:1;pointer-events:auto;transform:none}#map-disc{width:var(--map);height:var(--map);background:linear-gradient(135deg, #fbe7a6 0%, var(--gold-1) 12%, var(--gold-2) 34%, #f0cf78 52%, var(--gold-3) 70%, #c79a41 86%, #f6dc93 100%);border-radius:50%;padding:4px;position:relative;box-shadow:0 0 0 1px #140c00bf,0 12px 38px #00001a99,0 0 46px #ffc45429}#map-canvas{cursor:pointer;border-radius:50%;width:100%;height:100%;display:block}#map-gloss{pointer-events:none;background:radial-gradient(120% 90% at 30% 12%,#ffffff1a,#fff0 46%);border-radius:50%;position:absolute;inset:4px;box-shadow:inset 0 0 0 1.5px #160d02e6,inset 0 6px 18px #00001e8c,inset 0 -10px 26px #00002859}#map-list{flex-direction:column;gap:5px;display:flex}.map-head{font:600 10.5px / 1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#ffecb8cc;text-shadow:0 1px 3px #000028e6;justify-content:space-between;align-items:baseline;padding:0 6px 1px;display:flex}.map-key{letter-spacing:.06em;text-transform:none;opacity:.75}.map-key kbd{margin-right:3px;padding:2px 5px;font-size:9.5px}.map-row{--hl:#ffd76a;width:100%;font:inherit;text-align:left;color:#fff6deeb;-webkit-backdrop-filter:blur(10px)saturate(1.4);cursor:pointer;background:#080c2875;border:0;border-radius:13px;align-items:center;gap:9px;padding:6px 10px 6px 7px;transition:background .2s,box-shadow .2s,opacity .3s;display:flex;box-shadow:inset 0 0 0 1px #ffffff14}.map-row:hover{background:#141c4aa8}.map-row.off{display:none}.map-row.dest{box-shadow:0 0 0 1.5px var(--hl) inset, 0 0 22px #ffc85a24;background:#1a16329e}.map-ico{width:26px;height:26px;box-shadow:0 0 0 1.3px var(--hl) inset;background:#070a26e6;border-radius:50%;flex:none;place-items:center;display:grid}.map-ico svg{fill:none;width:16px;height:16px;stroke:var(--hl);stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round}.map-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.map-name{font:500 13.5px / 1.1 var(--serif);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.map-kind{font:500 9.5px / 1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--hl);opacity:.85;white-space:nowrap}.map-dist{font:500 11.5px / 1 var(--sans);font-variant-numeric:tabular-nums;opacity:.82;white-space:nowrap}.map-arrow{text-align:center;width:16px;height:16px;line-height:16px;font:700 12px / 16px var(--sans);color:var(--hl);will-change:transform;flex:none}#loading{color:#f6e7b8bf;font:italic 16px var(--serif);letter-spacing:.08em;z-index:10;background:#07081a;flex-direction:column;justify-content:center;align-items:center;gap:18px;transition:opacity .9s;display:flex;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}#loading .pulse{background:radial-gradient(circle,#fff2b8 0%,#ffc94a 38%,#ffbe3c00 70%);border-radius:50%;width:46px;height:46px;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:.6;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}#fatal{color:#f6e7b8;font:18px / 1.5 var(--serif);text-align:center;z-index:20;background:#07081a;place-items:center;padding:10vw;display:grid;position:fixed;inset:0}.hidden{display:none!important}#hud.hidden{display:block!important}@media (max-width:1500px){#hint{white-space:normal;border-radius:18px;flex-wrap:wrap;justify-content:center;gap:8px 16px;bottom:62px;left:280px;right:16px;transform:none}}@media (max-width:760px){#hint{gap:10px;padding:8px 12px;font-size:11px;left:160px}#riders-label,#riders-best{display:none}#guide{top:max(58px, env(safe-area-inset-top))}#map{--map:132px;width:132px}#map-list{display:none}}@media (max-height:560px){#map-list{display:none}}
