/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
@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-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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:ui-sans-serif, system-ui, 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;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--ease-in:cubic-bezier(.4, 0, 1, 1);--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);--font-display:"Playfair Display", Georgia, "Times New Roman", serif;--font-body:"Nunito", system-ui, -apple-system, sans-serif;--duration-instant:50ms;--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--duration-slower:.6s;--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-out-quint:cubic-bezier(.22, 1, .36, 1)}}@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,ui-sans-serif, system-ui, 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{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{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.container{width:100%}@media (width>=375px){.container{max-width:375px}}@media (width>=430px){.container{max-width:430px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.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,)}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.font-body{font-family:var(--font-body)}.font-display{font-family:var(--font-display)}.italic{font-style:italic}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-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{--color-bg-primary:#dcfaf5;--color-bg-secondary:#b4dbe2;--color-bg-tertiary:#96bad0;--color-bg-inverse:#1f3b3a;--color-text-primary:#213b3c;--color-text-secondary:#3f5d63;--color-text-tertiary:#6c8b92;--color-text-inverse:#f0f9f7;--color-text-link:#1f7488;--color-border-primary:#7ca7c1;--color-border-secondary:#96bad0;--color-border-focus:#2a93ac;--color-accent-primary:#2b8196;--color-accent-primary-hover:#236a7c;--color-accent-primary-active:#1b5462;--color-accent-secondary:#bfe6dd;--color-accent-tertiary:#2a93ac;--color-status-success:#0d9488;--color-status-warning:#0e7490;--color-status-error:#dc2626;--color-status-info:#0891b2;--color-surface-overlay:#213b3c12;--color-surface-veil:#1c3535da;--color-bg-primary-glass:#e6f6f2cc;--color-surface-glass:#dcfaf599;--color-surface-glass-border:#96bad0;--shadow-glass:0 4px 24px #0e2c321f, inset 0 1px 0 #ffffff4d;--color-scan-success:var(--color-accent-tertiary)}@supports (color:color-mix(in lab, red, red)){:root{--color-scan-success:color-mix(in srgb, var(--color-accent-tertiary) 22%, transparent)}}:root{--shadow-sm:0 1px 3px #0e2c321a, 0 1px 2px #0e2c320f;--shadow-md:0 4px 12px #0e2c321f, 0 2px 4px #0e2c3212;--shadow-lg:0 8px 32px #0e2c3224, 0 4px 8px #0e2c3214;--shadow-focus:0 0 0 3px #2a93ac59;--color-text-on-accent:#fff;--color-on-camera:#fff;--color-backdrop:#00000080;--shadow-drawer:-8px 0 24px #0000004d;--color-veil-1:#0e262a14;--color-veil-2:#0c242c5c;--color-veil-3:#081a20c2;--color-veil-4:#06161ce6;--color-veil-scrim:#081a2080;--color-veil-shadow:#06161cb3;--gradient-veil:linear-gradient(to bottom, var(--color-veil-1) 0%, var(--color-veil-2) 38%, var(--color-veil-3) 75%, var(--color-veil-4) 100%);--color-bg-cinematic-fallback:#0c2c32}[data-theme=warm]{--color-bg-primary:#faf3e4;--color-bg-secondary:#f0dfc4;--color-bg-tertiary:#e0c49f;--color-bg-inverse:#3b2a1f;--color-text-primary:#3c2a1e;--color-text-secondary:#63503f;--color-text-tertiary:#92806c;--color-text-inverse:#f9f0e3;--color-text-link:#a8531f;--color-border-primary:#c1a37c;--color-border-secondary:#e0c49f;--color-border-focus:#d97706;--color-accent-primary:#c2622c;--color-accent-primary-hover:#a34f21;--color-accent-primary-active:#833e18;--color-accent-secondary:#f3d9b1;--color-accent-tertiary:#d97706;--color-status-success:#4d7c3a;--color-status-warning:#b45309;--color-status-error:#b3261e;--color-status-info:#92400e;--color-surface-overlay:#3c2a1e12;--color-surface-veil:#2b1d13da;--color-bg-primary-glass:#faf0e0cc;--color-surface-glass:#faf3e499;--color-surface-glass-border:#e0c49f;--shadow-glass:0 4px 24px #2b1d131f, inset 0 1px 0 #ffffff4d;--shadow-sm:0 1px 3px #3b2a1f1f, 0 1px 2px #3b2a1f12;--shadow-md:0 4px 12px #3b2a1f29, 0 2px 4px #3b2a1f17;--shadow-lg:0 8px 32px #3b2a1f33, 0 4px 8px #3b2a1f1a;--shadow-focus:0 0 0 3px #d9770659}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:background-color var(--duration-slow) var(--ease-out), color var(--duration-slow) var(--ease-out)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--space-10:8rem;--space-11:12rem;--space-12:16rem;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-md:1.125rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:1.875rem;--font-size-3xl:2.25rem;--font-size-4xl:3rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.7;--letter-spacing-tight:-.025em;--letter-spacing-normal:0;--letter-spacing-wide:.05em;--letter-spacing-wider:.1em;--max-width-content:65ch;--max-width-wide:90ch;--max-width-page:480px;--radius-sm:.375rem;--radius-md:.75rem;--radius-lg:1.25rem;--radius-xl:2rem;--radius-full:9999px;--camera-aspect:4 / 3;--camera-max-width:300px;--backdrop-blur-glass:16px}.lobby{min-height:100%;padding:var(--space-6) var(--space-4) var(--space-8);max-width:var(--max-width-page);flex-direction:column;align-items:center;width:100%;margin:0 auto;display:flex}.lobby__header{text-align:center;padding:var(--space-7) var(--space-5) var(--space-6);margin:calc(-1 * var(--space-6)) calc(-1 * var(--space-4)) var(--space-6);background:var(--color-bg-secondary);border:1px solid var(--color-border-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg);animation:fade-in var(--duration-slow) var(--ease-out) both;border-top-style:none}.lobby__title{font-family:var(--font-display);font-size:clamp(2.25rem,10vw,3.25rem);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:var(--letter-spacing-tight);line-height:var(--line-height-tight);margin:0 0 var(--space-2)}.lobby__tagline{font-family:var(--font-display);font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.lobby__section{width:100%;margin-bottom:var(--space-6)}.lobby__section--muted .lobby__section-heading{color:var(--color-text-tertiary)}.lobby__section-heading{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin:0 0 var(--space-3);letter-spacing:var(--letter-spacing-tight)}.lobby__list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lobby__loading,.lobby__error,.lobby__empty{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.lobby__error{color:var(--color-status-error)}.story-card{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4) var(--space-5);background:var(--color-bg-secondary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;color:inherit;transition:background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);font-family:inherit;display:flex}.story-card:hover{background:var(--color-bg-tertiary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.story-card:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.story-card:focus-visible{box-shadow:var(--shadow-focus);outline:none}.story-card__icon{color:var(--color-accent-primary);flex-shrink:0;align-items:center;display:flex}.story-card__body{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.story-card__title{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-tight)}.story-card__subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.story-card__chevron{font-size:var(--font-size-xl);color:var(--color-text-tertiary);flex-shrink:0;line-height:1}.save-slot{align-items:center;gap:var(--space-2);background:var(--color-bg-secondary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-md);transition:background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);display:flex;overflow:hidden}.save-slot:has(.save-slot__resume:hover){background:var(--color-bg-tertiary);box-shadow:var(--shadow-sm)}.save-slot__resume{text-align:left;min-width:0;padding:var(--space-3) var(--space-4) var(--space-3) var(--space-5);cursor:pointer;color:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;font-family:inherit;display:flex}.save-slot__resume:focus-visible{box-shadow:var(--shadow-focus);border-radius:var(--radius-md);outline:none}.save-slot__name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.save-slot__location{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.save-slot__date{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.save-slot__delete{border-radius:var(--radius-full);width:36px;height:36px;color:var(--color-text-tertiary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.save-slot__delete:hover{background:var(--color-status-error)}@supports (color:color-mix(in lab, red, red)){.save-slot__delete:hover{background:color-mix(in srgb, var(--color-status-error) 10%, transparent)}}.save-slot__delete:hover{color:var(--color-status-error)}.save-slot__delete:focus-visible{box-shadow:0 0 0 2px var(--color-status-error);outline:none}.lobby__player{margin-top:var(--space-3);justify-content:center;display:flex}.lobby__player-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-full);font-family:var(--font-body);font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);display:inline-flex}.lobby__player-chip:hover{border-color:var(--color-border-primary);color:var(--color-text-primary)}.lobby__player-chip:focus-visible{box-shadow:var(--shadow-focus);outline:none}.lobby__player-label{text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-tertiary)}.lobby__player-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.lobby__player-input{padding:var(--space-1) var(--space-3);background:var(--color-bg-secondary);border:1px solid var(--color-border-focus);border-radius:var(--radius-full);font-family:var(--font-body);font-size:var(--font-size-xs);color:var(--color-text-primary);box-shadow:var(--shadow-focus);text-align:center;outline:none;width:160px}.btn{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-full);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out);white-space:nowrap;border:none;min-height:44px;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn--primary{background:var(--color-accent-primary);color:var(--color-text-on-accent)}.btn--primary:hover:not(:disabled){background:var(--color-accent-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--primary:active:not(:disabled){background:var(--color-accent-primary-active);transform:translateY(0)}.btn--ghost{color:var(--color-text-secondary);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--color-bg-tertiary)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.game-page{height:100%;max-width:var(--max-width-page);isolation:isolate;flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.game-page:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(80% 55% at 50% 8%, var(--color-accent-primary) 0%, transparent 60%), radial-gradient(70% 40% at 50% 104%, var(--color-accent-secondary) 0%, transparent 72%);position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.game-page:before{background:radial-gradient(80% 55% at 50% 8%, color-mix(in srgb, var(--color-accent-primary) 12%, transparent) 0%, transparent 60%), radial-gradient(70% 40% at 50% 104%, color-mix(in srgb, var(--color-accent-secondary) 10%, transparent) 0%, transparent 72%)}}.game-page:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(140% 100% at 50% 50%, transparent 60%, var(--color-text-primary) 100%);position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){.game-page:after{background:radial-gradient(140% 100% at 50% 50%, transparent 60%, color-mix(in srgb, var(--color-text-primary) 7%, transparent) 100%)}}.game-page__main,.game-page__footer{z-index:1;position:relative}.game-page--loading{justify-content:center;align-items:center}.game-page__loading-text{color:var(--color-text-tertiary);font-size:var(--font-size-sm)}.game-page__main{padding:var(--space-5) var(--space-4);gap:var(--space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.game-page__main--spotlight{justify-content:safe center;align-items:center;gap:var(--space-5)}.game-page__main--spotlight .narration-panel{align-items:center;width:100%}.game-page__footer{padding:var(--space-3) var(--space-4) var(--space-5);align-items:center;gap:var(--space-3);flex-direction:column;flex-shrink:0;display:flex}.game-page__ending{align-items:center;gap:var(--space-5);padding:var(--space-6) 0;text-align:center;flex-direction:column;display:flex}.game-page__ending-title{font-family:var(--font-display);font-size:var(--font-size-2xl);color:var(--color-text-primary);margin:0}.narration-panel{gap:var(--space-4);flex-direction:column;display:flex}.narration-line{font-size:var(--font-size-md);line-height:var(--line-height-relaxed);color:var(--color-text-primary);opacity:0;margin:0;transform:translateY(6px)}.narration-line--visible{animation:narration-appear var(--duration-slow) var(--ease-out) forwards}@keyframes narration-appear{to{opacity:1;transform:translateY(0)}}.narration-line--narration{font-family:var(--font-display);font-size:var(--font-size-lg);color:var(--color-text-primary);text-align:center;max-width:38ch;padding:var(--space-4) var(--space-5);background:var(--color-surface-glass);border:1px solid var(--color-surface-glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass);margin:0 auto}.narration-line--dialog{align-items:center;gap:var(--space-3);width:100%;max-width:420px;padding:var(--space-6) var(--space-5) var(--space-5);text-align:center;background:var(--color-surface-glass);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid var(--color-surface-glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass);flex-direction:column;margin:0 auto;display:flex;position:relative}.narration-line__speaker{align-items:center;gap:var(--space-2);flex-direction:column;display:inline-flex}.narration-line__speaker .tile__image{border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--color-accent-primary);width:64px;height:64px;box-shadow:0 0 0 5px var(--color-accent-primary), var(--shadow-sm)}@supports (color:color-mix(in lab, red, red)){.narration-line__speaker .tile__image{box-shadow:0 0 0 5px color-mix(in srgb, var(--color-accent-primary) 16%, transparent), var(--shadow-sm)}}.narration-line__speaker .tile__image{transition:box-shadow var(--duration-normal) var(--ease-out), border-color var(--duration-normal) var(--ease-out)}.narration-line__speaker-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--color-accent-primary)}.narration-line__text{font-family:var(--font-display);font-size:var(--font-size-xl);line-height:var(--line-height-normal);color:var(--color-text-primary);max-width:30ch;margin:0;position:relative}.narration-line--dialog .narration-line__text:before{content:"“";font-family:var(--font-display);margin-bottom:var(--space-3);color:var(--color-accent-primary);opacity:.3;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:3.5rem;line-height:.5;display:block}@media (height>=720px){.narration-line--dialog{gap:var(--space-4);padding:var(--space-7) var(--space-5) var(--space-6)}.narration-line--dialog .narration-line__speaker .tile__image{width:84px;height:84px}.narration-line__text{font-size:var(--font-size-2xl)}.narration-line--dialog .narration-line__text:before{font-size:4.5rem}}@media (height>=900px){.narration-line--dialog .narration-line__speaker .tile__image{width:104px;height:104px}}.game-controls{top:var(--space-3);right:var(--space-3);z-index:40;gap:var(--space-2);display:flex;position:fixed}.game-controls__btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-surface-glass);border:1px solid var(--color-surface-glass-border);box-shadow:var(--shadow-glass);border-radius:var(--radius-full);cursor:pointer;display:inline-flex}.game-controls__btn:hover{border-color:var(--color-accent-primary)}.history-drawer{z-index:50;justify-content:flex-end;display:flex;position:fixed;inset:0}.history-drawer__backdrop{background:var(--color-backdrop);animation:fade-in var(--duration-normal) var(--ease-out);position:absolute;inset:0}.history-drawer__panel{background:var(--color-bg-primary);border-left:1px solid var(--color-surface-glass-border);width:min(440px,92vw);height:100%;box-shadow:var(--shadow-glass), var(--shadow-drawer);animation:history-slide-in var(--duration-normal) var(--ease-out);flex-direction:column;display:flex;position:relative}@keyframes history-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.history-drawer__header{padding:var(--space-4);border-bottom:1px solid var(--color-border-secondary);justify-content:space-between;align-items:center;display:flex}.history-drawer__title{font-size:var(--font-size-lg);margin:0}.history-drawer__close{padding:var(--space-2);color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;display:inline-flex}.history-drawer__close:hover{color:var(--color-text-primary);background:var(--color-bg-secondary)}.history-drawer__body{padding:var(--space-4);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.history-drawer__empty{color:var(--color-text-secondary);font-style:italic}.history-scene{gap:var(--space-3);flex-direction:column;display:flex}.history-scene__heading{top:calc(var(--space-4) * -1);padding:var(--space-2) 0;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-accent-primary);margin:0;position:sticky}.history-beat{gap:var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-secondary);flex-direction:column;display:flex}.history-beat__action{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin:0}.history-line{font-size:var(--font-size-md);line-height:var(--line-height-relaxed);color:var(--color-text-primary);margin:0}.history-line--dialog{gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--color-accent-primary);flex-direction:column;display:flex}@supports (color:color-mix(in lab, red, red)){.history-line--dialog{background:color-mix(in srgb, var(--color-accent-primary) 6%, transparent)}}.history-line--dialog{border-radius:var(--radius-sm)}.history-line__speaker{align-items:center;gap:var(--space-2);display:inline-flex}.history-line__speaker .tile__image{border-radius:var(--radius-full);object-fit:cover;border:1px solid var(--color-border-secondary);width:28px;height:28px}.history-line__speaker-name{font-size:var(--font-size-sm);color:var(--color-accent-primary);font-weight:600}.history-line__text{margin:0}.map-view{z-index:50;display:flex;position:fixed;inset:0}.map-view__backdrop{background:var(--color-backdrop);animation:fade-in var(--duration-normal) var(--ease-out);position:absolute;inset:0}.map-view__panel{flex-direction:column;width:100%;height:100%;display:flex;position:relative}.map-view__header{padding:var(--space-3) var(--space-4);background:var(--color-surface-glass);border-bottom:1px solid var(--color-surface-glass-border);justify-content:space-between;align-items:center;display:flex}.map-view__title{font-size:var(--font-size-lg);margin:0}.map-view__close{padding:var(--space-2);color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;display:inline-flex}.map-view__close:hover{color:var(--color-text-primary);background:var(--color-bg-secondary)}.map-view__viewport{background:var(--color-bg-primary);touch-action:none;cursor:grab;flex:1;position:relative;overflow:hidden}.map-view__viewport:active{cursor:grabbing}.map-view__world{transform-origin:0 0;position:absolute;top:0;left:0}.map-view__edges{pointer-events:none;position:absolute;overflow:visible}.map-edge{stroke:var(--color-border-secondary);stroke-width:3px}.map-edge--closed{stroke-dasharray:6 6;opacity:.5}.map-node{align-items:center;gap:var(--space-1);opacity:.55;flex-direction:column;width:96px;display:flex;position:absolute;transform:translate(-50%,-50%)}.map-node--visited{opacity:1}.map-node--reachable .tile__image{border-color:var(--color-accent-primary)}.map-node--current .tile__image{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-primary)}.map-node .tile__image{border-radius:var(--radius-md);object-fit:cover;border:2px solid var(--color-border-secondary);background:var(--color-bg-secondary);width:80px;height:80px}.map-node__name{font-size:var(--font-size-sm);text-align:center;color:var(--color-text-primary)}.map-view__zoom{right:var(--space-3);bottom:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex;position:absolute}.map-view__zoom button{padding:var(--space-2);color:var(--color-text-primary);background:var(--color-bg-secondary);border:1px solid var(--color-border-secondary);border-radius:var(--radius-md);cursor:pointer;display:inline-flex}.map-view__zoom button:hover{border-color:var(--color-accent-primary)}.map-view__footer{padding:var(--space-3) var(--space-4);background:var(--color-surface-glass);border-top:1px solid var(--color-surface-glass-border);justify-content:flex-end;display:flex}.recap-card{gap:var(--space-3);padding:var(--space-4);background:var(--color-surface-glass);border:1px solid var(--color-surface-glass-border);box-shadow:var(--shadow-glass);border-radius:var(--radius-md);animation:fade-in var(--duration-normal) var(--ease-out);flex-direction:column;display:flex}.recap-card__header{justify-content:space-between;align-items:center;display:flex}.recap-card__title{font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);margin:0}.recap-card__dismiss{padding:var(--space-1);color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;display:inline-flex}.recap-card__dismiss:hover{color:var(--color-text-primary)}.recap-card__body{gap:var(--space-3);opacity:.85;flex-direction:column;display:flex}.recap-card__footer{padding-top:var(--space-2);border-top:1px solid var(--color-border-secondary);justify-content:flex-end;display:flex}.resume-roster__location{margin:0 0 var(--space-2);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.resume-step{z-index:1;background:var(--color-bg-primary-glass);animation:fade-in var(--duration-normal) var(--ease-out);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.resume-step__header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-secondary);flex-shrink:0}.resume-step__title{font-size:var(--font-size-lg);margin:0}.resume-step__instruction{margin:var(--space-1) 0 0;font-size:var(--font-size-sm);color:var(--color-text-tertiary);font-style:italic}.resume-step__body{padding:var(--space-5) var(--space-4);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.resume-step__section{gap:var(--space-3);flex-direction:column;display:flex}.resume-step__section-label{font-size:var(--font-size-xs);color:var(--color-accent-primary);text-transform:uppercase;letter-spacing:.08em;padding-left:var(--space-3);border-left:2px solid var(--color-accent-primary);margin:0;font-weight:600}.resume-step__footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border-secondary);flex-shrink:0;justify-content:flex-end;display:flex}.resume-items__grid{padding:var(--space-3) 0;justify-content:center;gap:var(--space-6);flex-wrap:wrap;margin:0;list-style:none;display:flex}.resume-items__grid .tile{width:96px}.resume-items__grid .tile__image{width:96px;height:96px}.scene-announcement{padding:var(--space-4);border:1px solid var(--color-accent-primary)}@supports (color:color-mix(in lab, red, red)){.scene-announcement{border:1px solid color-mix(in srgb, var(--color-accent-primary) 35%, transparent)}}.scene-announcement{background:var(--color-surface-glass);box-shadow:var(--shadow-glass);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-radius:var(--radius-md);animation:fade-in var(--duration-normal) var(--ease-out)}.scene-announcement__label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--color-accent-primary);font-weight:var(--font-weight-medium);margin:0 0 var(--space-1)}.scene-announcement__name{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-text-primary);line-height:var(--line-height-tight);margin:0}.scene-announcement__description{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:var(--space-2) 0 0;line-height:var(--line-height-normal)}.decision-prompt{padding:var(--space-4);background:var(--color-surface-glass);border:1px solid var(--color-surface-glass-border);box-shadow:var(--shadow-glass);border-radius:var(--radius-md);animation:fade-in var(--duration-normal) var(--ease-out)}.decision-prompt__text{font-size:var(--font-size-base);color:var(--color-text-secondary);font-style:italic;line-height:var(--line-height-relaxed);margin:0}.conversation-panel{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-glass);border-radius:var(--radius-lg);border:1px solid var(--color-surface-glass-border);box-shadow:var(--shadow-glass);animation:fade-in var(--duration-normal) var(--ease-out);display:flex}.conversation-panel__portrait-wrap{border-radius:var(--radius-full);border:2px solid var(--color-accent-primary);width:52px;height:52px;box-shadow:0 0 0 4px var(--color-accent-primary);flex-shrink:0;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.conversation-panel__portrait-wrap{box-shadow:0 0 0 4px color-mix(in srgb, var(--color-accent-primary) 14%, transparent)}}.conversation-panel__portrait-wrap .tile__image{border-radius:var(--radius-full);object-fit:cover;width:52px;height:52px}.conversation-panel__portrait-wrap .tile__image--fallback{width:52px;height:52px;color:var(--color-accent-primary);background:var(--color-accent-primary);justify-content:center;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){.conversation-panel__portrait-wrap .tile__image--fallback{background:color-mix(in srgb, var(--color-accent-primary) 8%, var(--color-bg-tertiary))}}.conversation-panel__identity{flex-direction:column;min-width:0;display:flex}.conversation-panel__eyebrow{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--color-accent-primary);font-weight:var(--font-weight-semibold);line-height:1.6}.conversation-panel__name{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;line-height:var(--line-height-tight);margin:0;overflow:hidden}.conversation-panel__leave{border-radius:var(--radius-full);border:1px solid var(--color-surface-glass-border);width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;display:flex}.conversation-panel__leave:hover{background:var(--color-text-primary)}@supports (color:color-mix(in lab, red, red)){.conversation-panel__leave:hover{background:color-mix(in srgb, var(--color-text-primary) 8%, transparent)}}.conversation-panel__leave:hover{color:var(--color-text-primary)}@media (height>=720px){.game-page__main--conversation .narration-line--dialog{gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-5)}.game-page__main--conversation .narration-line--dialog .narration-line__speaker .tile__image{width:60px;height:60px}.game-page__main--conversation .narration-line__text{font-size:var(--font-size-xl)}.game-page__main--conversation .narration-line--dialog .narration-line__text:before{margin-bottom:var(--space-2);font-size:2.75rem}}@media (height>=900px){.game-page__main--conversation .narration-line--dialog .narration-line__speaker .tile__image{width:72px;height:72px}}.scene-bg{z-index:0;animation:fade-in var(--duration-slow) var(--ease-out) both;position:fixed;inset:0;overflow:hidden}.scene-bg__img{object-fit:cover;opacity:.35;width:100%;height:100%}.scene-bg__veil{background:var(--gradient-veil);position:absolute;inset:0}.acknowledge{align-items:center;gap:var(--space-2);animation:fade-in var(--duration-normal) var(--ease-out), ack-bob 2.6s var(--ease-default) infinite;flex-direction:column;display:flex}.acknowledge__hint{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--color-accent-tertiary)}@keyframes ack-bob{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.acknowledge-btn{border-radius:var(--radius-full);border:2px solid var(--color-accent-tertiary);background:var(--color-accent-tertiary);justify-content:center;align-items:center;width:64px;height:64px;display:flex}@supports (color:color-mix(in lab, red, red)){.acknowledge-btn{background:color-mix(in srgb, var(--color-accent-tertiary) 8%, transparent)}}.acknowledge-btn{color:var(--color-accent-tertiary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out-quint)}.acknowledge-btn:hover:not(:disabled){background:var(--color-accent-tertiary);color:var(--color-text-on-accent);transform:scale(1.05)}.acknowledge-btn:active:not(:disabled){transform:scale(.97)}.acknowledge-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.acknowledge-btn:disabled{opacity:.4;cursor:not-allowed}.camera-window{width:var(--camera-max-width);max-width:90%;aspect-ratio:var(--camera-aspect);border-radius:var(--radius-lg);background:var(--color-bg-inverse);border:1px solid var(--color-surface-glass-border);box-shadow:var(--shadow-glass), var(--shadow-md);position:relative;overflow:hidden}.camera-window__video{object-fit:cover;width:100%;height:100%;display:block}.camera-window__overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.camera-window__frame{aspect-ratio:1;border:2px solid var(--color-on-camera);width:60%}@supports (color:color-mix(in lab, red, red)){.camera-window__frame{border:2px solid color-mix(in srgb, var(--color-on-camera) 60%, transparent)}}.camera-window__frame{border-radius:var(--radius-sm)}.camera-window__permission-hint{bottom:var(--space-3);text-align:center;font-size:var(--font-size-xs);color:var(--color-on-camera);position:absolute;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.camera-window__permission-hint{color:color-mix(in srgb, var(--color-on-camera) 75%, transparent)}}.camera-window__permission-hint{padding:0 var(--space-2);margin:0}.camera-debug-form{gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-surface-glass);border:1px solid var(--color-surface-glass-border);box-shadow:var(--shadow-glass);border-radius:var(--radius-full);display:flex}.camera-debug-form__input{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);border:1px solid var(--color-surface-glass-border);border-radius:var(--radius-sm);color:var(--color-text-primary);background:0 0;outline:none;flex:1}.camera-debug-form__input:focus{border-color:var(--color-accent-primary)}.camera-debug-form__btn{font-size:var(--font-size-xs);padding:var(--space-1) var(--space-2);background:var(--color-accent-primary);color:var(--color-text-on-accent);border-radius:var(--radius-sm);cursor:pointer;border:none}.scan-stage{justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;flex:1;min-height:0;display:flex}.scan-stage .camera-window{--camera-max-width:440px;width:var(--camera-max-width)}@media (width>=768px){.scan-stage .camera-window{--camera-max-width:520px}}.arrival{z-index:1;background:var(--color-surface-glass);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);height:100%;animation:fade-in var(--duration-normal) var(--ease-out);flex-direction:column;display:flex;position:relative}.arrival__scroll{padding:var(--space-5) var(--space-4);gap:var(--space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.arrival__header{text-align:center}.arrival__label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--color-accent-primary);font-weight:var(--font-weight-medium);margin:0 0 var(--space-1)}.arrival__name{font-family:var(--font-display);font-size:var(--font-size-2xl);color:var(--color-text-primary);line-height:var(--line-height-tight);margin:0}.arrival__hero{aspect-ratio:4/3;align-self:center;width:100%;max-width:320px}.arrival__hero .tile__image{width:100%;height:100%}.arrival__description{font-size:var(--font-size-md);line-height:var(--line-height-relaxed);color:var(--color-text-primary);text-align:center;margin:0}.arrival__narration{font-size:var(--font-size-sm);line-height:var(--line-height-normal);color:var(--color-text-secondary);text-align:center;margin:0}.arrival__section{gap:var(--space-3);flex-direction:column;display:flex}.arrival__section-title{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-align:center;margin:0}.arrival__tiles{justify-content:center;gap:var(--space-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.arrival__tiles--extra{margin-top:var(--space-3)}.item-shelf{gap:var(--space-2);flex-direction:column;display:flex}.item-shelf__title{font-family:var(--font-display);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-align:center;margin:0}.item-shelf--granted{padding:var(--space-3);border:1px solid var(--color-surface-glass-border);border-radius:var(--radius-md);background:var(--color-surface-glass);box-shadow:var(--shadow-glass)}.item-shelf--inventory{width:100%}.item-shelf--inventory .item-shelf__title{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}.item-shelf--inventory .arrival__tiles{gap:var(--space-2)}.item-shelf--inventory .tile{width:56px}.item-shelf--inventory .tile__image{width:56px;height:56px}.item-shelf--inventory .tile__name{font-size:var(--font-size-xs)}.arrival__footer{padding:var(--space-4);flex-shrink:0;justify-content:center;display:flex}.tile{align-items:center;gap:var(--space-1);flex-direction:column;width:88px;display:flex;position:relative}.tile__image{object-fit:cover;border-radius:var(--radius-md);background:var(--color-bg-secondary);border:1px solid var(--color-border-secondary);width:88px;height:88px;box-shadow:var(--shadow-sm)}.tile__image--fallback{color:var(--color-text-tertiary);justify-content:center;align-items:center;display:flex}.tile__image--fallback svg{width:40%;height:40%}.tile__name{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-align:center;line-height:var(--line-height-tight)}.tile__name--here{color:var(--color-accent-primary);font-weight:var(--font-weight-semibold)}.tile__place{align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--color-accent-primary);font-weight:var(--font-weight-semibold);text-align:center;line-height:var(--line-height-tight);display:inline-flex}.tile__place svg{flex-shrink:0;width:.85em;height:.85em}.tile__arrow{top:var(--space-1);left:var(--space-1);color:var(--color-accent-primary);background:var(--color-bg-primary);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);padding:2px;display:flex;position:absolute}.tile__badge{z-index:1;border-radius:var(--radius-full);background:var(--color-accent-primary);width:24px;height:24px;color:var(--color-text-on-accent);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;display:flex;position:absolute;top:-8px;right:-8px}.tile--new .tile__image{border-color:var(--color-accent-primary);animation:tile-pulse 2s var(--ease-default) infinite}.tile--visited{opacity:.7}.tile--closed .tile__image{filter:grayscale(.7);opacity:.55}@keyframes tile-pulse{0%,to{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-accent-tertiary) 45%, transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--color-accent-tertiary) 12%, transparent)}}.arrival-compass{gap:var(--space-3);grid-template-columns:repeat(3,1fr);place-items:center;max-width:320px;margin:0 auto;display:grid}.arrival-compass__center{align-items:center;gap:var(--space-1);flex-direction:column;width:88px;display:flex}.arrival-compass__center .tile__image{width:88px;height:88px}.arrival-cinematic{z-index:10;animation:fade-in var(--duration-slow) var(--ease-out) both;flex-direction:column;display:flex;position:fixed;inset:0}.arrival-cinematic__bg{background:var(--color-bg-inverse);position:absolute;inset:0;overflow:hidden}.arrival-cinematic__bg img{object-fit:cover;opacity:.72;width:100%;height:100%}.arrival-cinematic--no-image .arrival-cinematic__bg{background:linear-gradient(155deg, var(--color-bg-cinematic-fallback) 0%, var(--color-bg-inverse) 100%)}.arrival-cinematic__veil{background:var(--gradient-veil);position:absolute;inset:0}.arrival-cinematic__content{z-index:1;padding:var(--space-9) var(--space-5) var(--space-7);max-width:var(--max-width-page);flex-direction:column;flex:1;justify-content:flex-end;width:100%;margin:0 auto;display:flex;position:relative}.arrival-cinematic__label{font-family:var(--font-display);font-style:italic;font-size:var(--font-size-sm);color:var(--color-accent-secondary);margin:0 0 var(--space-2);animation:slide-up var(--duration-slower) var(--ease-out) both}.arrival-cinematic__name{font-family:var(--font-display);font-size:clamp(2.25rem,9vw,3.75rem);font-weight:var(--font-weight-semibold);color:var(--color-text-inverse);margin:0 0 var(--space-3);line-height:var(--line-height-tight);animation:slide-up var(--duration-slower) var(--ease-out) 80ms both}.arrival-cinematic__description{font-size:var(--font-size-md);line-height:var(--line-height-relaxed);color:var(--color-text-inverse)}@supports (color:color-mix(in lab, red, red)){.arrival-cinematic__description{color:color-mix(in srgb, var(--color-text-inverse) 80%, transparent)}}.arrival-cinematic__description{margin:0 0 var(--space-6);animation:fade-in var(--duration-slower) var(--ease-out) .28s both;font-style:italic}.arrival-cinematic__btn{align-self:flex-start;align-items:center;gap:var(--space-2);animation:fade-in var(--duration-slow) var(--ease-out) .48s both;display:inline-flex}.arrival-cinematic__back{top:var(--space-4);left:var(--space-4);z-index:2;border-radius:var(--radius-full);background:var(--color-veil-scrim);border:1px solid var(--color-text-inverse);justify-content:center;align-items:center;width:40px;height:40px;display:flex;position:absolute}@supports (color:color-mix(in lab, red, red)){.arrival-cinematic__back{border:1px solid color-mix(in srgb, var(--color-text-inverse) 20%, transparent)}}.arrival-cinematic__back{color:var(--color-text-inverse);cursor:pointer;animation:fade-in var(--duration-slow) var(--ease-out) both}.arrival-cinematic__entity-area{z-index:1;min-height:0;padding:var(--space-6) var(--space-5) 0;animation:fade-in var(--duration-slower) var(--ease-out) .12s both;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.arrival-cinematic__entity-img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%;filter:drop-shadow(0 8px 24px var(--color-veil-shadow))}.arrival-cinematic--entity .arrival-cinematic__content{padding-top:var(--space-4);flex:0;justify-content:flex-start}.arrival__step-content{gap:var(--space-4);animation:arrival-step-enter var(--duration-slow) var(--ease-out) both;flex-direction:column;display:flex}.arrival__step-header{text-align:center}.arrival__instruction{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;margin:0}.arrival__items-group{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.arrival__items-group--granted{padding:var(--space-3);border:1px solid var(--color-border-secondary);border-radius:var(--radius-md);background:var(--color-bg-secondary);box-shadow:var(--shadow-sm)}.arrival__items-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium);margin:0}.arrival__items-group--granted .arrival__items-label{color:var(--color-accent-primary)}.tile__flavor{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-align:center;font-style:italic;line-height:var(--line-height-tight);max-width:88px}@keyframes arrival-step-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.scan-flash{background:var(--color-scan-success);pointer-events:none;z-index:200;animation:scan-flash-anim .7s var(--ease-out) forwards;position:fixed;inset:0}@keyframes scan-flash-anim{0%{opacity:1}to{opacity:0}}.offline-banner{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-status-error);color:var(--color-text-on-accent);font-size:var(--font-size-sm);line-height:var(--line-height-normal);display:flex}.offline-banner--back{background:var(--color-status-success)}.error-veil{background:var(--color-surface-veil);padding:var(--space-5);z-index:150;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.error-veil__content{align-items:center;gap:var(--space-5);text-align:center;flex-direction:column;max-width:320px;display:flex}.error-veil__message{font-family:var(--font-display);font-size:var(--font-size-xl);color:var(--color-text-inverse);line-height:var(--line-height-normal);margin:0}.error-veil__actions{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.page-transition{background:var(--color-bg-inverse) animation: page-enter var(--duration-slow) var(--ease-out) both;height:100%}@keyframes page-enter{0%{opacity:0}to{opacity:1}}@media (width>=768px){.lobby{padding:var(--space-7) var(--space-6) var(--space-10)}.lobby__header{padding:var(--space-8) var(--space-7) var(--space-7);margin-top:calc(-1 * var(--space-7));margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6))}.lobby__title{font-size:clamp(3rem,8vw,4rem)}.story-card__title{font-size:var(--font-size-xl)}.overlay-backdrop{align-items:center}.overlay-panel{border-radius:var(--radius-xl)}.camera-window{--camera-max-width:360px}.game-page__main{padding:var(--space-6) var(--space-6)}.narration-line{font-size:var(--font-size-lg);max-width:55ch}}@media (width>=1024px){:root{--max-width-page:640px}.arrival-cinematic__content{text-align:center;align-items:center;max-width:720px}.arrival-cinematic__btn{align-self:auto}.scan-stage .camera-window{--camera-max-width:560px}.narration-line--dialog{max-width:520px}}@media (width<=374px){.lobby__title{font-size:var(--font-size-3xl)}.story-card{padding:var(--space-3) var(--space-4)}.overlay-panel{padding:var(--space-5) var(--space-4) var(--space-4)}.overlay-heading{font-size:var(--font-size-xl)}.btn{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}}@media (width>=430px) and (width<=767px){.lobby__title{font-size:clamp(2.5rem,10vw,3.5rem)}}@media (pointer:coarse){.save-slot__delete{width:44px;height:44px}.story-card{min-height:64px}.acknowledge-btn{width:72px;height:72px}}.skip-link{top:-100%;left:var(--space-4);z-index:9999;padding:var(--space-2) var(--space-4);background:var(--color-accent-primary);color:var(--color-text-on-accent);font-weight:var(--font-weight-semibold);border-radius:var(--radius-md);transition:top var(--duration-fast) var(--ease-out);text-decoration:none;position:absolute}.skip-link:focus{top:var(--space-4)}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}@media (forced-colors:active){.story-card,.save-slot,.btn,.acknowledge-btn{border:2px solid buttontext}.scan-flash,.camera-window__frame{display:none}}@media (prefers-reduced-motion:reduce){.page-transition,.narration-line,.narration-line--visible,.scene-announcement,.overlay-backdrop,.overlay-panel,.scan-flash,.acknowledge,.acknowledge-btn,.scene-bg,.arrival,.arrival-cinematic,.arrival-cinematic__label,.arrival-cinematic__name,.arrival-cinematic__description,.arrival-cinematic__btn,.arrival-cinematic__back,.arrival-cinematic__entity-area,.arrival-cinematic__entity-img,.arrival__step-content,.lobby__header,.tile--new .tile__image{transition-duration:.01ms!important;animation:none!important}.narration-line{opacity:1;transform:none}}::selection{background:var(--color-accent-secondary);color:var(--color-bg-primary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border-primary);border-radius:var(--radius-full)}@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-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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}
