@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.border{border-style:var(--tw-border-style);border-width:1px}.break-all{word-break:break-all}.italic{font-style:italic}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}}:root{--bg:#151022;--bg2:#1e1733;--surface:#241c3d;--surface2:#2c2249;--ink:#f2ecff;--ink-dim:#b6a9d8;--gold:#e6b84a;--gold-glow:#ffd97a;--occult:#b674f0;--keys:#d1975a;--danger:#ef5b4e;--line:#3a2e5c;--radius:18px;--font-cinzel-decorative-stack:var(--font-cinzel-decorative), serif;--font-cinzel-stack:var(--font-cinzel), serif;--font-manrope-stack:var(--font-manrope), sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);margin:0;padding:0}body{font-family:var(--font-manrope-stack);color:var(--ink);background:radial-gradient(circle at 20% 0%, #2c2153 0%, transparent 55%), radial-gradient(circle at 85% 15%, #251d47 0%, transparent 45%), var(--bg);min-height:100vh;overflow-x:hidden}#app{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;padding-bottom:90px;display:flex;position:relative}.screen{padding:22px 20px 10px;animation:.35s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}h1,h2,h3{font-family:var(--font-cinzel-stack);letter-spacing:.02em;margin:0 0 8px}.eyebrow{font-family:var(--font-manrope-stack);text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin-bottom:6px;font-size:11px;font-weight:800}p{color:var(--ink-dim);margin:0 0 14px;line-height:1.5}.btn{text-align:center;width:100%;font-family:var(--font-cinzel-stack);letter-spacing:.03em;cursor:pointer;color:#221936;background:linear-gradient(180deg, var(--gold-glow), var(--gold));border:none;border-radius:14px;padding:16px 18px;font-size:15px;font-weight:600;transition:transform 80ms;display:block;box-shadow:0 6px #a8792a,0 10px 20px #00000059}.btn:active{transform:translateY(4px);box-shadow:0 2px #a8792a}.btn.secondary{color:var(--ink);border:1.5px solid var(--line);box-shadow:none;font-family:var(--font-manrope-stack);background:0 0;font-weight:700}.btn.secondary:active{background:var(--surface);transform:translateY(2px)}.btn[disabled]{opacity:.35;pointer-events:none}.btn-row{gap:10px;margin-top:14px;display:flex}.btn-row .btn{flex:1}input[type=text]{border:1.5px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font-size:16px;font-family:var(--font-manrope-stack);border-radius:14px;margin-bottom:16px;padding:16px}input[type=text]:focus{border-color:var(--gold);outline:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:18px}.avatar-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.avatar-cell{aspect-ratio:1;border:2px solid var(--line);background-color:var(--surface);cursor:pointer;opacity:.75;border-radius:12px;width:100%;padding:0;transition:opacity .15s,transform .15s;position:relative}.avatar-cell.selected{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold);opacity:1;transform:scale(1.04)}.avatar-badge{background:var(--gold);width:20px;height:20px;color:var(--bg,#000);text-align:center;border-radius:50%;font-size:12px;font-weight:700;line-height:20px;position:absolute;top:-6px;right:-6px}.avatar-stack{vertical-align:middle;margin-right:8px;display:inline-flex}.avatar-stack .avatar-mini{border:1.5px solid var(--gold);background-color:var(--surface);border-radius:50%;width:32px;height:32px}.lb-avatars{margin-right:10px}.lb-avatars .avatar-mini{border-width:2px;width:52px;height:52px}.lb-avatars .avatar-mini+.avatar-mini{margin-left:-14px}.lb-row--big .lb-avatars .avatar-mini{border-width:3px;width:clamp(56px,5.2vw,110px);height:clamp(56px,5.2vw,110px)}.lb-row--big .lb-avatars .avatar-mini+.avatar-mini{margin-left:clamp(-28px,-1.4vw,-16px)}.lb-row .lb-name:has(.lb-avatars){align-items:center;display:flex}.avatar-stack .avatar-mini+.avatar-mini{margin-left:-10px}.class-grid{gap:12px;margin-bottom:18px;display:grid}.class-card{background:var(--surface);border:1.5px solid var(--line);cursor:pointer;border-radius:16px;align-items:center;gap:14px;padding:16px;display:flex}.class-card.selected{border-color:var(--gold);background:var(--surface2);box-shadow:0 0 0 1px var(--gold) inset}.class-icon{text-align:center;width:48px;font-size:30px}.class-name{font-family:var(--font-cinzel-stack);font-size:16px;font-weight:600}.class-desc{color:var(--ink-dim);margin-top:2px;font-size:12.5px}.lang-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.lang-card{background:var(--surface);border:1.5px solid var(--line);cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:8px;padding:20px 12px;display:flex}.lang-card:hover,.lang-card:focus-visible{border-color:var(--gold);background:var(--surface2)}.lang-flag{font-size:40px;line-height:1}.lang-name{font-family:var(--font-cinzel-stack);font-size:15px;font-weight:600}.topbar{justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.topbar .name{font-family:var(--font-cinzel-stack);letter-spacing:.05em;font-size:13px}.title-block{border:1px solid var(--line);border-radius:var(--radius);text-align:center;background:linear-gradient(135deg,#2c2249,#201a3a);margin-bottom:16px;padding:20px}.title-name{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);text-shadow:0 0 18px #ffd97a59;font-size:22px}.title-frag{font-family:var(--font-cinzel-stack);color:var(--ink);margin-top:6px;font-size:14px}.resources{gap:10px;margin-bottom:16px;display:flex}.res-chip{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:14px;flex:1;padding:12px 8px}.res-chip .val{font-family:var(--font-cinzel-stack);font-size:18px;font-weight:600}.res-chip.gold .val{color:var(--gold)}.res-chip.occult .val{color:var(--occult)}.res-chip.keys .val{color:var(--keys)}.res-chip .lbl{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;font-size:10px}.charges{background:var(--surface);border:1px solid var(--line);border-radius:14px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;display:flex}.charge-dots{gap:6px;margin-left:auto;display:flex}.dot{background:var(--line);border-radius:50%;width:14px;height:14px}.dot.filled{background:var(--gold);box-shadow:0 0 8px var(--gold-glow)}.inv-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.inv-item{aspect-ratio:1;background:var(--surface);border:1px solid var(--line);border-radius:12px;justify-content:center;align-items:center;font-size:22px;display:flex}.inv-item.empty{opacity:.25;font-size:16px}.map-list{flex-direction:column;gap:10px;display:flex}.loc{background:var(--surface);border:1px solid var(--line);border-radius:16px;align-items:center;gap:14px;padding:14px 16px;display:flex}.loc.completed{opacity:.55}.loc.current{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.loc.locked{opacity:.35}.loc-icon{text-align:center;width:34px;font-size:24px}.loc-name{font-family:var(--font-cinzel-stack);font-size:14.5px;font-weight:600}.loc-type{color:var(--ink-dim);font-size:11.5px}.loc-status{margin-left:auto;font-size:18px}.npc{background:var(--surface2);border-left:3px solid var(--gold);color:var(--ink);border-radius:10px;margin-bottom:16px;padding:14px;font-style:italic}.dm-voice{color:var(--ink-dim);text-align:center;margin:0 0 16px;padding:0 6px;font-size:13px;font-style:italic;line-height:1.55;position:relative}.npc-dialogue{align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.npc-portrait{background:var(--surface2);border:2px solid var(--gold);background-position:50%;background-size:cover;border-radius:50%;justify-content:center;align-items:center;width:64px;min-width:64px;height:64px;font-size:30px;display:flex;overflow:hidden;box-shadow:0 0 14px #e6b84a33}.npc-bubble{background:var(--surface2);border:1px solid var(--line);border-radius:14px;flex:1;padding:12px 14px;position:relative}.npc-bubble:before{content:"";background:var(--surface2);border-left:1px solid var(--line);border-bottom:1px solid var(--line);width:12px;height:12px;position:absolute;top:16px;left:-7px;transform:rotate(45deg)}.npc-name{font-family:var(--font-cinzel-stack);color:var(--gold-glow);margin-bottom:4px;font-size:12.5px;font-weight:600}.npc-line{color:var(--ink);font-size:13.5px;font-style:italic;line-height:1.4}.npc-dialogue.large{text-align:center;flex-direction:column;align-items:center;gap:14px}.npc-dialogue.large .npc-portrait{border-width:3px;width:min(240px,64vw);min-width:min(240px,64vw);height:min(240px,64vw);font-size:76px;box-shadow:0 0 30px #e6b84a4d}.npc-dialogue.large .npc-bubble{width:100%}.npc-dialogue.narrator .npc-bubble{background:#e6b84a12;border:1px dashed #e6b84a73}.npc-dialogue.narrator .npc-bubble:before{display:none}.npc-dialogue.narrator .npc-line{color:#e9dcc0;font-size:14px;line-height:1.5}.npc-dialogue.large .npc-bubble:before{border-left:1px solid var(--line);border-top:1px solid var(--line);border-bottom:none;border-right:none;margin-left:-6px;top:-7px;left:50%}.npc-dialogue.large .npc-name{text-align:center;font-size:14px}.npc-dialogue.large .npc-line{text-align:center;font-size:15px}.npc-dialogue.compact{margin-bottom:14px}.npc-dialogue.compact .npc-portrait{width:58px;min-width:58px;height:58px;font-size:26px}.npc-dialogue.compact .npc-bubble{padding:9px 13px}.npc-dialogue.compact .npc-line{font-size:12.5px}.compass-gate p{text-align:center}.compass-distance-big{text-align:center;font-family:var(--font-cinzel-stack);color:var(--gold-glow);text-shadow:0 0 18px #ffd97a66;margin-top:8px;font-size:44px;font-weight:700}.compass-accuracy{text-align:center;color:var(--ink-dim);margin-bottom:14px;font-size:12px}.compass-rose{background:radial-gradient(circle, var(--surface2), var(--surface));border:2px solid var(--gold);border-radius:50%;width:260px;height:260px;margin:10px auto 18px;position:relative;box-shadow:0 0 26px #e6b84a2e}.rose-tick{background:var(--line);transform-origin:1px 126px;width:2px;height:12px;margin-left:-1px;position:absolute;top:4px;left:50%}.rose-tick.n{transform:rotate(0)}.rose-tick.ne{transform:rotate(45deg)}.rose-tick.e{transform:rotate(90deg)}.rose-tick.se{transform:rotate(135deg)}.rose-tick.s{transform:rotate(180deg)}.rose-tick.sw{transform:rotate(225deg)}.rose-tick.w{transform:rotate(270deg)}.rose-tick.nw{transform:rotate(315deg)}.rose-label{font-family:var(--font-cinzel-stack);color:var(--gold-glow);font-size:13px;font-weight:700;position:absolute;transform:translate(-50%,-50%)}.rose-label.n{top:9%;left:50%}.rose-label.ne{top:20%;left:79.3%}.rose-label.e{top:50%;left:91%}.rose-label.se{top:80%;left:79.3%}.rose-label.s{top:91%;left:50%}.rose-label.sw{top:80%;left:20.7%}.rose-label.w{top:50%;left:9%}.rose-label.nw{top:20%;left:20.7%}.compass-needle{transform-origin:50%;width:14px;height:180px;margin:-90px 0 0 -7px;transition:transform .2s;position:absolute;top:50%;left:50%}.needle-up{border-left:7px solid #0000;border-right:7px solid #0000;border-bottom:90px solid var(--gold-glow);filter:drop-shadow(0 0 6px #ffd97a99);width:0;height:0;position:absolute;top:0;left:0}.needle-down{border-left:7px solid #0000;border-right:7px solid #0000;border-top:90px solid var(--ink-dim);opacity:.5;width:0;height:0;position:absolute;bottom:0;left:0}.needle-pin{background:var(--surface2);border:1.5px solid var(--gold);border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute;top:50%;left:50%}.compass-coords{justify-content:space-between;gap:10px;margin-bottom:18px;font-size:11.5px;display:flex}.coord-block{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex:1;padding:8px 10px}.coord-label{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;font-size:10px}#myCoords,#destCoords{font-family:var(--font-cinzel-stack);color:var(--ink);white-space:pre-line;line-height:1.5}.ability-box{background:var(--surface);border:1px dashed var(--line);border-radius:14px;margin-bottom:16px;padding:14px}.ability-box .head{font-family:var(--font-cinzel-stack);justify-content:space-between;align-items:center;font-size:14px;font-weight:600;display:flex}.ability-box .cost{color:var(--gold);font-size:12px}.ability-warn{color:var(--danger);margin-top:8px;font-size:11.5px;font-weight:700}.answers{gap:10px;margin-bottom:16px;display:grid}.ans{background:linear-gradient(180deg, var(--gold-glow), var(--gold));text-align:left;color:#221936;cursor:pointer;border:1.5px solid #a8792a;border-radius:14px;width:100%;padding:14px 16px;font-family:inherit;font-size:14.5px;font-weight:600;transition:transform 80ms;box-shadow:0 4px #a8792a}.ans:active{transform:translateY(3px);box-shadow:0 1px #a8792a}.ans.correct{color:var(--ink);box-shadow:none;background:#1c3a26;border-color:#5fd17a}.ans.wrong{border-color:var(--danger);color:var(--ink);box-shadow:none;background:#3a1f1c}.ans.removed{opacity:.2;pointer-events:none;text-decoration:line-through}.qte-track{background:var(--surface);border:1px solid var(--line);border-radius:14px;height:54px;margin:20px 0;position:relative;overflow:hidden}.qte-zone{border-left:2px solid var(--gold);border-right:2px solid var(--gold);background:#e6b84a40;position:absolute;top:0;bottom:0}.qte-marker{background:var(--gold-glow);width:6px;box-shadow:0 0 10px var(--gold-glow);border-radius:3px;position:absolute;top:0;bottom:0}.tap-timer{background:var(--surface);border:1px solid var(--line);border-radius:6px;height:10px;margin:18px 0 12px;overflow:hidden}.tap-timer-fill{background:linear-gradient(90deg, var(--gold), var(--gold-glow));height:100%}.tap-counter{text-align:center;font-family:var(--font-cinzel-stack);color:var(--gold-glow);margin-bottom:14px;font-size:24px;font-weight:700}.tap-arena{background:var(--surface);border:1px solid var(--line);border-radius:16px;width:100%;height:190px;position:relative;overflow:hidden}.mg-start-gate{z-index:6;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);border-radius:inherit;background:#151022b8;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.mg-start-gate .btn{width:auto;padding:14px 32px}.tap-target{border:2px dashed var(--gold);cursor:pointer;-webkit-user-select:none;user-select:none;background:radial-gradient(circle,#e6b84a59,#0000 72%);border-radius:50%;justify-content:center;align-items:center;width:66px;height:66px;font-size:32px;transition:left .12s,top .12s;display:flex;position:absolute}.tap-target.tap-bounce{animation:.15s hammerBounce}@keyframes hammerBounce{0%{transform:scale(1)rotate(0)}45%{transform:scale(.8)rotate(-14deg)}to{transform:scale(1)rotate(0)}}.swipe-timer{background:var(--surface);border:1px solid var(--line);border-radius:6px;height:10px;margin:14px 0 12px;overflow:hidden}.swipe-timer-fill{background:linear-gradient(90deg, var(--gold), var(--gold-glow));height:100%}.trace-board{aspect-ratio:1;background:var(--surface);border:1px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:16px;width:100%;max-width:340px;margin:0 auto;position:relative}.trace-svg{width:100%;height:100%;display:block}.trace-edge{stroke:#c8c8d259;stroke-width:3.2px;stroke-linecap:round}.trace-edge.drawn{stroke:var(--gold);filter:drop-shadow(0 0 2px #e6b84acc)}.trace-live{stroke:#e6b84a8c;stroke-width:2.2px;stroke-linecap:round;stroke-dasharray:3 2}.trace-node{fill:#6a35c9;stroke:#e9dcff;stroke-width:.8px}.trace-node.visited{fill:#8f5cf0}.trace-node.current{fill:var(--gold);stroke:#fff}.trace-label{fill:var(--ink);font-size:7px;font-weight:700}.swipe-track{background:var(--surface);border:1px solid var(--line);touch-action:none;border-radius:16px;width:100%;height:190px;position:relative;overflow:hidden}.swipe-svg{width:100%;height:100%;position:absolute;inset:0}.swipe-svg polyline{fill:none;stroke:var(--line);stroke-width:3px;stroke-dasharray:5 5}.swipe-point{background:var(--surface2);border:2px solid var(--line);width:34px;height:34px;color:var(--ink-dim);font-family:var(--font-cinzel-stack);border-radius:50%;justify-content:center;align-items:center;margin:-17px 0 0 -17px;font-size:13px;font-weight:700;transition:background .15s,border-color .15s,transform .15s;display:flex;position:absolute}.swipe-point.reached{background:var(--gold);border-color:var(--gold-glow);color:#221936;transform:scale(1.15)}.swipe-point.active-target{border-color:var(--gold-glow);box-shadow:0 0 12px #e6b84a80}.swipe-hint{text-align:center;color:var(--ink-dim);margin-top:10px;font-size:12.5px}.whack-timer{background:var(--surface);border:1px solid var(--line);border-radius:6px;height:10px;margin:14px 0 8px;overflow:hidden}.whack-timer-fill{background:linear-gradient(90deg, var(--gold), var(--gold-glow));height:100%}.whack-counter{text-align:center;font-family:var(--font-cinzel-stack);color:var(--gold-glow);margin-bottom:4px;font-size:22px;font-weight:700}.whack-target-hint{text-align:center;color:var(--ink-dim);margin-bottom:10px;font-size:13px}.whack-target-hint span{font-size:18px}.whack-arena{background:var(--surface);border:1px solid var(--line);border-radius:16px;width:100%;height:210px;position:relative;overflow:hidden}.whack-symbol{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--surface2);border:2px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:26px;animation:.18s whackPop;display:flex;position:absolute}@keyframes whackPop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.whack-symbol.whack-hit{background:#5fd17a40;border-color:#5fd17a}.whack-symbol.whack-miss{border-color:var(--danger);background:#ef5b4e40}.reward-narrative{text-align:center;color:var(--ink-dim);margin:0 0 4px;padding:0 4px;font-size:13px;line-height:1.5}.reward-choices{grid-template-columns:1fr 1fr;gap:12px;margin:18px 0;display:grid}.reward-card{background:var(--surface);border:1.5px solid var(--line);text-align:center;cursor:pointer;border-radius:16px;padding:20px 10px}.reward-card .icon{font-size:30px}.reward-card .amt{font-family:var(--font-cinzel-stack);margin-top:6px;font-weight:600}.reward-single{background:var(--surface);border:1.5px solid var(--gold);text-align:center;border-radius:16px;margin:18px 0;padding:26px 10px;box-shadow:0 0 18px #e6b84a40}.reward-single .icon{font-size:36px}.reward-single .amt{font-family:var(--font-cinzel-stack);margin-top:8px;font-size:16px;font-weight:600}.banner{text-align:center;padding:30px 10px}.banner .big{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);text-shadow:0 0 20px #ffd97a66;font-size:24px}.dragon-hp{background:var(--surface);border:1px solid var(--line);border-radius:8px;height:16px;margin:14px 0;position:relative;overflow:hidden}.dragon-hp .trail{opacity:.55;background:#ff8b7c;width:100%;height:100%;transition:width .5s .35s;position:absolute;inset:0}.dragon-hp .fill{z-index:1;background:linear-gradient(90deg, var(--danger), #ff9057);height:100%;transition:width .25s;position:relative}.dragon-portrait{aspect-ratio:4/3;border:1px solid var(--line);background-image:url(/images/dragon_portrait.jpg);background-position:0 0;background-repeat:no-repeat;background-size:200% 200%;border-radius:16px;width:100%;transition:background-position .15s,transform .12s;box-shadow:0 8px 24px #0006}.dragon-portrait.hit{animation:.35s portraitHit}@keyframes portraitHit{0%,to{transform:translate(0)}30%{transform:translate(-6px)}60%{transform:translate(5px)}}.dragon-round{text-align:center;font-family:var(--font-cinzel-stack);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-glow);font-size:11px}.hero-hearts{justify-content:center;gap:6px;margin:8px 0 4px;font-size:20px;display:flex}.hero-hearts .heart.broken{opacity:.25;filter:grayscale()}.dragon-equip{flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0;display:flex}.dragon-equip .eq-icon{background:var(--surface);border:1px solid var(--line);border-radius:9px;justify-content:center;align-items:center;width:36px;height:36px;font-size:17px;display:flex}.dragon-equip .eq-icon.breaking{animation:.5s forwards eqBreak}@keyframes eqBreak{0%{opacity:1;transform:scale(1)}50%{transform:scale(1.3)rotate(-8deg)}to{opacity:0;transform:scale(0)}}.dragon-equip .eq-empty{color:var(--ink-dim);font-size:11px;font-style:italic}.dragon-stage{position:relative}.dragon-stage.hit-stop{transition:none}.dragon-stage.hit-stop .dragon-portrait{transition:none;transform:scale(1.015)}.dragon-bubble{background:var(--surface2);border:1px solid var(--gold);font-size:12.5px;font-family:var(--font-manrope-stack);color:var(--ink);text-align:center;white-space:normal;opacity:0;pointer-events:none;z-index:20;border-radius:14px;max-width:220px;padding:8px 14px;font-weight:700;transition:opacity .22s,transform .22s;position:absolute;top:-4px;left:50%;transform:translate(-50%,-100%)scale(.85);box-shadow:0 6px 16px #0006}.dragon-bubble.show{opacity:1;transform:translate(-50%,-112%)scale(1)}.dragon-bubble:after{content:"";border:6px solid #0000;border-top-color:var(--gold);position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.projectile{z-index:200;pointer-events:none;will-change:transform, opacity;font-size:26px;transition:transform .38s cubic-bezier(.3,.6,.4,1),opacity .3s .1s;position:fixed}.dmg-number{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);text-shadow:0 0 8px #0009;z-index:210;pointer-events:none;font-size:22px;font-weight:700;animation:.7s forwards dmgFloat;position:fixed}.dmg-number.crit{color:#ff8b7c;font-size:30px}@keyframes dmgFloat{0%{opacity:0;transform:translateY(6px)scale(.8)}15%{opacity:1;transform:translateY(0)scale(1.15)}to{opacity:0;transform:translateY(-35px)scale(1)}}.app-shake-strong{animation:.55s appShakeStrong}@keyframes appShakeStrong{0%,to{transform:translate(0)}15%{transform:translate(-14px)}30%{transform:translate(12px)}45%{transform:translate(-10px)}60%{transform:translate(8px)}75%{transform:translate(-5px)}90%{transform:translate(3px)}}.flying-item{z-index:220;pointer-events:none;will-change:transform, opacity;font-size:30px;transition:transform .35s,opacity .3s;position:fixed}.destruct-particle{z-index:215;pointer-events:none;color:var(--gold-glow);will-change:transform, opacity;font-size:13px;transition:transform .5s ease-out,opacity .5s ease-out;position:fixed}.quack-text{z-index:225;font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);pointer-events:none;font-size:26px;animation:.6s forwards quackPop;position:fixed}@keyframes quackPop{0%{opacity:0;transform:scale(.5)translateY(0)}30%{opacity:1;transform:scale(1.3)translateY(-6px)}to{opacity:0;transform:scale(1)translateY(-22px)}}.defense-icon.destructing{animation:.5s itemDestruct}@keyframes itemDestruct{0%{transform:scale(1)rotate(0)}45%{transform:scale(1.35)rotate(-12deg)}to{transform:scale(0)rotate(20deg)}}.defense-icon.rock-drop{animation:.45s rockDrop}@keyframes rockDrop{0%{opacity:0;transform:translateY(-14px)}60%{opacity:1;transform:translateY(4px)}to{transform:translateY(0)}}.defense-fade-in{animation:.35s defenseFadeIn}@keyframes defenseFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.loot-card.rarity-common .item-reveal-icon{filter:none}.loot-card.rarity-uncommon .item-reveal-icon{filter:drop-shadow(0 0 10px #e6b84a80)}.loot-card.rarity-rare .item-reveal-icon{filter:drop-shadow(0 0 16px #e6b84acc);animation:.5s rareIconPulse}@keyframes rareIconPulse{0%{transform:scale(.8)}55%{transform:scale(1.18)}to{transform:scale(1)}}.item-reveal-icon{font-size:64px;animation:.4s itemPop;display:inline-block}@keyframes itemPop{0%{opacity:0;transform:scale(.3)}60%{transform:scale(1.22)}to{opacity:1;transform:scale(1)}}.loot-sparkle{z-index:230;pointer-events:none;color:var(--gold-glow);will-change:transform, opacity;font-size:14px;transition:transform .6s ease-out,opacity .6s ease-out;position:fixed}.chest.opening{animation:.35s chestShake}@keyframes chestShake{0%,to{transform:translate(0)scale(1)}20%{transform:translate(-6px)scale(1.02)}40%{transform:translate(6px)scale(1.04)}60%{transform:translate(-4px)scale(1.06)}80%{transform:translate(3px)scale(1.03)}}.chest.popping{animation:.3s forwards chestPop}@keyframes chestPop{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.chest-hint{text-align:center;color:var(--ink-dim);margin-top:-8px;margin-bottom:8px;font-size:11px}.dragon-res-btn .res-count{color:var(--ink-dim);margin-top:3px;font-size:11px}.dragon-res-btn.empty-res{opacity:.5}.dragon-res-btn.locked{pointer-events:none}.dragon-phase-header{text-align:center;font-family:var(--font-cinzel-decorative-stack);letter-spacing:.03em;margin:6px 0 14px;font-size:17px}.dragon-phase-header.hero{color:var(--gold-glow);text-shadow:0 0 14px #ffd97a66}.dragon-phase-header.dragon{color:#ff8b7c;text-shadow:0 0 14px #ef5b4e73}.defense-lead{text-align:center;color:var(--ink-dim);margin-bottom:4px;font-size:13px}.defense-card{background:var(--surface);border:1.5px solid var(--danger);text-align:center;border-radius:18px;margin:14px 0 20px;padding:26px 16px;animation:.4s resultIn;box-shadow:0 0 20px #ef5b4e38}.defense-tag{font-family:var(--font-cinzel-stack);text-transform:uppercase;letter-spacing:.1em;color:var(--danger);margin-bottom:8px;font-size:10.5px}.defense-icon{margin-bottom:8px;font-size:50px}.defense-name{font-family:var(--font-cinzel-stack);color:var(--gold-glow);margin-bottom:8px;font-size:16px;font-weight:600}.defense-flavor{color:var(--ink-dim);font-size:13.5px;line-height:1.5}.reveal-frag{font-family:var(--font-cinzel-decorative-stack);text-align:center;color:var(--gold-glow);opacity:0;padding:18px 0;font-size:20px;animation:.5s forwards pop}.cert-frame{border:2px solid var(--gold);text-align:center;background:radial-gradient(circle at 50% 12%, #e6b84a26, transparent 65%), var(--surface);border-radius:20px;margin:6px 0 16px;padding:30px 18px 22px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #e6b84a40,0 12px 30px #00000073}.cert-frame:after{content:"";background:linear-gradient(120deg,#0000,#ffffff2e,#0000);width:40%;height:100%;animation:3.2s ease-in-out .6s certShine;position:absolute;top:0;left:-60%;transform:skew(-20deg)}@keyframes certShine{0%{left:-60%}to{left:140%}}.cert-ornament{color:var(--gold);letter-spacing:10px;margin:0 0 10px;font-size:12px}.cert-ornament.bottom{margin:14px 0 0}.sparkle{color:var(--gold-glow);pointer-events:none;z-index:5;font-size:14px;animation:1.1s ease-out forwards sparkleFloat;position:absolute}@keyframes sparkleFloat{0%{opacity:0;transform:translateY(6px)scale(.4)}25%{opacity:1}to{opacity:0;transform:translateY(-26px)scale(1.1)}}@keyframes pop{0%{opacity:0;transform:scale(.85)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.cert{border:2px solid var(--gold);text-align:center;background:linear-gradient(160deg,#2c2249,#1a1530);border-radius:20px;margin-bottom:18px;padding:28px 20px}.cert .kicker{font-family:var(--font-cinzel-stack);letter-spacing:.2em;color:var(--gold);text-transform:uppercase;font-size:11px}.cert .cname{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);margin:10px 0;font-size:24px}.cert .full-title{font-family:var(--font-cinzel-stack);color:var(--ink);font-size:14px;line-height:1.7}.cert .event{color:var(--ink-dim);letter-spacing:.1em;margin-top:14px;font-size:11px}.cert-kicker{font-family:var(--font-cinzel-stack);letter-spacing:.22em;color:var(--gold);text-transform:uppercase;font-size:10px}.cert-class-badge{font-family:var(--font-cinzel-stack);background:var(--surface2);border:1px solid var(--gold);color:var(--gold-glow);border-radius:20px;margin:12px 0 16px;padding:5px 14px;font-size:11.5px;font-weight:600;display:inline-block}.cert-name{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);text-shadow:0 0 18px #ffd97a73;margin-bottom:12px;font-size:27px}.cert-full-title{font-family:var(--font-cinzel-stack);color:var(--ink);padding:0 2px;font-size:14.5px;line-height:1.8}.cert-loot-row{flex-wrap:wrap;justify-content:center;gap:10px;margin:18px 0 2px;display:flex}.cert-loot-row .loot-chip{background:var(--surface2);border:1px solid var(--line);border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;font-size:19px;display:flex}.cert-event{color:var(--ink-dim);letter-spacing:.14em;text-transform:uppercase;margin-top:18px;font-size:10px}.toast{background:var(--surface2);border:1px solid var(--gold);color:var(--ink);z-index:50;opacity:0;pointer-events:none;border-radius:30px;padding:12px 20px;font-size:13px;font-weight:700;transition:opacity .3s,bottom .3s;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast.show{opacity:1;bottom:36px}.map-visual{border:1px solid var(--line);background:radial-gradient(circle at 15% 90%,#e6b84a1a,#0000 40%),radial-gradient(circle at 80% 15%,#b674f029,#0000 45%),repeating-linear-gradient(135deg,#ffffff05 0 2px,#0000 2px 26px),linear-gradient(160deg,#241c3d,#1a1530 60%,#150f24);border-radius:20px;height:340px;margin-bottom:16px;position:relative;overflow:hidden}.map-path{width:100%;height:100%;position:absolute;inset:0}.map-path polyline{fill:none;stroke:var(--gold);stroke-opacity:.45;stroke-width:.6px;stroke-dasharray:2 2}.map-marker{text-align:center;cursor:pointer;background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;width:70px;display:flex;position:absolute;transform:translate(-50%,-50%)}.map-marker .pin{background:var(--surface);border:2px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.map-marker.current .pin{border-color:var(--gold);background:var(--surface2);box-shadow:0 0 16px #e6b84a8c}.map-marker.completed .pin{opacity:.7;border-color:#5fd17a}.map-marker.locked .pin{opacity:.35}.map-marker.mystery .pin{opacity:.4;filter:grayscale();border-style:dashed}.map-marker.mystery .m-label{opacity:.4;font-style:italic}.map-marker.final .pin{border-color:var(--danger);font-size:24px}.map-marker .m-label{color:var(--ink-dim);text-shadow:0 1px 3px #000;font-size:10px;font-weight:700}.map-marker.current .m-label{color:var(--gold-glow)}.d20-box{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:18px;margin-bottom:16px;padding:18px}.d20-die{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:48px;display:inline-block}.d20-die.rolling{animation:.6s diespin}.d20-die.disabled{opacity:.35;filter:grayscale();cursor:not-allowed;pointer-events:none}@keyframes diespin{0%{transform:rotate(0)scale(1)}50%{transform:rotate(240deg)scale(1.15)}to{transform:rotate(360deg)scale(1)}}.d20-label{font-family:var(--font-cinzel-stack);color:var(--ink-dim);margin-top:4px;font-size:13px;font-weight:600}.title-toggle{color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em;margin-top:8px;font-size:10.5px}.breakdown{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:-4px 0 16px;padding:14px 16px}.breakdown .b-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:7px 0;font-size:12.5px;display:flex}.breakdown .b-row:last-child{border-bottom:none}.breakdown .b-frag{font-family:var(--font-cinzel-stack);color:var(--gold-glow);font-weight:600}.breakdown .b-src{color:var(--ink-dim);text-align:right}.ach-list{flex-wrap:wrap;gap:8px;margin-bottom:6px;display:flex}.journal-list{flex-direction:column;gap:0;display:flex}.journal-entry{border-left:2px solid var(--line);padding:0 0 18px 22px;position:relative}.journal-entry:last-child{border-left-color:#0000;padding-bottom:0}.journal-entry:before{content:"";background:var(--gold);border-radius:50%;width:8px;height:8px;position:absolute;top:2px;left:-5px;box-shadow:0 0 6px #e6b84a80}.journal-entry .je-num{font-family:var(--font-cinzel-stack);color:var(--gold-glow);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-size:10px}.journal-entry .je-text{color:var(--ink);font-size:13.5px;line-height:1.5}.journal-empty{text-align:center;color:var(--ink-dim);padding:20px 0;font-style:italic}.ach-empty{color:var(--ink-dim);font-size:12px;font-style:italic}.ach-chip{background:var(--surface);border:1px solid var(--gold);border-radius:20px;align-items:center;gap:6px;padding:7px 12px;font-size:11.5px;font-weight:700;display:flex}.chest{text-align:center;cursor:pointer;margin:24px 0;font-size:80px;animation:1.4s ease-in-out infinite chestPulse}@keyframes chestPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.loot-card{text-align:center}.result-wrap{text-align:center;padding:60px 10px 30px;animation:.45s cubic-bezier(.2,.9,.3,1.3) resultIn}@keyframes resultIn{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.result-icon{margin-bottom:10px;font-size:74px}.result-big{font-family:var(--font-cinzel-decorative-stack);letter-spacing:.02em;font-size:22px}.result-sub{color:var(--ink-dim);margin-top:10px;font-size:14px}.result-wrap.win .result-icon{filter:drop-shadow(0 0 22px #5fd17ab3)}.result-wrap.win .result-big{color:#7ee89a;text-shadow:0 0 22px #5fd17a80}.result-wrap.lose .result-icon{filter:drop-shadow(0 0 22px #ef5b4eb3)}.result-wrap.lose .result-big{color:#ff8b7c;text-shadow:0 0 22px #ef5b4e80}.result-wrap.lose{animation:.45s cubic-bezier(.2,.9,.3,1.3) resultIn,.5s .45s shakeBanner}@keyframes shakeBanner{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(4px)}}#flashOverlay{pointer-events:none;z-index:80;opacity:0;transition:opacity .12s ease-out;position:fixed;inset:0}#flashOverlay.flash-active{opacity:1;transition:opacity 50ms ease-in}.app-shake{animation:.4s appShake}@keyframes appShake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.reward-card.auto{cursor:default}.reward-card.rolling{border-color:var(--gold);box-shadow:0 0 14px #e6b84a80}.reward-card.settled{border-color:var(--gold);background:var(--surface2);box-shadow:0 0 18px #e6b84a99}.quest-board-screen{flex-direction:column;gap:0;padding:0 0 24px;display:flex}.board-header{text-align:center;background:linear-gradient(#8b5a2b2e 0%,#0000 100%);border-bottom:1px solid #e6b84a2e;padding:20px 16px 12px}.board-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);opacity:.8;margin-bottom:4px;font-size:11px}.board-title-row{justify-content:center;align-items:center;gap:12px;display:flex;position:relative}.board-title{letter-spacing:.04em;color:var(--gold);text-shadow:0 0 18px #e6b84a59;justify-content:center;align-items:center;gap:8px;margin:0;font-size:22px;font-weight:700;display:flex}.board-title-icon{font-size:20px}.board-profile-btn{letter-spacing:.05em;color:var(--gold);white-space:nowrap;background:#e6b84a1a;border:1px solid #e6b84a47;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600;text-decoration:none;transition:background .15s;position:absolute;right:0}.board-profile-btn:hover{background:#e6b84a38}.board-subtitle{color:var(--ink-dim);max-width:300px;margin:8px auto 0;font-size:12px;line-height:1.4}.quest-card-list{flex-direction:column;gap:10px;padding:14px 16px 0;display:flex}.quest-card{background:#241c3db3;border:1px solid #e6b84a2e;border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;transition:border-color .15s,background .15s;animation:.22s ease-out both card-in;display:flex}.quest-card--available,.quest-card--final-current{background:#8b5a2b21;border-color:#e6b84a61}.quest-card--completed{background:#1e322359;border-color:#7ecf7e47}.quest-card--final-locked,.quest-card--locked{opacity:.6;background:#140f2380;border-color:#ffffff14}.quest-card-icon{text-align:center;flex-shrink:0;min-width:28px;font-size:22px;font-weight:900;line-height:1}.quest-card--available .quest-card-icon,.quest-card--final-current .quest-card-icon{color:#f5c518;text-shadow:0 0 12px #f5c518cc;animation:2s ease-in-out infinite exclaim-pulse}.quest-card--completed .quest-card-icon{color:#7ecf7e;text-shadow:0 0 8px #7ecf7e80}.quest-card--final-locked .quest-card-icon,.quest-card--locked .quest-card-icon{opacity:.4}.quest-card-body{flex-direction:column;flex:1;gap:6px;display:flex}.quest-card-name{color:var(--gold);font-size:15px;font-weight:700;line-height:1.2}.quest-card-venue{color:var(--ink-dim);margin-top:2px;font-size:12px}.quest-card--completed .quest-card-name{color:#7ecf7e}.quest-card--final-locked .quest-card-name,.quest-card--locked .quest-card-name{color:var(--ink-dim)}.quest-card-type{letter-spacing:.07em;color:var(--gold);opacity:.7;border:1px solid #e6b84a38;border-radius:20px;align-self:flex-start;padding:2px 10px;font-size:11px}.quest-card-reward{flex-direction:column;gap:2px;display:flex}.quest-card-reward--done{color:#7ecf7e;opacity:.75;font-size:12px}.quest-card-reward-label{letter-spacing:.1em;text-transform:uppercase;color:var(--gold);opacity:.65;font-size:10px}.quest-card-reward-title{color:var(--gold);font-size:14px;font-style:italic;font-weight:700}.quest-card-reward-proof{color:var(--ink-dim);opacity:.75;font-size:11px;line-height:1.3}.quest-card-lock-msg{color:var(--ink-dim);opacity:.6;font-size:12px;line-height:1.3}.quest-card-cta{width:100%;margin-top:4px}.quest-error{color:#e05050;margin:0;font-size:13px}.quest-counter{text-align:center;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);opacity:.6;margin-top:16px;padding:0 16px;font-size:11px}@keyframes exclaim-pulse{0%,to{opacity:1}50%{opacity:.75}}@keyframes card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dragon-battle-screen{gap:12px}.dragon-battle-header{flex-direction:column;align-items:center;gap:4px;display:flex}.dragon-round-badge{font-family:var(--font-cinzel-decorative-stack);color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:13px;font-weight:700}.dragon-hp-row{align-items:center;gap:10px;width:100%;display:flex}.dragon-hp-col{flex-direction:column;flex:1;gap:3px;display:flex}.dragon-hp-vs{font-family:var(--font-cinzel-decorative-stack);color:var(--ink-dim);flex-shrink:0;font-size:14px;font-weight:900}.dragon-hp-label{text-align:center;letter-spacing:.04em;font-size:11px;font-weight:600}.hero-label{color:#7ec8e3}.dragon-label{color:#e87060;text-align:right}.dragon-hp-bar-wrap{background:#ffffff1a;border-radius:4px;width:100%;height:8px;position:relative;overflow:hidden}.dragon-hp-bar{border-radius:4px;height:100%;transition:width .35s}.hero-bar{background:linear-gradient(90deg,#3b9ddd,#7ec8e3)}.dragon-bar{background:linear-gradient(90deg,#e87060,#c0392b)}.dragon-hp-value{text-align:center;color:var(--ink-dim);font-size:10px}.dragon-roll-result{text-align:center;border:1px solid #ffffff14;border-radius:10px;padding:14px 16px;animation:.2s both detail-in}.dragon-roll-result.hero-wins{background:#3db9641f;border-color:#3db9644d}.dragon-roll-result.dragon-wins{background:#e870601f;border-color:#e870604d}.dragon-roll-result.tie{background:#ffffff0d}.dragon-roll-numbers{justify-content:center;align-items:center;gap:16px;margin-bottom:6px;display:flex}.roll-num{font-family:var(--font-cinzel-decorative-stack);font-size:52px;font-weight:900;line-height:1}.hero-num{color:#7ec8e3}.dragon-num{color:#e87060}.roll-vs-mid{font-size:24px}.dragon-roll-verdict{font-family:var(--font-cinzel-decorative-stack);letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-size:12px;font-weight:700}.dragon-roll-line{color:var(--ink-dim);margin-top:4px;font-size:12px;font-style:italic}.dragon-ultimate-result{margin-bottom:4px;font-size:22px;font-weight:700}.dragon-skill-section{width:100%;margin:16px 0}.dragon-ultimate-btn{width:100%;margin:12px 0;display:block}.dragon-roll-btn{margin-top:12px}.dragon-skill-header{justify-content:space-between;margin-bottom:4px;font-size:12px;font-weight:600;display:flex}.dragon-skill-val{color:var(--ink-dim)}.dragon-skill-bar-wrap{background:#ffffff1a;border-radius:5px;width:100%;height:10px;overflow:hidden}.dragon-skill-bar{background:linear-gradient(90deg,#8a6fc7,#c9a0e8);border-radius:5px;height:100%;transition:width .4s}.dragon-skill-bar.skill-bar-ready{background:linear-gradient(90deg,#f5c518,gold);animation:.8s ease-in-out infinite skill-pulse}.dragon-skill-ready-label{color:var(--gold);text-align:center;letter-spacing:.06em;margin-top:3px;font-size:11px;font-weight:700}.dragon-roll-btn{width:100%;padding:14px;font-size:18px;position:relative}.dragon-roll-btn.rolling{opacity:.7}.dragon-ultimate-btn{width:100%;animation:1.2s ease-in-out infinite ultimate-glow;background:linear-gradient(135deg,#8a6fc7,#c9a0e8)!important;border-color:#c9a0e8!important}.dragon-hint{text-align:center;color:var(--ink-dim);opacity:.7;margin-top:16px;font-size:11px}.dragon-crit-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;animation:.3s cubic-bezier(.34,1.56,.64,1) both crit-pop;display:flex}.dragon-crit-nat20{background:radial-gradient(#f5c51840 0%,#0000 70%)}.dragon-crit-nat1{background:radial-gradient(#e8706033 0%,#0000 70%)}.dragon-crit-burst{font-size:64px;animation:.4s ease-out both burst-spin}.dragon-crit-label{font-family:var(--font-cinzel-decorative-stack);letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-size:15px;font-weight:700}.dragon-crit-title{font-family:var(--font-cinzel-decorative-stack);color:#fff;text-shadow:0 0 20px #f5c51899;font-size:26px;font-weight:900;line-height:1.15}.dragon-crit-nat1 .dragon-crit-title{color:#e87060;text-shadow:0 0 20px #e8706080}.dragon-crit-sub{color:var(--ink-dim);max-width:280px;font-size:14px}@keyframes skill-pulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes ultimate-glow{0%,to{box-shadow:0 0 8px #c9a0e866}50%{box-shadow:0 0 18px #c9a0e8cc}}@keyframes crit-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes burst-spin{0%{opacity:0;transform:rotate(-15deg)scale(.7)}to{opacity:1;transform:rotate(0)scale(1)}}.password-screen{flex-direction:column;align-items:center;gap:20px;min-height:100dvh;padding:32px 20px 40px;display:flex}.pw-title{font-family:var(--font-cinzel-stack);color:var(--gold);text-align:center;text-shadow:0 0 14px #e6b84a59;margin:-8px 0 0;font-size:1.5rem;font-weight:700}.pw-hint{color:var(--ink);text-align:center;max-width:320px;margin:0;font-size:1rem;font-weight:600;line-height:1.45}.location-header{text-align:center;width:100%;margin:0 0 22px}.location-header-name{font-family:var(--font-cinzel-stack);color:var(--gold);letter-spacing:.08em;text-transform:uppercase;opacity:.85;margin:0;font-size:.85rem}.location-header-goal{font-family:var(--font-cinzel-stack);color:var(--ink);margin:4px 0 0;font-size:1.15rem;font-weight:600}.password-screen .location-header{margin-bottom:-8px}.pw-npc-dialogue{width:100%;max-width:340px;margin-bottom:0}.pw-npc-wrap{flex-direction:column;align-items:center;gap:12px;width:100%;max-width:340px;display:flex}.pw-npc-icon{filter:drop-shadow(0 0 12px #b674f066);font-size:56px;line-height:1}.pw-bubble{background:var(--surface);border:1px solid var(--line);border-radius:14px;width:100%;padding:14px 18px;position:relative}.pw-bubble:before{content:"";border:6px solid #0000;border-bottom-color:var(--line);position:absolute;top:-10px;left:50%;transform:translate(-50%)}.pw-bubble-text{color:var(--ink);font-family:var(--font-manrope-stack);text-align:center;margin:0;font-size:.95rem;line-height:1.5}.pw-location-name{font-family:var(--font-cinzel-stack);color:var(--gold);letter-spacing:.08em;text-transform:uppercase;opacity:.8;margin:0;font-size:.8rem}.pw-form{flex-direction:column;gap:12px;width:100%;max-width:320px;display:flex}.pw-input{background:var(--surface);border:1.5px solid var(--line);width:100%;color:var(--ink);font-family:var(--font-manrope-stack);text-align:center;border-radius:12px;outline:none;padding:14px 16px;font-size:1rem;transition:border-color .2s}.pw-input:focus{border-color:var(--gold)}.pw-input--error{border-color:var(--danger);animation:.3s pw-shake}@keyframes pw-shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.pw-error{color:var(--danger);font-family:var(--font-manrope-stack);text-align:center;margin:0;font-size:.85rem}.pw-btn-submit{width:100%;padding:14px;font-size:1rem}.pw-back-btn{color:var(--ink-dim);font-family:var(--font-manrope-stack);cursor:pointer;opacity:.7;background:0 0;border:none;margin-top:4px;padding:8px;font-size:.85rem;transition:opacity .2s}.pw-back-btn:hover{opacity:1}.admin-shell{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.admin-top-tabs{border-bottom:1px solid var(--line);background:var(--surface);display:flex;overflow-x:auto}.admin-top-tab{min-width:90px;color:var(--ink-dim);font-family:var(--font-manrope-stack);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;padding:12px 8px;font-size:.85rem;transition:color .15s,border-color .15s}.admin-top-tab--active{color:var(--gold);border-bottom-color:var(--gold)}.admin-tab-content{flex:1;padding:20px 16px 40px;overflow-y:auto}.admin-loc-panel{flex-direction:column;gap:16px;display:flex}.admin-tabs{border-bottom:1px solid var(--line);gap:8px;padding-bottom:12px;display:flex}.admin-tab{color:var(--ink-dim);font-family:var(--font-manrope-stack);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 14px;font-size:.9rem;transition:background .15s,color .15s}.admin-tab--active{background:var(--surface2);color:var(--gold)}.admin-section-title{font-family:var(--font-cinzel-stack);color:var(--gold);margin:0 0 16px;font-size:1rem}.admin-panel-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.admin-panel-header .admin-section-title{margin-bottom:0}.admin-form{flex-direction:column;gap:10px;max-width:500px;display:flex}.admin-form-title{font-family:var(--font-cinzel-stack);color:var(--gold);margin:0 0 8px;font-size:.95rem}.admin-form label{font-family:var(--font-manrope-stack);color:var(--ink-dim);margin-bottom:-4px;font-size:.78rem}.admin-input,.admin-textarea{background:var(--surface);border:1.5px solid var(--line);width:100%;color:var(--ink);font-family:var(--font-manrope-stack);box-sizing:border-box;border-radius:10px;outline:none;padding:10px 12px;font-size:.9rem;transition:border-color .2s}.admin-input:focus,.admin-textarea:focus{border-color:var(--gold)}.admin-textarea{resize:vertical;min-height:72px}.admin-fieldset{border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:8px;padding:14px 12px 10px;display:flex}.admin-fieldset legend{font-family:var(--font-manrope-stack);color:var(--gold);padding:0 6px;font-size:.8rem}.admin-hint{font-family:var(--font-manrope-stack);color:var(--ink-dim);opacity:.8;margin:0;font-size:.75rem}.admin-error{color:var(--danger);font-family:var(--font-manrope-stack);font-size:.85rem}.admin-form-actions{gap:10px;margin-top:8px;display:flex}.admin-btn-save{flex:1}.admin-btn-cancel{background:var(--surface2);flex:1}.admin-btn-new{padding:8px 14px;font-size:.85rem}.admin-btn-edit{padding:6px 12px;font-size:.8rem}.admin-btn-delete{border:1px solid var(--danger);color:var(--danger);cursor:pointer;background:0 0;border-radius:8px;padding:6px 12px;font-size:.8rem}.admin-btn-delete:hover{background:#ef5b4e26}.admin-empty{color:var(--ink-dim);font-family:var(--font-manrope-stack);text-align:center;padding:20px 0;font-size:.9rem}.admin-npc-list{flex-direction:column;gap:10px;display:flex}.admin-npc-row{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.admin-npc-icon{font-size:28px;line-height:1}.admin-npc-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.admin-npc-info strong{font-family:var(--font-manrope-stack);color:var(--ink);font-size:.9rem}.admin-npc-slug{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-dim);font-family:monospace;font-size:.72rem;overflow:hidden}.admin-npc-portraits{gap:4px;font-size:.75rem;display:flex}.admin-npc-actions{flex-shrink:0;gap:6px;display:flex}.admin-loc-list{flex-direction:column;gap:10px;display:flex}.admin-loc-row{background:var(--surface);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.admin-loc-info{flex-direction:column;flex:1;gap:4px;display:flex}.admin-loc-info strong{font-family:var(--font-manrope-stack);color:var(--ink);font-size:.9rem}.admin-loc-status{border-radius:4px;width:fit-content;padding:2px 6px;font-family:monospace;font-size:.72rem}.admin-loc-status--published{color:#8edd8e;background:#64c86426}.admin-loc-status--draft{color:#d4d48a;background:#c8c85026}.admin-loc-status--disabled{color:#d48a8a;background:#c8505026}.admin-loc-pw-badge,.admin-loc-npc-badge,.admin-loc-type{color:var(--ink-dim);font-size:.72rem;font-family:var(--font-manrope-stack)}.trophy-screen{text-align:center;flex-direction:column;align-items:center;gap:20px;min-height:100dvh;padding:32px 20px 48px;display:flex}.trophy-eyebrow{font-family:var(--font-cinzel-stack);letter-spacing:.12em;color:var(--gold);text-transform:uppercase;font-size:.8rem}.trophy-icon-wrap{cursor:pointer;border-radius:50%;flex-direction:column;align-items:center;gap:10px;padding:20px;transition:transform .2s;display:flex}.trophy-icon-wrap:not(.trophy-icon-wrap--revealed):hover{transform:scale(1.05)}.trophy-icon-wrap--revealed{cursor:default}.scene-item-picture{aspect-ratio:1;filter:drop-shadow(0 0 18px #e6b84a73);width:min(200px,55vw);margin:4px auto 14px;animation:.4s cubic-bezier(.34,1.56,.64,1) trophy-pop}.item-atlas-picker{gap:6px;margin:4px 0 8px;display:grid}.item-atlas-cell{aspect-ratio:1;border:2px solid var(--line);background-color:var(--surface);cursor:pointer;border-radius:10px;width:100%;padding:0}.item-atlas-cell.selected{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}.trophy-icon{filter:drop-shadow(0 0 24px #e6b84a80);font-size:96px;line-height:1;animation:.4s cubic-bezier(.34,1.56,.64,1) trophy-pop}@keyframes trophy-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.trophy-tap-hint{font-family:var(--font-manrope-stack);color:var(--ink-dim);opacity:.7;font-size:.78rem}.trophy-details{flex-direction:column;align-items:center;gap:10px;width:100%;max-width:320px;animation:.3s both trophy-details-in;display:flex}@keyframes trophy-details-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.trophy-name{font-family:var(--font-cinzel-stack);color:var(--gold);font-size:1.3rem;line-height:1.2}.trophy-caption{font-family:var(--font-manrope-stack);color:var(--ink-dim);padding:0 10px;font-size:.9rem;font-style:italic}.trophy-flavor{font-family:var(--font-manrope-stack);color:var(--ink-dim);background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;padding:8px 14px;font-size:.85rem;line-height:1.5}.trophy-title-block{background:#e6b84a14;border:1px solid #e6b84a4d;border-radius:12px;flex-direction:column;gap:4px;width:100%;padding:12px 16px;display:flex}.trophy-title-label{font-family:var(--font-manrope-stack);color:var(--gold);letter-spacing:.06em;text-transform:uppercase;opacity:.8;font-size:.72rem}.trophy-title-text{font-family:var(--font-cinzel-stack);color:var(--gold);font-size:1rem}.trophy-btn{width:100%;margin-top:8px}.admin-panel-header .admin-btn-new{flex-shrink:0;width:auto}.admin-npc-row+.admin-npc-row{margin-top:8px}.admin-npc-list+.admin-form-title,.admin-form-title{margin-top:16px}.cert-find-game{text-align:center;border:2px solid var(--gold);background:radial-gradient(120% 90% at 50% 0%, #f5c5182e, transparent 70%), var(--surface,#ffffff0a);margin-top:16px;padding:20px 16px 16px;animation:2.4s ease-in-out infinite cert-find-glow;position:relative;box-shadow:0 0 24px #f5c51859}.cert-find-game-icon{margin-bottom:6px;font-size:34px}.cert-find-game-btn{width:100%;margin-top:4px;display:block}@keyframes cert-find-glow{0%,to{box-shadow:0 0 16px #f5c51840}50%{box-shadow:0 0 32px #f5c5188c}}@media (prefers-reduced-motion:reduce){.cert-find-game{animation:none}}.dragon-battle-screen{isolation:isolate;position:relative}.dragon-battle-screen:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(120% 70% at 50% 110%,#be321e59,#0000 60%),radial-gradient(80% 50% at 50% 0,#5a0a1473,#0000 70%);position:fixed;inset:0}.dragon-battle-screen:after{content:"";z-index:-1;pointer-events:none;opacity:.8;background-image:radial-gradient(2px 2px at 10% 90%,#ffaa3ce6,#0000 60%),radial-gradient(2px 2px at 30% 80%,#ff7828cc,#0000 60%),radial-gradient(1.5px 1.5px at 55% 95%,#ffc85ae6,#0000 60%),radial-gradient(2px 2px at 75% 85%,#ff8c32cc,#0000 60%),radial-gradient(1.5px 1.5px at 90% 92%,#ffb446e6,#0000 60%);background-size:100% 100%;animation:7s linear infinite embers-rise;position:fixed;inset:0}@keyframes embers-rise{0%{opacity:.9;transform:translateY(0)}to{opacity:0;transform:translateY(-70vh)}}.dragon-stage{--rage:2.6s;width:150px;height:150px;animation:dragon-breathe var(--rage) ease-in-out infinite;border:3px solid #c0392b;border-radius:50%;margin:4px auto 0;position:relative;overflow:hidden;box-shadow:0 0 22px #e83c288c}.dragon-stage-img{object-fit:cover;width:100%;height:100%;display:block}@keyframes dragon-breathe{0%,to{transform:scale(1);box-shadow:0 0 16px #e83c2873}50%{transform:scale(1.03);box-shadow:0 0 34px #e83c28d9}}.dragon-stage.dragon-low{border-color:#ff3b1f}.dragon-stage.dragon-low:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 46%,#000000bf 47%,#0000 49%),linear-gradient(60deg,#0000 58%,#000000b3 59%,#0000 61%),radial-gradient(circle,#0000 55%,#c8000059);position:absolute;inset:0}.dragon-stage.dragon-hurt{animation:dragon-hurt .45s ease-out, dragon-breathe var(--rage) ease-in-out .45s infinite}@keyframes dragon-hurt{0%{filter:brightness();transform:translate(0)scale(1)}20%{filter:brightness(2.2)saturate(0);transform:translate(-8px)scale(.96)}40%{filter:brightness(1.6);transform:translate(7px)scale(.98)}60%{transform:translate(-4px)}to{filter:brightness();transform:translate(0)scale(1)}}.dragon-stage.dragon-shatter{animation:1.05s ease-in forwards dragon-shatter}@keyframes dragon-shatter{0%{filter:brightness();clip-path:circle(50%);transform:scale(1)}30%{filter:brightness(2.5);transform:scale(1.08)rotate(-3deg)}55%{clip-path:polygon(0 0,45% 0,30% 50%,50% 100%,0 100%);transform:scale(1.05)rotate(4deg)}to{opacity:0;filter:brightness(3)blur(2px);clip-path:polygon(10% 10%,40% 5%,20% 60%,45% 95%,5% 80%);transform:scale(.4)rotate(25deg)translateY(60px)}}.dragon-hp-ghost{background:#fff0c8bf;border-radius:4px;height:100%;transition:width .7s .45s;position:absolute;inset:0 auto 0 0}.dragon-hp-bar{position:relative}.dragon-hp-bar-wrap.hp-shake{animation:.4s ease-out hp-shake;box-shadow:0 0 10px #ef5b4ecc}@keyframes hp-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.d20-roller{justify-content:center;padding:10px 0;display:flex}.d20-die{clip-path:polygon(50% 0,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);background:linear-gradient(145deg,#f5c518,#b8860b 60%,#7a5a08);place-items:center;width:96px;height:96px;animation:.45s linear infinite d20-spin;display:grid;box-shadow:0 0 30px #f5c51899}.d20-die span{font-family:var(--font-cinzel-decorative-stack);color:#1a1024;text-shadow:0 1px #fff6;font-size:34px;font-weight:900}@keyframes d20-spin{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(.9)}to{transform:rotate(360deg)scale(1)}}.roll-pop{animation:.45s cubic-bezier(.34,1.56,.64,1) both roll-pop}.roll-pop .roll-num{animation:.5s cubic-bezier(.34,1.56,.64,1) both roll-num-slam;display:inline-block}@keyframes roll-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes roll-num-slam{0%{opacity:0;transform:scale(2.2)}60%{opacity:1;transform:scale(.9)}to{transform:scale(1)}}.dragon-crit-nat20{position:relative;overflow:hidden}.dragon-crit-nat20:before{content:"";z-index:-1;background:repeating-conic-gradient(#f5c51847 0deg 8deg,#0000 8deg 22deg);animation:6s linear infinite rays-spin;position:absolute;inset:-50%}@keyframes rays-spin{to{transform:rotate(360deg)}}.dragon-crit-nat20 .dragon-crit-burst{animation:.4s ease-out both burst-spin,1.2s ease-in-out .4s infinite crit-glow}@keyframes crit-glow{0%,to{filter:drop-shadow(0 0 8px gold)}50%{filter:drop-shadow(0 0 28px gold)}}.dragon-crit-nat1{box-shadow:inset 0 0 120px 40px #780000bf}.dragon-crit-nat1 .dragon-crit-burst{animation:.4s ease-out both burst-spin,.5s steps(2,end) .4s 3 nat1-crack}@keyframes nat1-crack{50%{filter:grayscale();transform:translate(-4px)rotate(-6deg)}}.dragon-enter{z-index:300;background:#000;flex-direction:column;justify-content:center;align-items:center;gap:18px;animation:2s both enter-fade;display:flex;position:fixed;inset:0}@keyframes enter-fade{0%{opacity:1}85%{opacity:1}to{opacity:0}}.dragon-enter-eyes{opacity:0;gap:38px;animation:.5s .15s forwards eyes-on;display:flex}.dragon-enter-eyes span{background:#ff3b1f;border-radius:50%;width:26px;height:9px;box-shadow:0 0 18px 6px #ff3b1fcc}@keyframes eyes-on{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}.dragon-enter-portrait{object-fit:cover;opacity:0;border:3px solid #c0392b;border-radius:50%;width:170px;height:170px;animation:.6s .7s forwards portrait-in;box-shadow:0 0 40px #e83c28cc}@keyframes portrait-in{0%{opacity:0;filter:brightness(0);transform:scale(1.4)}to{opacity:1;filter:brightness();transform:scale(1)}}.dragon-enter-title{font-family:var(--font-cinzel-decorative-stack);color:#ffcf5a;letter-spacing:.08em;text-shadow:0 0 20px #ff7828e6;opacity:0;font-size:26px;font-weight:900;animation:.45s cubic-bezier(.34,1.56,.64,1) 1.2s forwards title-slam}@keyframes title-slam{0%{opacity:0;transform:scale(2)}to{opacity:1;transform:scale(1)}}.dragon-ult-overlay{z-index:250;pointer-events:none;background:radial-gradient(circle,#c9a0e88c,#280a3cd9 70%);flex-direction:column;justify-content:center;align-items:center;gap:8px;animation:.75s both ult-flash;display:flex;position:fixed;inset:0}.dragon-ult-icon{font-size:96px;animation:.75s cubic-bezier(.2,.8,.2,1) both ult-swoop}.dragon-ult-name{font-family:var(--font-cinzel-decorative-stack);color:#fff;text-shadow:0 0 18px #c9a0e8;font-size:24px;font-weight:900}@keyframes ult-flash{0%{opacity:0}15%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes ult-swoop{0%{transform:translate(-120vw)rotate(-40deg)scale(.6)}55%{transform:translate(0)rotate(0)scale(1.25)}to{transform:translate(0)scale(1)}}.dragon-victory-screen .result-big{animation:.7s cubic-bezier(.34,1.56,.64,1) both victory-drop}.dragon-victory-screen .result-icon{animation:.7s cubic-bezier(.34,1.56,.64,1) .1s both victory-drop}@keyframes victory-drop{0%{opacity:0;transform:translateY(-60px)scale(1.3)}to{opacity:1;transform:none}}#revealArea .reveal-frag{opacity:1;animation:1.6s cubic-bezier(.22,1,.36,1) both title-rise,3s ease-in-out 1.6s infinite title-glow}@keyframes title-rise{0%{opacity:0;letter-spacing:.35em;filter:blur(6px);text-shadow:0 0 #f5c51800;transform:translateY(18px)scale(1.25)}45%{opacity:1;filter:blur();text-shadow:0 0 28px #f5c518f2}to{opacity:1;letter-spacing:normal;filter:none;text-shadow:0 0 10px #f5c51873;transform:none}}@keyframes title-glow{0%,to{opacity:1;text-shadow:0 0 10px #f5c51873}50%{opacity:1;text-shadow:0 0 22px #f5c518cc}}@media (prefers-reduced-motion:reduce){.dragon-battle-screen:after,.dragon-stage,.dragon-stage.dragon-hurt,.d20-die,.dragon-crit-nat20:before,.dragon-ult-icon{animation:none!important}.dragon-enter{animation-duration:10ms}}.community-featured{border:2px solid var(--gold);box-shadow:0 0 18px #f5c5184d}.community-card{border-radius:10px;width:84%;margin-left:auto;margin-right:auto;padding:8px 12px}.community-card p:first-child{font-size:14px}.community-card p{margin-bottom:2px!important}.community-card p:empty{display:none}.community-card a{font-size:12px!important}.nq-card{text-align:center;background:radial-gradient(120% 90% at 50% 0,#b36bff40,#0000 70%),#ffffff08;border:2px solid #b36bff;border-radius:14px;margin:24px 0 8px;padding:20px 16px;box-shadow:0 0 24px #b36bff73}.nq-title{font-family:var(--font-cinzel-decorative-stack);color:#fff;font-size:24px;font-weight:900}.nq-subtitle{color:#d6a8ff;text-shadow:0 0 12px #b36bffcc;margin-top:4px;font-size:15px;font-weight:800}.nq-text{color:var(--ink);margin:10px 0 14px;font-size:13px}.btn.nq-btn{color:#fff;background:linear-gradient(#c07bff,#8a3ff0);border-color:#6f2bd1;display:block;box-shadow:0 4px #5a1fae,0 0 18px #b36bff99}.nq-prize{color:#ffe08a;background:#f5c5181f;border:1px dashed #f5c51899;border-radius:10px;margin:0 0 14px;padding:10px 12px;font-size:14px;font-weight:800;animation:2.4s ease-in-out infinite cert-find-glow}.field-mode{flex-direction:column;gap:12px;max-width:520px;margin:0 auto;padding:16px 14px 40px;display:flex}.field-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.field-title{margin:0;font-size:22px}.field-link,.field-back{color:var(--gold);text-align:left;background:0 0;border:none;padding:0;font-size:14px}.field-list{flex-direction:column;gap:10px;display:flex}.field-card{text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:14px}.field-card-name{font-size:16px;font-weight:700}.field-card-tags{flex-wrap:wrap;gap:6px;margin-top:6px;font-size:12px;display:flex}.field-card-tags span{background:#ffffff12;border-radius:999px;padding:2px 8px}.field-card-tags .ok{color:#5fd17a}.field-card-tags .bad{color:#ef8a4e}.field-block{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;gap:10px;padding:14px;display:flex}.field-block h2{margin:0;font-size:17px}.field-now{color:var(--ink-dim);margin:0;font-size:13px}.field-big{width:100%;min-height:52px;font-size:16px}.field-fix{background:#5fd17a1a;border:1px solid #5fd17a66;border-radius:10px;flex-direction:column;gap:8px;padding:10px;font-size:14px;display:flex}.field-fix.warn{background:#ef8a4e1a;border-color:#ef8a4e80}.field-ok{color:#5fd17a;margin:0;font-weight:600}.field-text{font-size:16px}.field-answer{align-items:center;gap:8px;display:flex}.field-answer .admin-input{flex:1;font-size:16px}.field-radio{border:2px solid var(--line);width:40px;height:40px;color:var(--ink-dim);background:0 0;border-radius:50%;flex-shrink:0;font-size:20px}.field-radio.on{color:#5fd17a;border-color:#5fd17a}.field-del,.field-add{border:1px dashed var(--line);color:var(--ink-dim);background:0 0;border-radius:8px;padding:8px 12px}.compass-venue{color:var(--gold);margin:-4px 0 8px;font-size:15px;font-weight:700}#app:has(.admin-shell--wide){max-width:none;padding-bottom:0}.admin-shell--wide{width:100%;max-width:1240px;margin:0 auto}.admin-scenario-bar{z-index:20;background:var(--surface);border-bottom:1px solid var(--line);padding:10px 16px;position:sticky;top:0}.admin-scenario-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-scenario-label{font-size:1.1rem}.admin-scenario-select{flex:200px;max-width:360px;font-weight:600;margin-bottom:0!important}.admin-scenario-meta{color:var(--ink-dim);white-space:nowrap;font-size:.8rem}.admin-scenario-btn{width:auto!important}.admin-scenario-menu{border-top:1px dashed var(--line);flex-direction:column;gap:8px;max-width:640px;margin-top:10px;padding-top:10px;display:flex}.admin-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:24px;padding:16px;display:grid}.admin-sidebar{position:sticky;top:72px}.admin-main{min-width:0}.admin-main .admin-form{max-width:760px}.admin-nav{flex-direction:column;gap:14px;display:flex}.admin-nav-group{flex-direction:column;gap:2px;display:flex}.admin-nav-title{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);padding:0 10px 4px;font-size:.7rem}.admin-nav-hint{color:var(--ink-dim);text-transform:none;letter-spacing:0}.admin-nav-item{width:100%;color:var(--ink-dim);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:.9rem;text-decoration:none;display:flex}.admin-nav-item:hover{background:var(--surface2);color:var(--ink)}.admin-nav-item--active{background:var(--surface2);color:var(--ink);box-shadow:inset 3px 0 0 var(--gold)}.admin-nav-icon{text-align:center;width:1.4em}.admin-nav-ext{opacity:.6;margin-left:auto}.admin-nav-logout{border-top:1px solid var(--line);border-radius:0;margin-top:8px;padding-top:12px}.admin-mobile-nav{display:none}@media (max-width:860px){.admin-layout{grid-template-columns:minmax(0,1fr);padding:12px}.admin-sidebar{display:none}.admin-mobile-nav{padding:8px 12px 0;display:block;position:relative}.admin-mobile-nav-btn{border:1px solid var(--line);background:var(--surface2);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:10px;padding:10px 12px;font-weight:600}.admin-mobile-nav-menu{z-index:30;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px;position:absolute;top:calc(100% + 4px);left:12px;right:12px;box-shadow:0 12px 30px #00000073}}.admin-list{flex-direction:column;gap:6px;display:flex}.admin-row{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:10px 14px;transition:border-color .15s,background .15s;display:flex}.admin-row:hover,.admin-row:focus-visible{border-color:var(--gold);background:var(--surface2);outline:none}.admin-row-icon{text-align:center;flex:none;width:1.6em;font-size:1.3rem}.admin-row-body{flex:auto;min-width:0}.admin-row-title{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.admin-row-meta{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.8rem;overflow:hidden}.admin-row-chips{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;gap:6px;display:flex}.admin-row-open{color:var(--ink-dim);white-space:nowrap;font-size:.8rem}.admin-row:hover .admin-row-open{color:var(--gold)}@media (max-width:640px){.admin-row{flex-wrap:wrap}.admin-row-chips{justify-content:flex-start;width:100%;padding-left:calc(1.6em + 12px)}.admin-row-open{display:none}}.admin-chip{white-space:nowrap;border:1px solid var(--line);color:var(--ink-dim);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;display:inline-flex}.admin-chip--published{color:#7ee2a1;background:#7ee2a114;border-color:#7ee2a159}.admin-chip--draft{color:var(--ink-dim)}.admin-chip--disabled{color:var(--danger);border-color:#ef5b4e59}.admin-chip--warn{color:#f3b35b;background:#f3b35b14;border-color:#f3b35b66}.admin-chip--gold{color:var(--gold);border-color:#e6b84a66}.admin-section{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin-bottom:10px}.admin-section>summary{cursor:pointer;align-items:baseline;gap:10px;padding:12px 14px;list-style:none;display:flex}.admin-section>summary::-webkit-details-marker{display:none}.admin-section>summary:before{content:"▸";color:var(--gold);transition:transform .15s}.admin-section[open]>summary:before{transform:rotate(90deg)}.admin-section-name{color:var(--ink);font-weight:600}.admin-section-summary{color:var(--ink-dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.8rem;overflow:hidden}.admin-section-body{flex-direction:column;gap:10px;padding:0 14px 14px;display:flex}.admin-section-body .admin-fieldset{margin:0}.admin-sticky-actions{z-index:15;border:1px solid var(--line);background:var(--surface);border-radius:12px 12px 0 0;flex-direction:column;gap:6px;margin-top:12px;padding:10px 14px;display:flex;position:sticky;bottom:0}@supports (color:color-mix(in lab, red, red)){.admin-sticky-actions{background:color-mix(in srgb, var(--surface) 92%, transparent)}}.admin-sticky-actions{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 -8px 24px #00000059}.admin-sticky-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-sticky-state{color:var(--ink-dim);flex:auto;font-size:.8rem}.admin-sticky-btn{min-width:120px;flex:none!important;width:auto!important}.admin-danger{color:var(--ink-dim);margin-top:24px;font-size:.85rem}.admin-danger>summary{cursor:pointer;color:var(--danger);width:fit-content}.admin-danger[open]{border:1px dashed #ef5b4e73;border-radius:10px;padding:10px 12px}.admin-link-btn{color:var(--gold);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-size:.85rem;text-decoration:underline}.admin-panel-header{flex-wrap:wrap}.admin-row-avatar{object-fit:cover;border-radius:50%;width:32px;height:32px;display:block}.admin-portraits{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}.admin-portrait{flex-direction:column;gap:6px;display:flex}.admin-portrait-img{background:var(--surface2);border:1px solid var(--line);border-radius:50%;place-items:center;width:72px;height:72px;font-size:2rem;display:grid;overflow:hidden}.admin-portrait-img img{object-fit:cover;width:100%;height:100%}.admin-form--wide{max-width:860px!important}.admin-health{border:1px solid var(--line);border-radius:12px;margin-bottom:14px;padding:12px 14px;font-weight:600}.admin-health--ok{color:#7ee2a1;background:#7ee2a10f;border-color:#7ee2a159}.admin-health--warning{color:#f3b35b;background:#f3b35b0f;border-color:#f3b35b66}.admin-health--error{color:var(--danger);background:#ef5b4e0f;border-color:#ef5b4e73}.admin-tiles{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.admin-tile{border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.admin-tile:hover:not(:disabled){border-color:var(--gold)}.admin-tile:disabled{cursor:default}.admin-tile-value{font-size:1.35rem;font-weight:700}.admin-tile-label{color:var(--ink-dim);font-size:.8rem}.admin-tile-sub{color:var(--ink-dim);font-size:.72rem}.admin-issue{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:.88rem;display:flex}.admin-issue:hover{border-color:var(--gold)}.admin-issue--error{border-left:3px solid var(--danger)}.admin-issue--warning{border-left:3px solid #f3b35b}.admin-issue--info{border-left:3px solid var(--line);color:var(--ink-dim)}.admin-issue-text{flex:auto}.result-points{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);text-shadow:0 0 18px #ffd97a8c;margin-top:10px;font-size:26px;animation:.5s cubic-bezier(.2,.9,.3,1.3) .25s both resultIn}.lb-plaque{color:var(--ink);background:linear-gradient(90deg,#e6b84a24,#e6b84a08);border:1px solid #e6b84a73;border-radius:14px;align-items:center;gap:10px;margin:0 0 14px;padding:10px 14px;text-decoration:none;display:flex}.lb-plaque-score{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);white-space:nowrap;font-size:20px}.lb-plaque-rank{color:var(--ink-dim);flex:1;font-size:13px}.lb-plaque-open{color:var(--gold);white-space:nowrap;font-size:12px}.lb-title{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);margin:4px 0 14px;font-size:24px}.lb-me-card{text-align:center;border-radius:var(--radius);background:#e6b84a14;border:1px solid #e6b84a73;margin-bottom:12px;padding:14px}.lb-me-score{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);font-size:32px}.lb-me-rank{color:var(--ink-dim);font-size:14px}.lb-hint{color:var(--ink-dim);text-align:center;margin:0 0 12px;font-size:13px}.lb-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lb-row{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:9px 12px;display:flex}.lb-row--top1{background:linear-gradient(90deg, #e6b84a38, var(--surface));border-color:#ffd97ab3}.lb-row--top2{border-color:#d2d2e673}.lb-row--top3{border-color:#d1975a80}.lb-row--me{outline:2px solid var(--gold);outline-offset:-1px}.lb-rank{text-align:center;width:30px;color:var(--ink-dim);font-variant-numeric:tabular-nums;font-weight:700}.lb-row--top .lb-rank{font-size:20px}.lb-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lb-class{margin-right:6px}.lb-first{margin-left:6px}.lb-score{color:var(--gold-glow);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:700}.lb-gap{text-align:center;color:var(--ink-dim);line-height:1}.cert-score{color:var(--ink);border:1px solid #e6b84a66;border-radius:12px;flex-direction:column;align-items:center;gap:2px;margin:14px auto 0;padding:8px 14px;text-decoration:none;display:flex}.cert-score-num{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);font-size:22px}.cert-score-rank{color:var(--ink-dim);font-size:13px}.cert-score-open{color:var(--gold);font-size:12px}#app:has(.lb-tv){max-width:none;padding-bottom:0}.lb-tv{flex-direction:column;gap:3vh;min-height:100vh;padding:3vh 4vw;display:flex}.lb-tv-head{text-align:center}.lb-tv-kicker{text-transform:uppercase;letter-spacing:.2em;color:var(--ink-dim);font-size:clamp(14px,1.6vw,24px)}.lb-tv-title{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);text-shadow:0 0 30px #ffd97a59;margin:.5vh 0;font-size:clamp(32px,5vw,80px)}.lb-tv-stats{color:var(--ink-dim);flex-wrap:wrap;justify-content:center;gap:3vw;font-size:clamp(14px,1.5vw,24px);display:flex}.lb-tv-body{flex:1;grid-template-columns:2fr 1fr;gap:3vw;display:grid}.lb-list--big{gap:1vh}.lb-row--big{border-radius:16px;padding:1.3vh 1.5vw;font-size:clamp(18px,2.2vw,36px)}.lb-row--big .lb-rank{width:3.5vw;min-width:40px}.lb-row--big.lb-row--top .lb-rank{font-size:1.3em}.lb-tv-feed{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:2vh 1.5vw;overflow:hidden}.lb-tv-feed h2{font-family:var(--font-cinzel-stack);color:var(--gold);margin:0 0 1.5vh;font-size:clamp(18px,1.8vw,30px)}.lb-tv-feed ul{flex-direction:column;gap:1.4vh;margin:0;padding:0;list-style:none;display:flex}.lb-tv-feed li{font-size:clamp(14px,1.4vw,24px);animation:.5s fadeIn}.lb-tv-feed-pts{color:var(--gold-glow);margin-left:8px;font-weight:700}.lb-tv-feed-place{color:var(--ink-dim);font-size:.85em}.lb-tv-feed-empty,.lb-tv-empty{color:var(--ink-dim);text-align:center;font-size:clamp(16px,1.6vw,26px)}@media (max-width:800px){.lb-tv-body{grid-template-columns:1fr}}.admin-lb{border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.admin-lb-row{border-top:1px solid var(--line);grid-template-columns:44px 1fr 120px 56px 84px;align-items:center;gap:8px;padding:8px 12px;font-size:14px;display:grid}.admin-lb-row:first-child{border-top:none}.admin-lb-head{background:var(--surface2);color:var(--ink-dim);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.admin-lb-row--hidden{opacity:.5}.admin-lb-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.admin-lb-score{color:var(--gold-glow);font-variant-numeric:tabular-nums;font-weight:700}@media (max-width:560px){.admin-lb-row{grid-template-columns:34px 1fr auto 70px}.admin-lb-row>:nth-child(4){display:none}}.task{flex-direction:column;gap:12px;margin-top:8px;display:flex}.task-text{white-space:pre-wrap;margin:0;font-size:16px;line-height:1.5}.task-image,.photo-preview{object-fit:contain;border:1px solid var(--line);background:var(--surface);border-radius:14px;width:100%;max-height:60vh}.code-form{flex-direction:column;gap:10px;display:flex}.code-input{box-sizing:border-box;border:2px solid var(--line);background:var(--surface);width:100%;color:var(--ink);letter-spacing:.08em;text-align:center;font-size:22px;font-family:var(--font-cinzel-stack);border-radius:14px;padding:16px}.code-input:focus{border-color:var(--gold);outline:none}.code-input--wrong{border-color:#ef5b4e99;animation:.45s shakeBanner}.code-wrong{background:#ef5b4e14;border:1px solid #ef5b4e4d;border-radius:12px;padding:10px 12px}.code-wrong-title{color:#ff8b7c;margin-bottom:6px;font-size:13px}.code-wrong-list{flex-wrap:wrap;gap:6px;display:flex}.code-wrong-item{background:var(--surface2);color:var(--ink-dim);border-radius:8px;padding:3px 8px;font-size:13px;text-decoration:line-through}.task-giveup{text-align:center;color:var(--ink-dim);margin-top:8px;font-size:14px}.task-giveup p{margin:0 0 8px}.task-giveup-link{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;font-size:13px;text-decoration:underline}.task-error{color:#ff8b7c;margin:0;font-size:14px}.photo-pick{padding:22px;font-size:17px}.wait-screen{box-sizing:border-box;text-align:center;isolation:isolate;flex-direction:column;justify-content:center;align-items:center;min-height:92dvh;padding:24px 16px 48px;display:flex;position:relative;overflow:hidden}.wait-screen:before{content:"";z-index:-2;background:radial-gradient(circle at 50% 34%,#ffbe5a2e,#0000 38%),radial-gradient(circle at 50% 110%,#9646dc47,#0000 55%),radial-gradient(#0000 40%,#000000bf 100%);animation:6s ease-in-out infinite waitBreath;position:absolute;inset:-20%}@keyframes waitBreath{0%,to{opacity:.75}50%{opacity:1}}.wait-embers{z-index:-1;pointer-events:none;position:absolute;inset:0}.wait-embers span{opacity:0;background:#ffcf6e;border-radius:50%;animation:linear infinite waitEmber;position:absolute;bottom:-10px;box-shadow:0 0 8px 2px #ffaa3ccc}@keyframes waitEmber{0%{opacity:0;transform:translate(0)scale(1)}10%{opacity:.9}70%{opacity:.6}to{opacity:0;transform:translate(30px,-105vh)scale(.3)}}.wait-sigil{aspect-ratio:1;width:min(64vw,260px);margin-bottom:18px;position:relative}.wait-ring{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.wait-ring circle,.wait-ring polygon{fill:none;stroke:#ffd97a8c;stroke-width:.8px}.wait-ring text{fill:#ffd97ad9;letter-spacing:3px;font-size:11px}.wait-ring--outer{filter:drop-shadow(0 0 6px #ffc85a99);animation:60s linear infinite waitSpin}.wait-ring--inner{opacity:.55;width:84%;height:84%;animation:90s linear infinite reverse waitSpin;inset:8%}@keyframes waitSpin{to{transform:rotate(360deg)}}.wait-aura{filter:blur(10px);background:radial-gradient(circle,#ffc8648c,#aa50ff40 60%,#0000 72%);border-radius:50%;animation:3s ease-in-out infinite waitPulse;position:absolute;inset:22%}@keyframes waitPulse{0%,to{opacity:.7;transform:scale(.92)}50%{opacity:1;transform:scale(1.12)}}.wait-portrait{border:2px solid var(--gold-glow);background:#1a1028;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:24%;overflow:hidden;box-shadow:0 0 0 4px #140c1ee6,0 0 0 5px #ffd97a66,0 0 30px #ffbe5a99}.wait-portrait img{object-fit:cover;object-position:50% 15%;width:100%;height:100%}.wait-portrait span{font-size:48px}.wait-kicker{text-transform:uppercase;letter-spacing:.3em;color:var(--gold);font-size:15px;font-weight:700}.wait-title{color:#0000;filter:drop-shadow(0 0 14px #ffc85a73);background:linear-gradient(100deg,#b88a2e 0%,#ffe9a8 30%,#ffd97a 45%,#fff6d8 50%,#ffd97a 55%,#b88a2e 80%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;margin:6px 0 20px;font-size:clamp(30px,8.5vw,46px);font-weight:700;line-height:1.05;animation:5s linear infinite waitShimmer}@keyframes waitShimmer{0%{background-position:100% 0}to{background-position:-150% 0}}.wait-timer{justify-content:center;align-items:flex-start;gap:4px;display:flex}.wait-cell{align-items:flex-start;display:flex}.wait-colon{font-family:var(--font-cinzel-stack);color:var(--gold);padding:0 4px;font-size:clamp(32px,9vw,52px);line-height:1.5;animation:1s step-end infinite waitBlink}@keyframes waitBlink{50%{opacity:.25}}.wait-card{background:linear-gradient(#3c2650f2,#160e22f2);border:1px solid #ffd97a73;border-radius:14px;flex-direction:column;align-items:center;min-width:clamp(64px,19vw,96px);padding:10px 6px 6px;display:flex;box-shadow:inset 0 1px #ffffff14,0 8px 24px #00000080,0 0 18px #ffbe5a2e}.wait-digit{font-family:var(--font-cinzel-stack);font-variant-numeric:tabular-nums;color:var(--gold-glow);text-shadow:0 0 18px #ffd26e99;font-size:clamp(34px,10vw,56px);line-height:1.1;animation:.45s ease-out waitTick;display:block}@keyframes waitTick{0%{text-shadow:0 0 30px #ffe6a0;transform:translateY(-18%)scale(1.18)}to{transform:none}}.wait-card small{letter-spacing:.25em;text-transform:uppercase;color:var(--ink-dim);margin-top:2px;font-size:12px;font-weight:700}.wait-divider{color:var(--gold);letter-spacing:.6em;opacity:.8;margin:20px 0 6px;font-size:12px}.wait-when{color:var(--ink);margin:0;font-size:20px;font-weight:700}.wait-note{font-family:var(--font-manrope), sans-serif;max-width:320px;color:var(--ink-dim);margin:8px auto 0;font-size:13px}.wait-screen.is-final .wait-card{border-color:#ff9d5c;box-shadow:0 0 28px #ff783c8c}.wait-screen.is-final .wait-digit{color:#ffb37a;text-shadow:0 0 24px #ff6e32e6}.wait-screen.is-final .wait-sigil{animation:.5s ease-in-out infinite waitShake}.wait-screen.is-final .wait-ring--outer{animation-duration:6s}@keyframes waitShake{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.wait-screen.is-started:after{content:"";z-index:5;pointer-events:none;background:radial-gradient(circle at 50% 35%,#fff6d8,#ffc85a99 30%,#0000 70%);animation:1.6s ease-out forwards waitFlash;position:absolute;inset:0}@keyframes waitFlash{0%{opacity:0}25%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.wait-screen *,.wait-screen:before,.wait-screen:after{animation:none!important}.wait-embers{display:none}}.board-linear-note{text-align:center;color:var(--ink-dim);margin:0 0 12px;font-size:13px}.admin-photos{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.admin-photo{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-direction:column;margin:0;display:flex;overflow:hidden}.admin-photo--rejected{opacity:.5}.admin-photo-img{cursor:zoom-in;aspect-ratio:1;background:#000;border:none;padding:0;display:block}.admin-photo-img img{object-fit:cover;width:100%;height:100%;display:block}.admin-photo figcaption{flex-direction:column;gap:3px;padding:8px 10px;font-size:13px;display:flex}.admin-photo-modal{z-index:100;cursor:zoom-out;background:#000000e0;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:16px;display:flex;position:fixed;inset:0}.admin-photo-modal img{border-radius:10px;max-width:100%;max-height:85vh}.admin-photo-modal-cap{color:#fff;font-size:14px}.admin-order{gap:2px;display:inline-flex}.admin-order button{border:1px solid var(--line);background:var(--surface2);width:28px;height:28px;color:var(--ink);cursor:pointer;border-radius:8px;font-size:14px;line-height:1}.admin-order button:disabled{opacity:.3;cursor:default}.haul-screen{text-align:center}.haul-header{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);text-shadow:0 0 22px #ffd97a8c,0 2px #0006;margin:6px 0 14px;font-size:2.1rem;line-height:1.15;animation:.8s cubic-bezier(.34,1.56,.64,1) both haulHeaderIn,3s ease-in-out 1s infinite haulGlow}@keyframes haulHeaderIn{0%{opacity:0;letter-spacing:.3em;transform:scale(.6)translateY(-10px)}to{opacity:1;letter-spacing:normal;transform:none}}@keyframes haulGlow{0%,to{text-shadow:0 0 18px #ffd97a73,0 2px #0006}50%{text-shadow:0 0 32px #ffd97ad9,0 2px #0006}}.haul-cert{animation:.6s ease-out .15s both pop}.haul-avatars{justify-content:center;margin:2px 0 12px;display:flex}.haul-avatar{border:3px solid var(--gold);background-color:var(--surface2);border-radius:50%;width:min(120px,32vw);height:min(120px,32vw);animation:.7s cubic-bezier(.34,1.56,.64,1) both haulAvatarIn,3.2s ease-in-out 1.2s infinite haulFloat;box-shadow:0 0 0 4px #e6b84a2e,0 0 26px #e6b84a73}.haul-avatar+.haul-avatar{margin-left:-14px;animation-name:haulAvatarIn,haulFloatAlt}@keyframes haulAvatarIn{0%{opacity:0;transform:scale(.3)rotate(-12deg)}to{opacity:1;transform:none}}@keyframes haulFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes haulFloatAlt{0%,to{transform:translateY(-4px)}50%{transform:translateY(2px)}}.haul-team{margin-bottom:4px}.haul-intro{color:var(--ink);margin:0 0 14px;font-style:italic}.haul-list{text-align:left;flex-direction:column;gap:10px;margin:0 0 14px;padding:0;list-style:none;display:flex}.haul-item{background:#00000038;border:1px solid #e6b84a4d;border-radius:14px;align-items:center;gap:12px;padding:10px 12px;animation:.55s cubic-bezier(.34,1.56,.64,1) both haulItemIn;display:flex}@keyframes haulItemIn{0%{opacity:0;transform:translate(-24px)scale(.92)}to{opacity:1;transform:none}}.haul-icon{filter:drop-shadow(0 0 10px #e6b84a73);flex:0 0 64px;justify-content:center;align-items:center;width:64px;height:64px;font-size:36px;display:flex}.haul-icon-picture{width:100%;height:100%}.haul-body{flex:1;min-width:0}.haul-name{font-family:var(--font-cinzel-stack);color:var(--gold-glow);font-weight:700}.haul-flavor{color:var(--ink-dim,#b9a9d9);margin-top:2px;font-size:13px;line-height:1.35}.haul-points{white-space:nowrap;color:var(--gold-glow);font-weight:700}.haul-total{justify-content:center;align-items:baseline;gap:10px;margin:6px 0 2px;animation:.5s ease-out both pop;display:flex}.haul-total-label{font-family:var(--font-cinzel-stack);letter-spacing:.15em;text-transform:uppercase;color:var(--gold);font-size:12px}.haul-total-num{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);text-shadow:0 0 16px #ffd97a80;font-size:2rem}.haul-note{background:#e6b84a14;border:1px dashed #e6b84a73;border-radius:12px;margin:0 0 16px;padding:10px 12px}.haul-note p{margin:0}.haul-note.with-image{text-align:left;align-items:center;gap:12px;display:flex}.haul-note-image{filter:drop-shadow(0 0 10px #78ffdc73);flex:0 0 64px;width:64px;height:64px;animation:3s ease-in-out infinite haulFloat}@media (prefers-reduced-motion:reduce){.haul-note-image,.haul-header,.haul-cert,.haul-avatar,.haul-item,.haul-total{animation:none!important}}.ghost-claims{flex-direction:column;gap:10px;display:flex}.ghost-claim{border:1px solid var(--line);background:var(--surface);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.ghost-claim--pending{border-color:var(--gold);box-shadow:0 0 0 1px #e6b84a59}.ghost-claim--rejected{opacity:.6}.ghost-claim-who{align-items:center;gap:10px;min-width:0;display:flex}.ghost-claim-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ghost-stepper{border:1px solid var(--line);border-radius:12px;align-items:center;display:inline-flex;overflow:hidden}.ghost-stepper button{background:var(--surface2);width:40px;height:40px;color:var(--ink);cursor:pointer;border:none;font-size:20px}.ghost-stepper input{text-align:center;width:56px;height:40px;color:var(--ink);background:0 0;border:none;font-size:18px;font-weight:700}.ghost-approve{width:auto;padding:10px 14px;font-size:15px}.ghosts-screen{text-align:center;position:relative;overflow:hidden}.ghosts-float{pointer-events:none;z-index:0;position:absolute;inset:0}.ghosts-float span{opacity:0;font-size:26px;animation:5s ease-in infinite ghostRise;position:absolute;bottom:-40px}@keyframes ghostRise{0%{opacity:0;transform:translateY(0)translate(0)}15%{opacity:.55}50%{transform:translateY(-45vh)translate(18px)}to{opacity:0;transform:translateY(-90vh)translate(-10px)}}.ghosts-screen>:not(.ghosts-float){z-index:1;position:relative}.ghosts-counter{justify-content:center;align-items:center;gap:18px;margin:18px 0 10px;display:flex}.ghosts-counter>button{border:2px solid var(--gold);background:var(--surface2);width:64px;height:64px;color:var(--gold-glow);cursor:pointer;border-radius:50%;font-size:32px;font-weight:700}.ghosts-counter>button:active{transform:scale(.92)}.ghosts-count{flex-direction:column;align-items:center;min-width:110px;display:flex}.ghosts-count-num{font-family:var(--font-cinzel-decorative-stack);color:var(--gold-glow);text-shadow:0 0 22px #ffd97a80;font-size:4rem;line-height:1}.ghosts-count-icon{font-size:30px;animation:2.4s ease-in-out infinite haulFloat}.ghosts-quick{justify-content:center;gap:8px;margin-bottom:18px;display:flex}.ghosts-quick button{cursor:pointer;border:none;padding:6px 14px;font-size:15px}.cauldron-screen{text-align:center;overflow:hidden}.cauldron-stage{--brew:#6a3fbf;--brew-glow:#9664ff8c;max-width:360px;height:360px;margin:8px auto 6px;position:relative}.cauldron--good{--brew:#e8b84a;--brew-glow:#ffd76ed9}.cauldron--mixed{--brew:#9b4fd6;--brew-glow:#be78ffbf}.cauldron--bad{--brew:#5fcf3f;--brew-glow:#78ff5acc}.cauldron-pot{z-index:3;background:radial-gradient(at 35% 30%,#4a4458 0%,#221e2c 55%,#121018 100%);border-radius:46% 46% 50% 50%/30% 30% 70% 70%;width:230px;height:170px;position:absolute;bottom:46px;left:50%;transform:translate(-50%);box-shadow:inset -14px -18px 30px #0009,0 14px 26px #0000008c}.cauldron-rim{z-index:1;background:linear-gradient(#5a5468,#2a2534);border-radius:50%;height:34px;position:absolute;top:-6px;left:-10px;right:-10px;box-shadow:inset 0 -6px 10px #00000080}.cauldron-brew{background:var(--brew);height:22px;box-shadow:0 0 26px 8px var(--brew-glow);z-index:2;border-radius:50%;transition:background 1.2s,box-shadow 1.2s;position:absolute;top:0;left:6px;right:6px;overflow:visible}.cauldron-bubble{background:var(--brew);filter:brightness(1.35);border-radius:50%;width:12px;height:12px;animation:1.6s ease-in infinite brewBubble;position:absolute;bottom:6px}@keyframes brewBubble{0%{opacity:0;transform:translateY(0)scale(.5)}30%{opacity:1}to{opacity:0;transform:translateY(-46px)scale(1.2)}}.cauldron-fire{letter-spacing:-6px;z-index:2;font-size:34px;animation:.35s ease-in-out infinite alternate fireFlicker;position:absolute;bottom:6px;left:50%;transform:translate(-50%)}@keyframes fireFlicker{0%{filter:brightness();transform:translate(-50%)scaleY(1)}to{filter:brightness(1.25);transform:translate(-50%)scaleY(1.12)}}.cauldron-drop,.cauldron-ghost{opacity:0;z-index:4;filter:drop-shadow(0 0 10px #ffd76e80);justify-content:center;align-items:center;width:84px;height:84px;margin-left:-42px;font-size:44px;animation:1.1s cubic-bezier(.45,0,.7,1) both dropIn;display:flex;position:absolute;top:0;left:50%}.cauldron-ghost{filter:drop-shadow(0 0 10px #8cffe6cc);width:50px;height:50px;margin-left:-25px;font-size:34px;animation-name:ghostIn;animation-duration:1s}@keyframes dropIn{0%{opacity:0;transform:translate(var(--fx), -30px) rotate(0) scale(1)}12%{opacity:1}45%{transform:translate(calc(var(--fx) * .45), 40px) rotate(var(--fr)) scale(1)}85%{opacity:1;transform:translate(0, 158px) rotate(calc(var(--fr) * 3)) scale(.6)}to{opacity:0;transform:translate(0, 178px) rotate(calc(var(--fr) * 3)) scale(.3)}}@keyframes ghostIn{0%{opacity:0;transform:translate(var(--fx), 10px) scale(.8)}20%{opacity:1}60%{transform:translate(calc(var(--fx) * -.4), 80px) scale(.9)}to{opacity:0;transform:translateY(180px)scale(.2)}}.cauldron-splash{background:radial-gradient(circle, var(--brew-glow) 0%, transparent 70%);z-index:3;pointer-events:none;border-radius:50%;width:120px;height:50px;margin-left:-60px;animation:.5s ease-out forwards splash;position:absolute;top:-18px;left:50%}@keyframes splash{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.8)translateY(-14px)}}.cauldron-puff{background:radial-gradient(circle, var(--brew-glow) 0%, transparent 65%);z-index:5;pointer-events:none;border-radius:50%;width:260px;height:200px;margin-left:-130px;animation:1.6s ease-out forwards puff;position:absolute;bottom:170px;left:50%}.cauldron--bad .cauldron-puff{background:radial-gradient(circle,#6edc50d9 0%,#3c782866 45%,#0000 70%);animation-duration:2.2s}@keyframes puff{0%{opacity:0;transform:scale(.2)}25%{opacity:1}to{opacity:0;transform:scale(1.7)translateY(-40px)}}.cauldron--bad .cauldron-pot{animation:.5s ease-in-out 2 potShake}@keyframes potShake{0%,to{transform:translate(-50%)}25%{transform:translate(calc(-50% - 8px))rotate(-3deg)}75%{transform:translate(calc(8px - 50%))rotate(3deg)}}.cauldron-verdict{animation:.6s ease-out both pop}.cauldron-skip{opacity:.7;margin-top:8px}.haul-ghosts--pending .haul-points{font-size:22px}@media (prefers-reduced-motion:reduce){.ghosts-float span,.cauldron-bubble,.cauldron-fire,.cauldron-drop,.cauldron-ghost,.cauldron-puff,.cauldron-splash{animation:none!important}.cauldron-drop,.cauldron-ghost{display:none}}html[data-theme=halloween]{--bg:#0d0a14;--surface:#1a1424;--surface2:#241b33;--line:#78ffdc29}html[data-theme=halloween] body{background:radial-gradient(ellipse at 15% 0%, #783cc847, transparent 55%), radial-gradient(ellipse at 90% 100%, #3cdcb429, transparent 55%), var(--bg);background-attachment:fixed}html[data-theme=halloween] #app{z-index:1;position:relative}html[data-theme=halloween] h1,html[data-theme=halloween] .haul-header{text-shadow:0 0 18px #78ffdc73,0 0 4px #ffd97a66}html[data-theme=halloween] .npc-portrait,html[data-theme=halloween] .haul-avatar{box-shadow:0 0 0 3px #78ffdc1f,0 0 28px #78ffdc59}html[data-theme=halloween] .btn{box-shadow:0 4px #a8792a,0 0 22px #ffaa3c59}.theme-halloween-layer{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.hw-fog{filter:blur(18px);background:radial-gradient(#c8d2ff1a,#0000 65%);width:200%;height:45%;position:absolute;left:-50%}.hw-fog--a{animation:38s linear infinite hwFog;bottom:-10%}.hw-fog--b{opacity:.7;animation:55s linear infinite reverse hwFog;bottom:10%}@keyframes hwFog{0%{transform:translate(-12%)}to{transform:translate(12%)}}.hw-float{opacity:0;filter:drop-shadow(0 0 8px #8cffe699);font-size:22px;animation:26s linear infinite hwDrift;position:absolute}.hw-float--0{animation-delay:0s;top:18%}.hw-float--1{font-size:18px;animation-duration:18s;animation-delay:6s;top:8%}.hw-float--2{animation-duration:32s;animation-delay:11s;top:55%}.hw-float--3{opacity:.18;font-size:30px;animation:none;top:3%;left:4%}.hw-float--4{animation-duration:29s;animation-delay:17s;top:75%}.hw-float--5{font-size:16px;animation-duration:21s;animation-delay:3s;top:35%}@keyframes hwDrift{0%{opacity:0;transform:translate(-10vw)translateY(0)}10%{opacity:.32}50%{transform:translate(50vw)translateY(-30px)}90%{opacity:.32}to{opacity:0;transform:translate(110vw)translateY(10px)}}@media (prefers-reduced-motion:reduce){.hw-fog,.hw-float{animation:none!important}.hw-float:not(.hw-float--3){display:none}}.weed-hud{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;font-weight:700;display:flex}.weed-hearts{letter-spacing:2px;font-size:20px}.weed-count{color:var(--gold-glow);font-size:17px}.weed-timebar{background:var(--surface);border-radius:6px;height:8px;margin-bottom:8px;overflow:hidden}.weed-timebar>div{background:linear-gradient(90deg, #6fe08a, var(--gold));height:100%;transition:width .1s linear}.weed-stage{aspect-ratio:3/4;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(#ffffff09 1px,#0000 1px) 0 0/100% 25%,linear-gradient(90deg,#ffffff09 1px,#0000 1px) 0 0/25% 100%,radial-gradient(at 50% 110%,#3c8c5a73,#0000 60%),linear-gradient(#14202a,#0f2a22);border:1px solid #78ffdc2e;border-radius:18px;width:100%;max-height:62vh;position:relative;overflow:hidden}.weed-canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.weed-shake-a{animation:.35s weedShakeA}.weed-shake-b{animation:.35s weedShakeB}@keyframes weedShakeA{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes weedShakeB{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.weed-intro{z-index:6;text-align:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:inherit;background:#0c1614db;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:18px;display:flex;position:absolute;inset:0}.weed-intro-title{color:var(--gold-glow);margin:0;font-size:20px;font-weight:700}.weed-intro-hint{margin:0;font-size:17px;line-height:1.4}.weed-intro-rules{gap:8px;margin:4px 0 0;padding:0;font-size:15px;line-height:1.35;list-style:none;display:grid}.weed-intro-meta{color:var(--gold-glow);margin:0;font-size:14px;font-weight:700}.weed-intro .btn{width:auto;min-width:160px;margin-top:6px}.lb-debt{color:#c9a8ff;white-space:nowrap;margin-left:6px;font-size:.8em}.pw-deal-link{color:#e4d8ff;cursor:pointer;background:#7850be24;border:1px solid #b99be873;border-radius:12px;width:100%;max-width:320px;margin:14px auto 0;padding:11px 14px;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none;display:block}.pw-deal-link:active{background:#7850be47}.deal-backdrop{z-index:60;background:#05030cc7;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.deal-card{background:linear-gradient(#1d1230,#120b1e);border:1px solid #b99be859;border-radius:18px;width:100%;max-width:440px;max-height:92vh;padding:18px;overflow-y:auto;box-shadow:0 0 40px #8c50dc59}.deal-title{text-align:center;color:#d6c2ff;margin:0 0 12px}.deal-ledger{gap:6px;margin:14px 0 8px;padding:0;list-style:none;display:grid}.deal-ledger li{background:#ffffff0d;border-radius:8px;justify-content:space-between;padding:6px 10px;display:flex}.deal-ledger li:last-child{color:#e9a6ff}.deal-warning{opacity:.85;margin:8px 0 12px;font-size:13px;line-height:1.4}.deal-sign{color:#fff;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(#7a1f3d,#4d0f26);width:100%;position:relative;overflow:hidden}.deal-sign-fill{background:#ff3c5a8c;transition:width 50ms linear;position:absolute;inset:0 auto 0 0}.deal-sign-label{position:relative}.lb-plaque-debt{color:#c9a8ff;white-space:nowrap;font-size:.9em}.lb-plaque{flex-wrap:wrap}.ghosts-debt{color:#d6c2ff;background:#8c50dc26;border:1px solid #b99be859;border-radius:10px;padding:8px 12px;font-size:14px}.haul-debt .haul-points{color:#e9a6ff}.ghost-claim-debt{color:#c9a8ff}.route-card{background:var(--surface);border:1px solid #e8b45047;border-radius:16px;align-items:center;gap:8px;margin:12px 0 0;padding:10px;display:flex}.route-track{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1;min-width:0;display:flex;overflow-x:auto}.route-track::-webkit-scrollbar{display:none}.route-slide{scroll-snap-align:start;flex:0 0 100%;align-items:center;gap:12px;min-width:0;display:flex}.route-thumb{object-fit:cover;border-radius:10px;flex:none;width:76px;height:76px}.route-body{text-align:left;flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.route-label{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-size:11px;font-weight:800}.route-text{font-size:16px;font-weight:600;line-height:1.3}.route-dots{gap:6px;margin-top:2px;display:flex}.route-dot{background:#ffffff40;border-radius:3px;width:6px;height:6px}.route-dot.active{background:var(--gold);width:18px}.route-next{width:44px;height:44px;color:var(--gold-glow);cursor:pointer;background:0 0;border:1px solid #e8b45073;border-radius:50%;flex:none;font-size:22px;line-height:1}.admin-route-step{border:1px solid #ffffff1a;border-radius:10px;gap:8px;margin-bottom:10px;padding:10px;display:grid}.admin-route-step-head{justify-content:space-between;align-items:center;display:flex}.admin-btn-mini{width:auto;min-width:32px;margin-left:4px;padding:4px 8px;font-size:14px}.goblin-walk{filter:drop-shadow(0 6px 6px #00000073);background:url(/images/goblin-walk-v4.png) 0 0/800% 100% no-repeat;width:120px;height:120px;margin:0 auto 4px;animation:.8s steps(8,end) infinite goblinWalk}@keyframes goblinWalk{to{background-position:114.286% 0}}@media (prefers-reduced-motion:reduce){.goblin-walk{animation:none}}.compass-dial{aspect-ratio:1;width:min(270px,72vw);margin:26px auto 0;position:relative}.compass-dial .dial-face,.compass-dial .dial-needle,.compass-dial .dial-needle svg{width:100%;height:100%;position:absolute;inset:0}.compass-dial .dial-face{filter:drop-shadow(0 0 22px #e6b84a29);font-family:var(--font-body-stack,inherit)}.compass-dial .dial-needle{transition:transform .2s linear}.compass-readout{justify-content:center;align-items:center;gap:8px;margin-top:6px;display:flex}.compass-readout .goblin-walk{flex:none;width:70px;height:70px;margin:0}.compass-readout-text{flex-direction:column;align-items:center;display:flex}.compass-readout .compass-distance-big{margin:0;font-size:42px;line-height:1}.compass-readout .compass-accuracy{margin:4px 0 0;font-size:15px}.compass-live .compass-coords{border-top:1px solid #e8b45040;border-bottom:1px solid #e8b45040;gap:0;margin:10px 0 0;padding:8px 0}.compass-live .coord-block{white-space:pre-line;font-variant-numeric:tabular-nums;text-align:left;background:0 0;border:none;padding:0 6px;font-size:13px;font-weight:700}.compass-live .coord-block-dest{text-align:right}.compass-live .coord-label{letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:800}.compass-live .coord-sep{background:#e8b4504d;width:1px}.compass-actions{z-index:5;background:0 0;flex-direction:column;gap:4px;margin:12px -4px 0;padding:12px 4px 14px;display:flex;position:sticky;bottom:0}.btn.btn-arrive{height:62px;font-family:var(--font-cinzel-stack);color:#2a1a08;background:linear-gradient(#ffe08a 0%,#e6b84a 100%);border-radius:18px;font-size:22px;font-weight:700;box-shadow:0 0 0 3px #ffd97a40,0 10px 30px #e6b84a73}.compass-test-link{height:32px;color:var(--ink-dim);cursor:pointer;background:0 0;border:none;font-size:13px;text-decoration:underline}.zone-photo{cursor:zoom-in;background:0 0;border:1px solid #e8b4504d;border-radius:14px;width:100%;margin:0 0 12px;padding:0;display:block;position:relative;overflow:hidden}.zone-photo img{object-fit:cover;width:100%;max-height:260px;display:block}.zone-photo-hint{color:#fff;background:#0009;border-radius:8px;padding:4px 8px;font-size:12px;position:absolute;bottom:8px;right:8px}.zone-photo-full{z-index:70;cursor:zoom-out;background:#000000eb;border:none;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.zone-photo-full img{object-fit:contain;border-radius:10px;max-width:100%;max-height:100%}.route-thumb-btn{cursor:zoom-in;background:0 0;border:none;border-radius:10px;flex:none;padding:0;line-height:0}.trophy-feed{top:max(10px, env(safe-area-inset-top));z-index:80;width:min(440px,100vw - 20px);color:var(--ink);pointer-events:none;background:#1a1328f5;border:1px solid #e8b45080;border-radius:14px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;line-height:1.35;animation:5s forwards feedIn;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080,0 0 18px #e6b84a40}.trophy-feed.comic{border-color:#b99be880;box-shadow:0 10px 30px #00000080}.trophy-feed b{color:var(--gold-glow)}.trophy-feed-icon{flex:none;line-height:0}@keyframes feedIn{0%{opacity:0;transform:translate(-50%,-20px)}8%,88%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-12px)}}@media (prefers-reduced-motion:reduce){.trophy-feed{animation:none}}.code-hint-btn{color:var(--gold-glow);cursor:pointer;background:#e8b45014;border:1px solid #e8b45073;border-radius:12px;margin:0 auto 12px;padding:8px 16px;font-size:15px;font-weight:600;display:block}.code-hint{white-space:pre-line;background:#e8b4501a;border:1px solid #e8b4504d;border-radius:12px;margin:0 0 12px;padding:10px 14px;font-size:15px;line-height:1.4}.lb-info-btn{vertical-align:middle;width:26px;height:26px;color:var(--gold-glow);cursor:pointer;background:#e8b4501a;border:1.5px solid #e8b45099;border-radius:50%;justify-content:center;align-items:center;margin-left:6px;font:italic 700 15px/1 Georgia,serif;display:inline-flex}.lb-info-btn.big{border-width:2px;width:44px;height:44px;font-size:26px}.lb-info-overlay{z-index:75;background:#000000b3;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.lb-info-card{width:min(420px,100%);max-height:90vh;color:var(--ink);text-align:left;background:#1a1328fa;border:1px solid #e8b45073;border-radius:16px;padding:18px 18px 14px;font-size:15px;font-style:normal;font-weight:400;line-height:1.45;overflow-y:auto;box-shadow:0 12px 40px #0009}.lb-info-card h3{color:var(--gold-glow);margin:0 0 10px;font-size:18px}.lb-info-card ul{margin:0 0 14px;padding-left:18px}.lb-info-card li{margin-bottom:6px}.lb-info-overlay.big .lb-info-card{width:min(760px,100%);padding:30px;font-size:26px}.lb-info-overlay.big .lb-info-card h3{font-size:34px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
