.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;top:0;left:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:0 0}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{-webkit-transform-origin:0 0;width:1600px;height:1600px}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{width:auto;padding:0;max-width:none!important;max-height:none!important}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:#33b5e566}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{box-sizing:border-box;z-index:800;width:0;height:0}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{z-index:800;pointer-events:visiblePainted;pointer-events:auto;position:relative}.leaflet-top,.leaflet-bottom{z-index:1000;pointer-events:none;position:absolute}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{outline-offset:1px;background:#ddd}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{background:#ffffff80;border:2px dotted #38f}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:.75rem;line-height:1.5}.leaflet-bar{border-radius:4px;box-shadow:0 1px 5px #000000a6}.leaflet-bar a{text-align:center;color:#000;background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;text-decoration:none;display:block}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.leaflet-bar a.leaflet-disabled{cursor:default;color:#bbb;background-color:#f4f4f4}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{text-indent:1px;font:700 18px Lucida Console,Monaco,monospace}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{background:#fff;border-radius:5px;box-shadow:0 1px 5px #0006}.leaflet-control-layers-toggle{background-image:url(../media/layers.3muxcl8sz6330.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(../media/layers-2x.23wrxu3xxu9-i.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{color:#333;background:#fff;padding:6px 10px 6px 6px}.leaflet-control-layers-scrollbar{padding-right:5px;overflow:hidden scroll}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{font-size:1.08333em;display:block}.leaflet-control-layers-separator{border-top:1px solid #ddd;height:0;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(../media/marker-icon.1le94j_pe_ih1.png)}.leaflet-container .leaflet-control-attribution{background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{color:#333;padding:0 5px;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{width:1em;height:.6669em;vertical-align:baseline!important;display:inline!important}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{white-space:nowrap;box-sizing:border-box;text-shadow:1px 1px #fff;background:#fffc;border:2px solid #777;border-top:none;padding:2px 5px 1px;line-height:1.1}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{background-clip:padding-box;border:2px solid #0003}.leaflet-popup{text-align:center;margin-bottom:20px;position:absolute}.leaflet-popup-content-wrapper{text-align:left;border-radius:12px;padding:1px}.leaflet-popup-content{min-height:1px;margin:13px 24px 13px 20px;font-size:1.08333em;line-height:1.3}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{pointer-events:none;width:40px;height:20px;margin-top:-1px;margin-left:-20px;position:absolute;left:50%;overflow:hidden}.leaflet-popup-tip{pointer-events:auto;width:17px;height:17px;margin:-10px auto 0;padding:1px;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{color:#333;background:#fff;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{text-align:center;color:#757575;background:0 0;border:none;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;text-decoration:none;position:absolute;top:0;right:0}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";width:24px;filter:progid:DXImageTransform.Microsoft.Matrix(M11=.707107, M12=.707107, M21=-.707107, M22=.707107);margin:0 auto}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{color:#222;white-space:nowrap;-webkit-user-select:none;user-select:none;pointer-events:none;background-color:#fff;border:1px solid #fff;border-radius:3px;padding:6px;position:absolute;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{pointer-events:none;content:"";background:0 0;border:6px solid #0000;position:absolute}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{margin-left:-6px;left:50%}.leaflet-tooltip-top:before{border-top-color:#fff;margin-bottom:-12px;bottom:0}.leaflet-tooltip-bottom:before{border-bottom-color:#fff;margin-top:-12px;margin-left:-6px;top:0}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{margin-top:-6px;top:50%}.leaflet-tooltip-left:before{border-left-color:#fff;margin-right:-12px;right:0}.leaflet-tooltip-right:before{border-right-color:#fff;margin-left:-12px;left:0}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(../media/archivo-latin.1h4hl0m83hjjz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(../media/archivo-latin-ext.27soo5q86xy9f.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--bg:#fff;--surface:#fff;--surface-2:#f2f2f0;--border:#d6d6d6;--border-strong:#000;--text:#000;--text-muted:#4d4d4d;--primary:#b0157c;--primary-strong:#8a0f61;--primary-soft:#f7e3f0;--on-primary:#fff;--accent:#b0157c;--on-accent:#fff;--success:#1f7a3a;--success-soft:#ddf0e2;--danger:#c4161c;--danger-soft:#fbe0e0;--warning:#8a5a00;--warning-soft:#fff0cc;--info:#1d6f9a;--info-soft:#dcedf7;--locked:#8c8c8c;--team:#b0157c;--course:#b0157c;--forest:#d3edc5;--clearing:#ffc861;--contour:#b7652b;--radius:6px;--radius-sm:6px;--radius-control:10px;--shadow:none;--shadow-float:0 6px 20px #0000002e;--tabbar-h:64px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--font:"Archivo", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);font-family:var(--font);-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;margin:0;font-size:16px;line-height:1.45}h1,h2,h3{margin:0 0 8px;line-height:1.2}h1{font-size:1.5rem}h2{font-size:1.2rem}p{margin:0 0 10px}a{color:var(--primary)}img{max-width:100%;height:auto}:focus-visible{outline:3px solid var(--clearing);outline-offset:2px}.page{width:100%;max-width:760px;padding:16px 16px calc(24px + var(--safe-bottom));margin:0 auto}.page--play{padding-bottom:calc(var(--tabbar-h) + 24px + var(--safe-bottom))}.page--full{max-width:none;padding:0}.topbar{z-index:500;min-height:56px;padding:calc(6px + var(--safe-top)) 12px 6px;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar__title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:1.05rem;font-weight:700;overflow:hidden}.topbar__team{align-items:center;gap:8px;display:inline-flex}.stack{flex-direction:column;gap:12px;display:flex}.stack--lg{gap:20px}.row{align-items:center;gap:10px;display:flex}.row--between{justify-content:space-between}.row--wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.center{text-align:center}.muted{color:var(--text-muted)}.big{font-size:1.6rem;font-weight:800}.mono{letter-spacing:.06em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.hidden-field{width:1px;height:1px;overflow:hidden;position:absolute!important;left:-10000px!important}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card--link{color:inherit;text-decoration:none;display:block}.card--link:active{transform:scale(.995)}.card__title{margin:0 0 4px;font-size:1.05rem;font-weight:700}.card__media{border-radius:var(--radius) var(--radius) 0 0;max-height:200px;margin:-16px -16px 12px;overflow:hidden}.card__media img{object-fit:cover;width:100%;display:block}.stat{flex-direction:column;gap:2px;display:flex}.stat__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.stat__value{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800}.team-hero{border-left:6px solid var(--team)}.team-dot{background:var(--team);border:2px solid #00000026;border-radius:50%;flex:none;width:14px;height:14px;display:inline-block}.team-dot--lg{width:22px;height:22px}.prose{overflow-wrap:anywhere}.prose ul,.prose ol{margin:0 0 10px;padding-left:1.3em}.prose li{margin-bottom:4px}.prose img{border-radius:var(--radius-sm)}.btn{background:var(--primary);min-height:48px;color:var(--on-primary);font:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:2px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:700;text-decoration:none;transition:background .15s,transform 50ms;display:inline-flex}.btn:hover{background:var(--primary-strong)}.btn:active{transform:translateY(1px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn--block{width:100%;display:flex}.btn--lg{min-height:56px;font-size:1.08rem}.btn--secondary{background:var(--surface);color:var(--primary);border-color:var(--primary)}.btn--ghost{color:var(--primary);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--primary-soft)}.btn--danger{background:var(--danger)}.btn--success{background:var(--success)}.icon-btn{width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--surface-2)}.field{flex-direction:column;gap:6px;display:flex}.label{font-size:.95rem;font-weight:600}.input,.textarea,.select{border:2px solid var(--border);background:var(--surface);width:100%;min-height:48px;color:var(--text);font:inherit;border-radius:12px;padding:10px 14px;font-size:1rem}.textarea{resize:vertical;min-height:96px}.input:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.input--code{text-transform:uppercase;text-align:center;letter-spacing:.15em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.5rem}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-size:.875rem;font-weight:600}.check{cursor:pointer;align-items:flex-start;gap:12px;min-height:48px;padding:10px 4px;display:flex}.check input{width:24px;height:24px;accent-color:var(--primary);flex:none;margin:0}.consent-text{background:var(--surface-2);border-radius:var(--radius-sm);max-height:180px;padding:12px;font-size:.9rem;overflow:auto}.segmented{background:var(--surface-2);scrollbar-width:none;border-radius:12px;gap:4px;padding:4px;display:flex;overflow-x:auto}.segmented::-webkit-scrollbar{display:none}.segmented__btn{min-height:44px;color:var(--text-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;flex:1 0 auto;padding:6px 12px;font-size:.92rem;font-weight:700}.segmented__btn[aria-selected=true],.segmented__btn[aria-pressed=true]{background:var(--surface);color:var(--primary);box-shadow:var(--shadow)}.segmented__count{background:var(--primary-soft);min-width:20px;color:var(--primary);border-radius:10px;margin-left:4px;padding:0 6px;font-size:.8rem;display:inline-block}.options{flex-direction:column;gap:10px;display:flex}.option{border:2px solid var(--border);background:var(--surface);min-height:56px;font:inherit;text-align:left;color:var(--text);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.option[aria-checked=true]{border-color:var(--primary);background:var(--primary-soft)}.option__mark{border:2px solid var(--border);border-radius:50%;flex:none;justify-content:center;align-items:center;width:26px;height:26px;font-size:.85rem;font-weight:800;display:inline-flex}.option--multi .option__mark{border-radius:6px}.option[aria-checked=true] .option__mark{border-color:var(--primary);background:var(--primary);color:var(--on-primary)}.options--bool{flex-direction:row}.options--bool .option{flex:1;justify-content:center;font-size:1.1rem;font-weight:700}.badge{background:var(--surface-2);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.badge--available{background:var(--primary-soft);color:var(--primary-strong)}.badge--in_progress,.badge--review,.badge--pending_review,.badge--current{background:var(--warning-soft);color:var(--warning)}.badge--completed,.badge--passed,.badge--success{background:var(--success-soft);color:var(--success)}.badge--failed,.badge--expired,.badge--rejected,.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--retry{color:#9d174d;background:#fde7f3}.badge--bonus{color:#6b21a8;background:#f3e8ff}.badge--required{color:#9a3412;background:#ffedd5}.badge--locked{color:#374151;background:#e5e7eb}.badge--points{background:var(--accent);color:var(--on-accent)}.banner{background:var(--info-soft);color:#0b3b6e;border:1px solid #b6d7f7;border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:.93rem;font-weight:600;display:flex}.banner--warning{background:var(--warning-soft);color:var(--warning);border-color:#f1cf8f}.banner--danger{background:var(--danger-soft);color:var(--danger);border-color:#f4b4ad}.banner--success{background:var(--success-soft);color:var(--success);border-color:#9ddcb7}.banner--offline{color:#fff;background:#2d3340;border-color:#2d3340}.banner .btn{margin-left:auto}.banners{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.result{border-radius:var(--radius);border:2px solid;padding:16px;font-weight:600}.result__title{margin-bottom:4px;font-size:1.25rem;font-weight:800}.result--correct{background:var(--success-soft);color:#064e26;border-color:#6fcf97}.result--wrong{background:var(--danger-soft);color:#7a1a12;border-color:#f1998e}.result--pending{background:var(--warning-soft);color:#6b3a00;border-color:#f1cf8f}.result--queued{color:#2d3340;background:#eceff4;border-color:#b8c0cc}.list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.list-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;align-items:center;gap:12px;min-height:64px;padding:14px;text-decoration:none;display:flex}a.list-item:active{background:var(--surface-2)}.list-item--locked{opacity:.75;background:#f7f8fa}.list-item__icon{background:var(--primary-soft);width:42px;height:42px;color:var(--primary);border-radius:12px;flex:none;justify-content:center;align-items:center;display:inline-flex}.list-item__title{font-weight:700}.list-item__meta{color:var(--text-muted);font-size:.85rem}.table{border-collapse:collapse;background:var(--surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;padding:12px 10px}.table th{text-transform:uppercase;color:var(--text-muted);background:var(--surface-2);font-size:.8rem}.table tr.is-me td{background:var(--primary-soft);font-weight:700}.table td.num,.table th.num{text-align:right}.rank{background:var(--surface-2);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-weight:800;display:inline-flex}.rank--1{background:#fcd34d}.rank--2{background:#d1d5db}.rank--3{background:#f3b27a}.progress{background:var(--surface-2);border-radius:6px;height:10px;overflow:hidden}.progress__bar{background:var(--primary);border-radius:6px;height:100%;transition:width .3s}.timer{font-variant-numeric:tabular-nums;font-weight:800}.timer--warn{color:var(--warning)}.timer--over{color:var(--danger)}.spinner{border:3px solid var(--primary-soft);border-top-color:var(--primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}.loading{color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;padding:48px 16px;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.tabbar{z-index:900;height:calc(var(--tabbar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--surface);border-top:1px solid var(--border);justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #1018280f}.tabbar__item{min-width:0;color:var(--text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.7rem;font-weight:700;text-decoration:none;display:flex;position:relative}.tabbar__item[aria-current=page]:before{content:"";background:var(--primary);border-radius:0 0 3px 3px;height:3px;position:absolute;top:0;left:25%;right:25%}.tabbar__badge{background:var(--danger);color:#fff;text-align:center;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:.7rem;line-height:18px;position:absolute;top:6px;left:calc(50% + 6px)}@media (min-width:768px){.tabbar__item{flex-direction:row;gap:8px;font-size:.9rem}}.toasts{z-index:2000;left:0;right:0;top:calc(8px + var(--safe-top));pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 12px;display:flex;position:fixed}.toast{pointer-events:auto;color:#fff;background:#1f2633;border-radius:12px;align-items:flex-start;gap:10px;width:100%;max-width:520px;padding:12px 14px;font-weight:600;animation:.2s ease-out toast-in;display:flex;box-shadow:0 8px 24px #00000040}.toast--success{background:#0b6334}.toast--error{background:#9c1f15}.toast--warning{background:#8a4b00}.toast--sticky{border:3px solid #fcd34d;font-size:1.05rem}.toast a{color:inherit}.toast__title{text-transform:uppercase;opacity:.85;font-size:.8rem}.toast button{color:inherit;cursor:pointer;background:0 0;border:0;min-width:36px;min-height:36px;margin-left:auto;font-size:1.3rem}@keyframes toast-in{0%{opacity:0;transform:translateY(-12px)}}.map{border-radius:var(--radius);border:1px solid var(--border);z-index:0;background:#dfe5ec;width:100%;height:260px;overflow:hidden}.map--full{top:56px;left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom));border:0;border-radius:0;height:auto;position:fixed}.map--mini{height:200px}.map-fab{right:14px;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 16px);z-index:800;background:var(--surface);width:56px;height:56px;color:var(--primary);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;display:inline-flex;position:fixed;box-shadow:0 4px 14px #0003}.sheet{left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom));z-index:850;background:var(--surface);border-radius:18px 18px 0 0;max-height:60vh;padding:16px 16px 20px;animation:.2s ease-out sheet-in;position:fixed;overflow:auto;box-shadow:0 -6px 24px #0000002e}@media (min-width:768px){.sheet{left:auto;right:16px;bottom:calc(var(--tabbar-h) + 16px);border-radius:18px;width:380px}}@keyframes sheet-in{0%{opacity:0;transform:translateY(30px)}}.leaflet-container{font:inherit}.gq-marker{background:0 0;border:0}.gq-pin{background:var(--primary);border:3px solid #fff;border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:34px;height:34px;display:flex;position:relative;transform:rotate(-45deg);box-shadow:0 2px 6px #00000059}.gq-pin>span{color:var(--on-primary);font-size:15px;font-weight:800;line-height:1;transform:rotate(45deg)}.gq-pin--completed{background:#8b95a5}.gq-pin__req{color:#fff;background:#ea580c;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:900;line-height:1;display:flex;position:absolute;top:calc(50% - 10px);right:-12px;transform:rotate(45deg);box-shadow:0 1px 3px #0006}.gq-pin--locked{opacity:.6;background:#4b5563}.gq-pin--in_progress{background:#d97706;animation:1.4s ease-in-out infinite pulse}.gq-pin--start{background:#0d7a3f}.gq-pin--finish{background:#111827}@keyframes pulse{50%{box-shadow:0 0 0 10px #d9770640}}.scanner{aspect-ratio:1;border-radius:var(--radius);background:#000;width:100%;max-height:60vh;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%}.scanner__frame{border:4px solid #ffffffe6;border-radius:18px;position:absolute;inset:15%;box-shadow:0 0 0 9999px #00000059}.preview{object-fit:contain;border-radius:var(--radius);background:#111;width:100%;max-height:50vh}.code-display{border:2px dashed var(--primary);border-radius:var(--radius);background:var(--primary-soft);text-align:center;letter-spacing:.12em;-webkit-user-select:all;user-select:all;padding:16px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:2rem;font-weight:800}.msg{background:var(--surface);border:1px solid var(--border);border-radius:14px;max-width:85%;padding:10px 14px}.msg--out{background:var(--primary-soft);border-color:color-mix(in srgb, var(--primary) 25%, transparent);align-self:flex-end}.msg--high{border:2px solid var(--danger);background:var(--danger-soft)}.msg--unread{box-shadow:inset 4px 0 0 var(--primary)}.msg__meta{color:var(--text-muted);margin-bottom:4px;font-size:.78rem}.composer{bottom:calc(var(--tabbar-h) + var(--safe-bottom));background:var(--bg);gap:8px;padding:10px 0;display:flex;position:sticky}.hero{text-align:center;padding:28px 16px 8px}.hero__logo{width:72px;height:72px;margin:0 auto 12px}.logo-chip{border:1px solid var(--border);background:#fff;border-radius:10px;flex:none;justify-content:center;align-items:center;max-width:128px;height:40px;padding:4px 8px;display:inline-flex}.logo-chip img{object-fit:contain;width:auto;max-width:100%;max-height:32px;display:block}.logo-chip--lg{max-width:180px;height:64px;padding:6px 12px}.logo-chip--lg img{max-height:52px}.logo-chip--sm{border-radius:8px;max-width:96px;height:30px;padding:3px 6px}.logo-chip--sm img{max-height:24px}.brandbar{z-index:500;min-height:56px;padding:calc(6px + var(--safe-top)) 12px 6px;background:var(--primary);color:var(--on-primary);align-items:center;gap:10px;display:flex;position:sticky;top:0}.brandbar__text{flex-direction:column;flex:1;min-width:0;display:flex}.brandbar__title{white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:800;overflow:hidden}.brandbar__sub{opacity:.9;white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:600;overflow:hidden}.organizer{color:inherit;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}a.organizer{min-height:44px}.organizer__label{color:var(--text-muted);font-size:.78rem;font-weight:600;display:block}.organizer__name{overflow-wrap:anywhere;font-weight:700;display:block}.cover{object-fit:cover;border-radius:var(--radius);width:100%;max-height:240px;display:block}.card>.cover:first-child{border-radius:var(--radius) var(--radius) 0 0;width:calc(100% + 32px);max-width:none;margin:-16px -16px 4px}.sponsors{flex-direction:column;gap:10px;display:flex}.sponsors__label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:600}.sponsors__list{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.sponsor{border:1px solid var(--border);min-width:56px;max-width:160px;min-height:56px;color:var(--text);text-align:center;background:#fff;border-radius:12px;justify-content:center;align-items:center;padding:6px 12px;font-size:.9rem;font-weight:700;text-decoration:none;display:inline-flex}.sponsor img{object-fit:contain;width:auto;max-width:100%;max-height:44px;display:block}.contact-line{overflow-wrap:anywhere;white-space:pre-line;align-items:flex-start;gap:10px;display:flex}.fx-bar{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.fx-chip{border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:6px 12px;font-size:.88rem;font-weight:700;text-decoration:none;display:inline-flex}.fx-chip--bad{background:var(--danger-soft);color:var(--danger);border-color:#f4b4ad}.fx-chip--good{background:var(--success-soft);color:var(--success);border-color:#9ddcb7}.fx-chip .timer{font-size:.85rem}.map-overlay{z-index:650;pointer-events:none;position:absolute;inset:0}.map--frozen .leaflet-control-zoom{display:none}.fx-ice{pointer-events:auto;cursor:not-allowed;-webkit-backdrop-filter:saturate(.4)blur(1.5px);backdrop-filter:saturate(.4)blur(1.5px);background:linear-gradient(135deg,#bfe4ff8c,#ffffff40 40%,#a0d2ff80);position:absolute;inset:0;box-shadow:inset 0 0 60px 20px #add8ffe6}.map--fog .leaflet-tile-pane{filter:blur(4px)grayscale(.7)brightness(1.15)}.fx-fog{background:radial-gradient(circle at 50% 45%,#f0f2f50d,#d6dbe299 75%);animation:5s ease-in-out infinite alternate fog-drift;position:absolute;inset:0}@keyframes fog-drift{to{opacity:.7}}.fx-map-banners{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:8px;left:8px;right:8px}.map--full .fx-map-banners{bottom:90px}.fx-map-banner{color:#fff;background:#1f2633eb;border-radius:12px;align-items:center;gap:10px;padding:10px 14px;font-weight:800;display:flex;box-shadow:0 4px 14px #00000040}.fx-map-banner--ice{background:#0c4a82f0}.gq-other{border:3px solid #fff;border-radius:50%;width:26px;height:26px;animation:1.6s ease-in-out infinite pulse-other;box-shadow:0 0 0 3px #00000040,0 2px 6px #0006}@keyframes pulse-other{50%{box-shadow:0 0 0 9px #00000014,0 2px 6px #0006}}.fx-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.fx-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--primary);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:14px;display:flex}.fx-card--sabotage{border-top-color:var(--danger)}.fx-card--power{border-top-color:var(--primary)}.fx-card--affection{border-top-color:#db2777}.fx-card__icon{font-size:2rem;line-height:1}.fx-card__title{font-size:1.05rem;font-weight:800;display:block}.fx-card .btn{margin-top:auto}.fx-cooldown{background:var(--surface-2);min-height:48px;color:var(--text-muted);border-radius:12px;justify-content:center;align-items:center;gap:6px;margin-top:auto;font-weight:700;display:flex}.sheet-backdrop{z-index:1500;background:#0f172a73;position:fixed;inset:0}.sheet-backdrop .sheet{max-height:85vh;padding-bottom:calc(20px + var(--safe-bottom));z-index:1501;bottom:0}@media (min-width:768px){.sheet-backdrop .sheet{bottom:16px}}.fx-teams{border:0;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.fx-team{border:2px solid var(--border);cursor:pointer;border-radius:12px;align-items:center;gap:12px;min-height:52px;padding:8px 12px;font-weight:700;display:flex}.fx-team input{width:22px;height:22px;accent-color:var(--primary);margin:0}.fx-team.is-selected{border-color:var(--primary);background:var(--primary-soft)}.fx-rain{z-index:1900;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fx-drop{will-change:transform;line-height:1;animation-name:fx-fall;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;top:-60px}@keyframes fx-fall{0%{opacity:1;transform:translate(0)rotate(0)}85%{opacity:1}to{transform:translate(var(--drift,0), 110vh) rotate(25deg);opacity:0}}.fx-still{z-index:1900;pointer-events:none;filter:drop-shadow(0 4px 12px #00000040);font-size:5rem;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%)}.reveal-backdrop{z-index:1800;background:#0f172a99;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.reveal-card{background:var(--surface);border-top:8px solid var(--team,var(--primary));text-align:center;border-radius:22px;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:380px;padding:24px 18px 18px;animation:.5s cubic-bezier(.2,1.4,.4,1) reveal-in;display:flex;box-shadow:0 20px 60px #00000059}.reveal-card--podium{background:linear-gradient(180deg, #fff7e0, var(--surface) 55%)}.reveal-card--gold{background:linear-gradient(180deg, #ffe58a, #fff7d6 45%, var(--surface));border-top-color:#d4a017}.reveal-card__rank{font-size:4rem;line-height:1}.reveal-card__place{color:var(--text);font-size:1.8rem;font-weight:900}.reveal-card__team{overflow-wrap:anywhere;align-items:center;gap:10px;font-size:1.4rem;font-weight:800;display:flex}.reveal-card__points{color:var(--text-muted);font-size:1.2rem;font-weight:700}@keyframes reveal-in{0%{opacity:0;transform:scale(.6)}}.suspense__icon{font-size:3.5rem;line-height:1;animation:1.2s ease-in-out infinite suspense-beat}@keyframes suspense-beat{50%{transform:scale(1.15)rotate(-4deg)}}.suspense__dots{letter-spacing:.1em;margin:0;font-weight:700}.lb-mystery td{background:repeating-linear-gradient(45deg, var(--surface), var(--surface) 10px, var(--surface-2) 10px, var(--surface-2) 20px)}.lb-new td{animation:.7s ease-out lb-rise}@keyframes lb-rise{0%{opacity:0;background:#fff4c2;transform:translateY(24px)}}.msg--team{border-left:4px solid var(--team,var(--border))}.composer--stack{flex-direction:column;gap:6px}.timeline{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.timeline__item{gap:12px;padding-bottom:14px;display:flex;position:relative}.timeline__item:not(:last-child):before{content:"";background:var(--border);width:2px;position:absolute;top:40px;bottom:0;left:19px}.timeline__item--visited:not(:last-child):before{background:var(--primary)}.timeline__num{z-index:1;background:var(--surface);width:40px;height:40px;color:var(--text-muted);border:2px solid var(--border);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:800;display:inline-flex;position:relative}.timeline__item--visited .timeline__num{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.timeline__item--now .timeline__num{background:var(--primary);border-color:var(--primary);color:var(--on-primary);box-shadow:0 0 0 5px var(--primary-soft)}.timeline__body{flex:1;min-width:0;min-height:auto}.timeline__item--now .timeline__body{border:2px solid var(--primary)}.timeline__item--locked .timeline__body{background:#f7f8fa}.tour-next{border:2px solid var(--primary)}.tour-card__image{object-fit:cover;border-radius:var(--radius);width:100%;max-height:280px;display:block}@media (min-width:768px){.page{padding-top:24px}.map{height:340px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.arrival{left:0;right:0;bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 6px);z-index:950;pointer-events:none;justify-content:center;padding:0 12px 10px;display:flex;position:fixed}.arrival__card{pointer-events:auto;color:#121826;border-top:5px solid var(--primary,#1747c9);background:#fff;border-radius:16px;gap:12px;width:100%;max-width:520px;padding:14px 16px;animation:.35s cubic-bezier(.2,.9,.3,1.2) arrival-in;display:flex;box-shadow:0 12px 32px #00000047}.arrival__pin{font-size:30px;line-height:1;animation:.9s ease-out .2s 2 arrival-bounce}.arrival__body{flex:1;min-width:0}.arrival__title{color:var(--primary-strong,var(--primary,#1747c9));font-size:18px;font-weight:800}.arrival__place{margin-top:2px;font-weight:700}.arrival__text{color:#4b5567;margin:8px 0 4px}.arrival__list{margin:0 0 4px;padding-left:18px}.arrival__list li{margin:2px 0}.arrival__list a{color:inherit;font-weight:600}.arrival__actions{gap:8px;margin-top:10px;display:flex}@keyframes arrival-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}@keyframes arrival-bounce{0%,to{transform:none}40%{transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.arrival__card,.arrival__pin{animation:none}}.journal-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.journal-stat{text-align:center;flex-direction:column;align-items:center;gap:2px;padding:12px 6px;display:flex}.journal-stat strong{font-size:22px;font-weight:800}.journal-stat span{color:var(--muted,#6b7280);font-size:11px}.journal-strip{gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.journal-strip .journal-thumb{flex:0 0 96px;height:96px}.journal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.journal-grid .journal-thumb{aspect-ratio:1}.journal-thumb{cursor:pointer;background:#e5e7eb;border:0;border-radius:10px;padding:0;position:relative;overflow:hidden}.journal-thumb img{object-fit:cover;width:100%;height:100%;display:block}.journal-thumb__play{color:#fff;text-shadow:0 1px 6px #0009;justify-content:center;align-items:center;font-size:28px;display:flex;position:absolute;inset:0}.journal-thumb__badge{font-size:14px;position:absolute;top:4px;right:6px}.journal-row-thumb{object-fit:cover;border-radius:6px;width:48px;height:48px}.journal-viewer{z-index:1000;background:#000000eb;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.journal-viewer__body{flex-direction:column;gap:10px;width:100%;max-width:900px;display:flex}.journal-viewer__body img,.journal-viewer__body video{object-fit:contain;background:#000;border-radius:8px;width:100%;max-height:75vh}.journal-viewer__meta{color:#e5e7eb;flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.journal-pin{justify-content:center;align-items:center;display:flex}.journal-pin span{background:var(--primary,#1747c9);width:26px;height:26px;color:var(--on-primary,#fff);border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex}.journal-shot{text-align:center;font-size:16px;line-height:22px}.push-card{border-left:4px solid var(--primary);gap:10px}.push-card__head{align-items:center;gap:10px;display:flex}.push-card__head>svg{color:var(--primary);flex:none}.push-card__head .icon-btn{margin:-10px -10px -10px 0}.sos-btn{color:#fff;min-width:72px;min-height:44px;font:inherit;letter-spacing:.06em;cursor:pointer;background:#c81e1e;border:2px solid #fff;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:1rem;font-weight:900;display:inline-flex;box-shadow:0 2px 8px #00000040}.sos-btn:hover{background:#a51717}.sos-btn--floating{top:calc(10px + var(--safe-top));z-index:950;position:fixed;right:12px}.page--sos{padding-top:calc(64px + var(--safe-top))}.banner--sos{width:100%;font:inherit;cursor:pointer;color:#fff;background:#c81e1e;border-color:#a51717;font-size:.93rem;font-weight:600}.banner--sos-ack{background:#8a1414}.sos-sheet{z-index:1601}.sheet-backdrop:has(.sos-sheet){z-index:1600}.sos-call{color:#fff;background:#c81e1e;border-color:#c81e1e;min-height:60px;font-size:1.2rem}.sos-call:hover{background:#a51717}.sos-status{border-left:4px solid #c81e1e;gap:8px}.sos-status--ack{border-left-color:var(--success)}.offline-map{gap:10px}.offline-map progress{width:100%;height:10px}.map-fab--secondary{bottom:calc(var(--tabbar-h) + var(--safe-bottom) + 84px)}.recap-card{border-left:4px solid var(--primary);gap:12px}.recap-card__preview{aspect-ratio:1080/1350;background:var(--surface-2);object-fit:contain;width:100%;max-width:360px;box-shadow:var(--shadow);border-radius:12px;margin:0 auto;display:block}.recap-card__actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}body{font-size:16px;font-stretch:100%;line-height:1.5}h1,h2,h3{letter-spacing:-.005em;font-weight:800;font-stretch:75%}h1{font-size:1.75rem;line-height:1.05}h2{font-size:1.375rem;line-height:1.1}h3{font-size:1.125rem}.display{letter-spacing:-.015em;margin:0;font-size:clamp(2.5rem,13vw,4rem);font-weight:850;font-stretch:62%;line-height:.88}.small{font-size:.875rem}.eyebrow{color:var(--text-muted);font-size:.875rem;font-weight:600;display:block}.eyebrow--primary{color:var(--primary)}.num,.big,.stat__value,.rank,.code-display{font-variant-numeric:tabular-nums}.big{font-size:2.25rem;font-weight:850;font-stretch:62%;line-height:1}.card,.table,.map,.option,.msg,.push-card,.recap-card,.fx-card{box-shadow:none;border-width:2px}.card{border-color:var(--text);border-radius:var(--radius)}.card h2{font-size:1.25rem}.topbar{border-bottom:2px solid var(--text)}.topbar__title{font-size:1.2rem;font-weight:800;font-stretch:75%}.team-hero{border:0;border-bottom:2px solid var(--text);background:0 0;border-radius:0;padding:4px 0 16px}.team-hero__who{color:var(--text-muted);margin:0;font-size:.875rem}.team-hero h1{font-size:clamp(2.25rem,11vw,2.75rem);font-weight:850;font-stretch:62%;line-height:.95}.team-hero .grid-2{border-top:0;flex-wrap:wrap;gap:8px 24px;padding-top:4px;display:flex}.team-hero .grid-2>.stat{flex-direction:column;min-width:0;padding:0;display:flex}.team-hero .stat__value{order:-1}.stat__label{color:var(--text-muted);letter-spacing:0;text-transform:none;font-size:.8125rem;font-weight:500}.stat__value{overflow-wrap:anywhere;font-size:clamp(1.75rem,9vw,2.125rem);font-weight:850;font-stretch:62%;line-height:1}.team-dot{border:2px solid var(--surface);box-shadow:0 0 0 2px var(--text)}.btn{border-radius:var(--radius-control);letter-spacing:0;border-width:2px;min-height:54px;padding:12px 20px;font-size:1.0625rem;font-weight:650}.btn--lg{min-height:58px}.btn--sm{min-height:44px;padding:6px 14px;font-size:.9375rem}.btn--secondary{color:var(--text);border-color:var(--text);background:var(--surface)}.btn--secondary:hover{background:var(--surface-2)}.btn--ghost{color:var(--primary);text-underline-offset:4px;border-color:#0000;text-decoration:underline;text-decoration-thickness:2px}.btn--ghost:hover{color:var(--primary-strong);background:0 0}.btn--danger:hover{background:#9c1015}.btn--success:hover{background:#17602d}.icon-btn{border-radius:var(--radius-control);width:48px;height:48px}.input,.textarea,.select{border-width:2px;border-color:var(--text);border-radius:var(--radius-control);background:var(--surface);min-height:54px}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.label{font-weight:650}.check input{border-radius:4px}.segmented{background:var(--surface);border:2px solid var(--text);border-radius:var(--radius-control)}.segmented__btn[aria-selected=true],.segmented__btn[aria-pressed=true]{color:var(--on-primary);background:var(--text);box-shadow:none}.badge{background:var(--surface-2);min-height:24px;color:var(--text);border-radius:8px;padding:3px 9px;font-size:.8125rem;font-weight:650}.badge--retry{background:var(--warning-soft);color:var(--warning)}.badge--bonus{background:var(--info-soft);color:var(--info)}.badge--required{background:var(--primary-soft);color:var(--primary-strong)}.badge--locked{background:var(--surface-2);color:var(--locked)}.badge--now{background:var(--text);color:var(--bg)}.banner{border:0;border-top:2px solid var(--text);border-bottom:2px solid var(--text);box-shadow:inset 6px 0 0 var(--info);color:var(--text);background:var(--info-soft);border-radius:0;align-items:center;padding-left:18px;font-size:.95rem}.banner--warning{box-shadow:inset 6px 0 0 var(--warning);background:var(--warning-soft);color:var(--text)}.banner--danger{box-shadow:inset 6px 0 0 var(--danger);background:var(--danger-soft);color:var(--text)}.banner--success{box-shadow:inset 6px 0 0 var(--success);background:var(--success-soft);color:var(--text)}.banner--offline{background:var(--text);color:var(--bg);box-shadow:inset 6px 0 0 var(--clearing)}.list{gap:0}.list-item{border:0;border-top:1.5px solid var(--border);min-height:64px;box-shadow:none;background:0 0;border-radius:0;padding:12px 4px}.list>li:last-child>.list-item,.list>.list-item:last-child{border-bottom:1.5px solid var(--border)}.list-item__icon{border:2px solid var(--text);width:40px;height:40px;color:var(--text);background:0 0;border-radius:50%}.list-item__title{font-weight:700;line-height:1.25}.list-item__meta{margin-top:2px;font-size:.875rem}.list-item--available .list-item__icon{border:2px solid var(--text);color:var(--text)}.list-item--in_progress .list-item__icon,.list-item--review .list-item__icon,.list-item--pending_review .list-item__icon{border-color:var(--text);background:var(--clearing)}.list-item--completed .list-item__icon{border:2px solid var(--text);background:var(--text);color:#fff}.list-item--failed .list-item__icon,.list-item--expired .list-item__icon{border-color:var(--danger);color:var(--danger)}.list-item--locked{opacity:1;color:var(--text-muted);background:0 0}.list-item--locked .list-item__icon{border:2px dashed var(--locked);color:var(--locked)}.ctl{border:3px solid var(--course);width:40px;height:40px;color:var(--course);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;font-size:1.05rem;font-weight:850;font-stretch:62%;line-height:1;display:inline-grid}.ctl--lg{border-width:3.5px;width:58px;height:58px;font-size:1.6rem}.ctl--done{background:var(--course);color:#fff}.ctl--locked{border:2px dashed var(--locked);color:var(--locked)}.table{border:2px solid var(--text);border-radius:var(--radius)}.table th{letter-spacing:0;text-transform:none;color:var(--text-muted);font-size:.8125rem;font-weight:600}.rank{border:2px solid var(--text);background:0 0;border-radius:50%;width:34px;height:34px;font-weight:850;font-stretch:62%}.rank--1{background:var(--text);color:var(--bg)}.rank--2{background:var(--surface-2);color:var(--text)}.rank--3{border-color:var(--course);color:var(--course)}.progress{border:2px solid var(--text);background:var(--surface);border-radius:0;height:10px}.progress__bar{background:var(--primary);border-radius:0}.stones{align-items:center;gap:4px;display:flex}.stones__s{background:var(--surface);border:2px solid var(--text);border-radius:0;flex:1;height:10px}.stones__s--done{background:var(--course);border-color:var(--course)}.stones__s--now{background:var(--clearing)}.tabbar{height:calc(66px + var(--safe-bottom));border-top:2px solid var(--text);box-shadow:none;background:var(--surface)}.tabbar__item{color:var(--text);gap:2px;font-size:.72rem;font-weight:600}.tabbar__item svg{box-sizing:content-box;border:3px solid #0000;border-radius:50%;padding:5px}.tabbar__item[aria-current=page]{color:var(--course)}.tabbar__item[aria-current=page] svg{border-color:var(--course)}.tabbar__item[aria-current=page]:before{content:none}.tabbar__badge{background:var(--danger);font-weight:700;top:3px;left:calc(50% + 8px)}.map-fab,.sheet,.toast,.sos-btn--floating,.reveal-card{box-shadow:var(--shadow-float)}.map-fab{border-radius:var(--radius-control);border:2px solid var(--text);width:52px;height:52px;color:var(--text)}.sheet{border:2px solid var(--text);border-bottom:0;border-radius:16px 16px 0 0;padding-top:24px}.sheet:before{content:"";background:var(--text);border-radius:2px;width:36px;height:4px;margin-left:-18px;position:absolute;top:8px;left:50%}@media (min-width:768px){.sheet{border-bottom:2px solid var(--text);border-radius:16px}}.toasts{top:auto;bottom:calc(66px + 12px + var(--safe-bottom))}.toast{background:var(--text);color:var(--bg);border-radius:var(--radius-control);border-left:6px solid var(--locked);animation-name:toast-up}.toast--success{background:var(--text);border-left-color:#6fd08c}.toast--error{background:var(--text);border-left-color:#ff6b6b}.toast--warning{background:var(--text);border-left-color:var(--clearing)}.toast--sticky{border:2px solid var(--clearing);border-left-width:6px}.toast button{min-width:48px;min-height:48px;margin:-8px -8px -8px auto}@keyframes toast-up{0%{opacity:0;transform:translateY(12px)}}.msg{border-radius:var(--radius-control)}.msg--out{background:var(--primary-soft);border-color:var(--primary)}.msg--high{border-width:2px}.code-display{border:2px dashed var(--text);border-radius:var(--radius-control);background:var(--surface);color:var(--text);font-weight:850;font-stretch:62%}.empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:6px;padding:32px 16px;display:flex}.empty__icon{color:var(--course);margin-bottom:4px}.empty__title{color:var(--text);font-weight:700}.page--start{padding-top:0}.start-hero{border-bottom:2px solid var(--text);background:#fff;height:min(83.3vw,400px);margin:0 -16px;position:relative;overflow:hidden}.start-hero__map{width:100%;height:100%;position:absolute;inset:0}.start-hero__brand{left:16px;top:calc(14px + var(--safe-top));background:#fff;align-items:center;gap:8px;padding:2px 6px 2px 0;font-size:.95rem;font-weight:700;display:flex;position:absolute}.start-hero .display{background:0 0;position:absolute;bottom:18px;left:16px;right:16px}.start-hero .display span{-webkit-box-decoration-break:clone;box-decoration-break:clone;background:#fff;padding:0 4px 0 0}.flag-mark{border:1.5px solid var(--text);background:linear-gradient(135deg,#fff 50%,#f47920 50%);flex:none;width:18px;height:18px;display:inline-block}.start-route{stroke-dasharray:var(--len);stroke-dashoffset:0}.start-ctl{opacity:1}@media (prefers-reduced-motion:no-preference){.start-hero--draw .start-route{stroke-dashoffset:var(--len);animation:2.4s cubic-bezier(.6,0,.3,1) .3s forwards course-draw}.start-hero--draw .start-ctl{opacity:0;animation:.25s forwards ctl-in}}@keyframes course-draw{to{stroke-dashoffset:0}}@keyframes ctl-in{to{opacity:1}}.start-actions{gap:4px;padding-top:16px;display:grid}.start-actions .btn--ghost{justify-self:start;padding-left:0}.course-list{margin:0;padding:0;list-style:none}.course-row{border-top:1.5px solid var(--border);color:var(--text);grid-template-columns:52px minmax(0,1fr);gap:12px;padding:14px 0;text-decoration:none;display:grid}.course-list>li:last-child .course-row{border-bottom:1.5px solid var(--border)}.course-row h3{margin:0;font-size:1.0625rem;font-weight:700;font-stretch:100%;line-height:1.2}.course-row p{color:var(--text-muted);margin:3px 0 0;font-size:.875rem}.course-row__open{font-weight:650;color:var(--success)!important}.course-row__closed{color:var(--text-muted);font-weight:650}.course-glyph{width:52px;height:52px}.punch{border:2px solid var(--text);border-radius:var(--radius);background:var(--surface)}.punch__head{border-bottom:2px solid var(--text);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;display:flex}.punch__head h2{margin:0;font-size:1.2rem}.punch__head span{color:var(--text-muted);font-size:.875rem}.punch__grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.punch__cell{aspect-ratio:1/1.08;border-right:1.5px solid var(--text);border-bottom:1.5px solid var(--text);padding:5px 6px;position:relative}.punch__cell:nth-child(4n){border-right:0}.punch__grid--last-row-full .punch__cell:nth-last-child(-n+4),.punch__cell--last-row{border-bottom:0}.punch__code{font-size:1rem;font-weight:800;font-stretch:62%;line-height:1}.punch__cell--todo .punch__code{color:var(--locked)}.punch__holes{width:58%;height:58%;position:absolute;top:56%;left:50%;transform:translate(-50%,-50%)}.punch__holes circle{fill:var(--course)}@media (prefers-reduced-motion:no-preference){.punch__cell--fresh .punch__holes circle{animation:.12s both hole-in}}@keyframes hole-in{0%{opacity:0;transform:scale(1.6)}}.punch__note{color:var(--text-muted);margin:8px 0 0;font-size:.875rem}.section-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.section-head .btn--sm{min-height:36px;padding:0 4px}.gq-ctl{width:36px;height:36px;position:relative}.gq-ctl__ring{border:3.5px solid var(--course);border-radius:50%;position:absolute;inset:2px;box-shadow:0 0 0 2px #fff,inset 0 0 0 2px #fff}.gq-ctl__code{color:var(--course);font-family:var(--font);white-space:nowrap;text-shadow:0 0 2px #fff,0 0 2px #fff,0 0 3px #fff;font-size:17px;font-weight:850;font-stretch:62%;line-height:1;position:absolute;bottom:24px;left:30px}.gq-ctl--completed .gq-ctl__ring:after{content:"";background:var(--course);border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 2px #fff}.gq-ctl--in_progress .gq-ctl__ring,.gq-ctl--selected .gq-ctl__ring{background:#ffc86199}.gq-ctl--selected .gq-ctl__ring{border-width:4.5px}.gq-ctl--locked .gq-ctl__ring{border:2.5px dashed var(--locked)}.gq-ctl--locked .gq-ctl__code{color:var(--locked)}.gq-ctl__req{background:var(--course);color:#fff;border:2px solid #fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:900;line-height:1;display:grid;position:absolute;top:-6px;left:-6px}.gq-ctl__flag{background:linear-gradient(135deg,#fff 50%,#f47920 50%);border:1.5px solid #000;width:13px;height:13px;position:absolute;bottom:-3px;right:-5px}.gq-ctl svg{position:absolute;inset:0;overflow:visible}.gq-ctl svg path,.gq-ctl svg circle{fill:none;stroke:var(--course);stroke-width:3.5px;paint-order:stroke}.gq-ctl svg .halo{stroke:#fff;stroke-width:7.5px}.gq-me{background:var(--clearing);border:2.5px solid #000;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 2px #fff}:focus-visible{outline:3px solid var(--clearing);outline-offset:2px;box-shadow:0 0 0 5px #000}@media (prefers-reduced-motion:reduce){.toast,.sheet{animation:none}}.sheet-backdrop .confirm{bottom:0}.confirm__text{color:var(--text-muted);font-size:1rem;line-height:1.5}.how p{margin:0;line-height:1.55}.how__list{gap:10px;margin:0;padding-left:22px;line-height:1.5;display:grid}.how__who{gap:14px;margin:0;display:grid}.how__who dt{font-weight:700}.how__who dd{margin:2px 0 0;line-height:1.5}.people-stepper{gap:12px}.people-stepper .btn{min-width:56px;font-size:1.5rem;line-height:1}.people-stepper__value{text-align:center;min-width:48px;font-size:1.75rem;font-weight:850;font-stretch:62%}
