/*! tailwindcss v4.3.3 | 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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight:initial;--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}}}@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";--color-red-300:oklch(80.8% .114 19.571);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--font-weight-medium:500;--font-weight-semibold:600;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.inset-0{inset:0}.top-1\/2{top:50%}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.left-1\/2{left:50%}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:0}.-mt-5{margin-top:calc(var(--spacing) * -5)}.-mb-5{margin-bottom:calc(var(--spacing) * -5)}.ml-\[calc\(50\%-50vw\)\]{margin-left:calc(50% - 50vw)}.flex{display:flex}.inline{display:inline}.min-h-screen{min-height:100vh}.w-screen{width:100vw}.max-w-xs{max-width:var(--container-xs)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col{flex-direction:column}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.rounded-full{border-radius:2147483647px}.border-0{border-style:var(--tw-border-style);border-width:0}.bg-white{background-color:var(--color-white)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\/55{--tw-gradient-from:#0000008c}@supports (color:color-mix(in lab, red, red)){.from-black\/55{--tw-gradient-from:color-mix(in oklab, var(--color-black) 55%, transparent)}}.from-black\/55{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-black\/35{--tw-gradient-via:#00000059}@supports (color:color-mix(in lab, red, red)){.via-black\/35{--tw-gradient-via:color-mix(in oklab, var(--color-black) 35%, transparent)}}.via-black\/35{--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-black\/70{--tw-gradient-to:#000000b3}@supports (color:color-mix(in lab, red, red)){.to-black\/70{--tw-gradient-to:color-mix(in oklab, var(--color-black) 70%, transparent)}}.to-black\/70{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.bg-cover{background-size:cover}.bg-center{background-position:50%}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-3{padding-block:calc(var(--spacing) * 3)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.\[font-family\:var\(--font-sans\)\]{font-family:var(--font-sans)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-gray-800{color:var(--color-gray-800)}.text-red-300{color:var(--color-red-300)}.text-white{color:var(--color-white)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px 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)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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,)}.drop-shadow-\[0_2px_10px_rgba\(0\,0\,0\,0\.7\)\]{--tw-drop-shadow-size:drop-shadow(0 2px 10px var(--tw-drop-shadow-color,#000000b3));--tw-drop-shadow:var(--tw-drop-shadow-size);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))}.\[-webkit-tap-highlight-color\:transparent\]{-webkit-tap-highlight-color:transparent}.\[text-shadow\:0_1px_3px_rgba\(0\,0\,0\,0\.95\)\,0_2px_10px_rgba\(0\,0\,0\,0\.8\)\]{text-shadow:0 1px 3px #000000f2,0 2px 10px #000c}@media (hover:hover){.hover\:bg-gray-50:hover{background-color:var(--color-gray-50)}}.active\:scale-\[0\.98\]:active{scale:.98}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-60:disabled{opacity:.6}}:root{--bg:#16171d;--text:#e5e4e7;--font-sans:"Noto Sans JP", system-ui, "Segoe UI", Roboto, sans-serif;--font-brush:"Shippori Mincho B1", "Noto Serif JP", serif;--font-display:"Space Grotesk", "Noto Sans JP", system-ui, sans-serif;--font-2xs:.6rem;--font-xs:.7rem;--font-sm:.8rem;--font-md:.95rem;--font-lg:1.1rem;--font-xl:1.5rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:radial-gradient(circle at 50% -10%,#241f38 0%,#16171d 55%,#0f0e14 100%);font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{min-height:100svh;margin:0;overflow-x:hidden}#root{max-width:480px;min-height:100svh;margin:0 auto;container:app/inline-size}@keyframes tutorial-step-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){@keyframes tutorial-step-in{0%{opacity:1;transform:none}to{opacity:1;transform:none}}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{syntax:"*";inherits:false}@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}.kotoba-stamp{color:var(--stamp-color,#c084fc);overflow:visible}.kotoba-stamp__ring{fill:none;stroke:currentColor;stroke-width:3px}.kotoba-stamp__ring--inner{stroke-width:1.2px}.kotoba-stamp__arc-text,.kotoba-stamp__kanji{fill:currentColor;font-family:inherit}.continue-button{width:100%;max-width:112px;font-size:var(--font-2xs);text-align:center;color:#f5f3ff;cursor:pointer;opacity:0;pointer-events:none;background:linear-gradient(135deg,#8b5cf6,#7c3aed);border:1px solid #7c3aed;border-radius:5px;align-self:center;padding:.54rem .46rem;font-weight:700}.continue-button:hover{filter:brightness(1.08)}.continue-button--visible{pointer-events:auto;animation:.4s ease-out forwards continue-button-fade-in}@keyframes continue-button-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex;position:relative;overflow:hidden}.avatar--player{background:linear-gradient(135deg,#c084fc,#8b5cf6)}.avatar--rival{background:linear-gradient(135deg,#fca5a5,#f87171)}.avatar--maestro{background:linear-gradient(135deg,#241f38,#16171d)}.avatar--lg{width:56px;height:56px}.avatar__portrait{fill:#16171d;width:62%;height:62%}.avatar--photo-frame{background:#1a1822;border:1px solid #ffffff14}.avatar--maestro.avatar--photo-frame{border-color:#fde68a73;box-shadow:0 0 6px #fde68a40}.avatar__img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0}.avatar__img--out{opacity:0;transition:opacity .38s}.avatar__img--in{animation:.38s forwards avatar-crossfade-in}@keyframes avatar-crossfade-in{0%{opacity:0}to{opacity:1}}.avatar--player .avatar__img{filter:hue-rotate(259deg)saturate(1.05)}.avatar__img--offset{width:130%;height:130%}.maestro-welcome{justify-content:center;align-items:center;min-height:100svh;display:flex}.maestro-welcome__panel{align-items:center;gap:var(--space-6);background:linear-gradient(#fde68a0f,#18161f 45%);border:1px solid #2e2b3d;border-radius:16px;flex-direction:column;width:100%;max-width:420px;margin:0 auto;padding:1.5rem 1.25rem 2rem;display:flex}.maestro-welcome__stamp{opacity:.4;align-self:flex-start}.maestro-welcome__portrait{padding:var(--space-2);justify-content:center;align-items:center;display:flex;position:relative}.maestro-welcome__portrait .avatar--lg{width:96px;height:96px}.maestro-welcome__bubble{background:#f1ece0;border:2px solid #1a1720;border-radius:13.5px;width:75%;padding:.86rem .975rem;animation:.32s ease-out maestro-welcome-bubble-in;position:relative}.maestro-welcome__bubble:before,.maestro-welcome__bubble:after{content:"";border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;left:50%;transform:translate(-50%)}.maestro-welcome__bubble:before{border-bottom:10.5px solid #1a1720;top:-10.5px}.maestro-welcome__bubble:after{border-bottom:9px solid #f1ece0;top:-8px}.maestro-welcome__text{font-family:var(--font-brush);font-size:var(--font-2xs);color:#1a1720;text-align:center;margin:0;line-height:1.6}.maestro-welcome__cursor{vertical-align:text-bottom;background:#1a1720;width:2px;height:.9em;margin-left:2px;animation:.8s step-end infinite maestro-welcome-cursor-blink;display:inline-block}.maestro-welcome__cursor--done{opacity:0;animation:none}@keyframes maestro-welcome-bubble-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes maestro-welcome-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.onboarding-screen{justify-content:center;align-items:center;min-height:100svh;display:flex}.onboarding-screen__panel{align-items:stretch;gap:var(--space-3);background:linear-gradient(#c084fc1a,#18161f 45%);border:1px solid #2e2b3d;border-radius:16px;flex-direction:column;width:100%;max-width:420px;margin:0 auto;padding:1.75rem 1.25rem 2rem;display:flex}.onboarding-screen__banner{padding:var(--space-1);background:radial-gradient(circle,#c084fc29,#0000 70%);border-radius:50%;justify-content:center;align-self:center;align-items:center;display:flex}.onboarding-screen__title{text-align:center;font-size:var(--font-md);color:#e5e4e7;margin:0;font-weight:800;display:grid}.onboarding-screen__title-text{opacity:0;grid-area:1/1;transition:opacity .32s}.onboarding-screen__title-text--visible{opacity:1}.onboarding-screen__step{align-items:stretch;gap:var(--space-3);flex-direction:column;animation:.32s cubic-bezier(.22,1,.36,1) onboarding-step-in;display:flex}@keyframes onboarding-step-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.onboarding-screen__field{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.onboarding-screen__label{text-align:center;width:100%;font-size:var(--font-2xs);letter-spacing:.04em;text-transform:uppercase;color:#a48fd6;font-weight:700}.onboarding-screen__input{width:100%;max-width:148px;font-size:var(--font-xs);text-align:center;color:#e5e4e7;background:#131118;border:1px solid #3a3450;border-radius:6px;padding:.525rem .57rem}.onboarding-screen__input:focus{border-color:#c084fc;outline:none}.onboarding-screen__avatars{aspect-ratio:1;width:45%;margin:0 auto;position:relative}.onboarding-screen__avatar-option{width:calc(50% - .225rem);height:calc(50% - .225rem);top:calc(var(--grid-row,0) * (50% + .225rem));left:calc(var(--grid-col,0) * (50% + .225rem));cursor:pointer;transform-origin:bottom;opacity:0;animation:.46s cubic-bezier(.22,1,.36,1) forwards onboarding-fan-in;animation-delay:calc(var(--fan-index,0) * 70ms);background:#131118;border:2px solid #0000;border-radius:50%;padding:3px;transition:top .48s ease-out,left .48s ease-out,width .48s ease-out,height .48s ease-out,border-color .15s,transform .15s;position:absolute}@keyframes onboarding-fan-in{0%{opacity:0;transform:translateY(16px) rotate(var(--fan-angle,0deg)) scale(.7)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}.onboarding-screen__avatar-option:hover{transform:translateY(-2px)}.onboarding-screen__avatar-option--selected{border-color:#c084fc;box-shadow:0 0 0 3px #c084fc40}.onboarding-screen__avatars--confirming .onboarding-screen__avatar-option:not(.onboarding-screen__avatar-option--selected){pointer-events:none;animation:.38s forwards onboarding-mask-fade-out}@keyframes onboarding-mask-fade-out{0%{opacity:1}to{opacity:0}}.onboarding-screen__avatars--confirming .onboarding-screen__avatar-option--selected{z-index:2;width:50%;height:50%;top:25%;left:25%}.onboarding-screen__avatar-img{-o-object-fit:cover;object-fit:cover;filter:hue-rotate(259deg)saturate(1.05);border-radius:50%;width:100%;height:100%}.onboarding-screen__name-form{align-items:stretch;gap:var(--space-3);flex-direction:column;animation:.32s cubic-bezier(.22,1,.36,1) onboarding-step-in;display:flex}.narrative-screen{justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;width:100%;max-width:420px;min-height:100svh;margin:0 auto;display:flex}.narrative-screen__scene{opacity:0;background:#131118;border:1px solid #3a3450;border-radius:12px;width:100%;animation:.42s ease-out forwards narrative-scene-in;overflow:hidden}.narrative-screen__location{padding:var(--space-2) var(--space-3);text-align:center;font-family:var(--font-brush);font-size:var(--font-xs);letter-spacing:.03em;color:#a48fd6;border-bottom:1px solid #ffffff14}.narrative-screen__scene-image{aspect-ratio:16/9;justify-content:center;align-items:center;width:100%;font-size:3rem;display:flex}.narrative-screen__scene-image--photo{background-position:50%;background-repeat:no-repeat;background-size:cover}.narrative-screen__scene-image--stage{justify-content:center;align-items:flex-end;height:168px}.narrative-screen__scene-image--stage.narrative-screen__scene-image--photo{background-position:50%;background-size:cover}.narrative-screen__portrait-scale{transform-origin:bottom;margin-bottom:.6rem;transform:scale(1.725)}.narrative-screen__portrait{opacity:0;animation:.42s cubic-bezier(.22,1,.36,1) .12s forwards narrative-portrait-in}.narrative-screen__narrative{border-top:1px solid #ffffff14;padding:.75rem .85rem .9rem}.narrative-screen__text{text-align:center;width:100%;font-size:var(--font-2xs);min-height:2.6rem;color:var(--text);margin:0;line-height:1.6}.narrative-screen__cursor{vertical-align:text-bottom;background:#c084fc;width:2px;height:.9em;margin-left:2px;animation:.8s step-end infinite narrative-cursor-blink;display:inline-block}.narrative-screen__cursor--done{opacity:0;animation:none}.narrative-screen__speaking{align-items:center;gap:var(--space-3);flex-direction:column;width:100%;display:flex}.narrative-screen__bubble{opacity:0;border-radius:13.5px;width:88%;padding:.86rem .975rem;animation:.32s ease-out .2s forwards narrative-bubble-in;position:relative}.narrative-screen__bubble--maestro{background:#f1ece0;border:2px solid #1a1720}.narrative-screen__bubble--rival{background:#f3e2dc;border:2px solid #3a1418}.narrative-screen__bubble:before,.narrative-screen__bubble:after{content:"";border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;left:50%;transform:translate(-50%)}.narrative-screen__bubble--maestro:before{border-bottom:10.5px solid #1a1720;top:-10.5px}.narrative-screen__bubble--maestro:after{border-bottom:9px solid #f1ece0;top:-8px}.narrative-screen__bubble--rival:before{border-bottom:10.5px solid #3a1418;top:-10.5px}.narrative-screen__bubble--rival:after{border-bottom:9px solid #f3e2dc;top:-8px}.narrative-screen__bubble-name{font-family:var(--font-brush);font-size:var(--font-sm);text-align:center;margin-bottom:.15rem;font-weight:700;display:block}.narrative-screen__bubble--maestro .narrative-screen__bubble-name{color:#8a6d1a}.narrative-screen__bubble--rival .narrative-screen__bubble-name{color:#8a2e2e}.narrative-screen__bubble-text{font-family:var(--font-brush);font-size:var(--font-2xs);text-align:center;margin:0;line-height:1.6}.narrative-screen__bubble--maestro .narrative-screen__bubble-text{color:#1a1720}.narrative-screen__bubble--rival .narrative-screen__bubble-text{color:#3a1418}.narrative-screen__bubble-cursor{vertical-align:text-bottom;width:2px;height:.9em;margin-left:2px;animation:.8s step-end infinite narrative-cursor-blink;display:inline-block}.narrative-screen__bubble--maestro .narrative-screen__bubble-cursor{background:#1a1720}.narrative-screen__bubble--rival .narrative-screen__bubble-cursor{background:#3a1418}.narrative-screen__bubble-cursor--done{opacity:0;animation:none}@keyframes narrative-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes narrative-scene-in{0%{opacity:0;transform:translateY(14px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes narrative-portrait-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes narrative-bubble-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.screen-transition{animation:.25s screen-fade-in}@keyframes screen-fade-in{0%{opacity:0}to{opacity:1}}.duel-clash{justify-content:center;align-items:flex-end;height:120px;display:flex;position:relative}@media (width<=400px){.duel-clash{zoom:.78}}.duel-clash__fighter{flex-shrink:0;position:relative}.duel-clash__fighter--player{filter:hue-rotate(259deg)saturate(1.05);transform:scaleX(-1)}.duel-clash__sprite{position:absolute;inset:0;transform:translate(0)}.duel-clash--idle-clash .duel-clash__sprite{transition:transform .22s ease-out;transform:translate(48px)}.duel-clash__shadow{filter:blur(1.5px);background:#00000080;border-radius:50%;width:72px;height:9px;position:absolute;bottom:0;left:28px}.duel-clash__center{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:116px;display:flex;position:relative}.duel-clash__spark{opacity:0;background:#fde68a;border-radius:50%;width:10px;height:10px;transition:opacity .13s ease-out,transform .13s ease-out;transform:scale(.4);box-shadow:0 0 10px 3px #fde68ad9}.duel-clash__idle-ring{opacity:0;border:2px solid #fde68ab3;border-radius:50%;width:26px;height:26px;transition:opacity .15s ease-out,transform .15s ease-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.5)}.duel-clash--idle-clash .duel-clash__spark{opacity:1;transform:scale(1.5)}.duel-clash--idle-clash .duel-clash__idle-ring{opacity:1;transition:opacity .28s ease-out,transform .28s ease-out;transform:translate(-50%,-50%)scale(1)}.duel-clash__flash{opacity:0;pointer-events:none;background:radial-gradient(circle,#ffffffe6,#fff0 70%);border-radius:50%;position:absolute;inset:-30px -50px}.duel-clash__shock{opacity:0;pointer-events:none;border:3px solid #fef3c7;border-radius:50%;width:50px;height:50px;position:absolute;top:50%;transform:translate(-50%,-50%)scale(.2)}.duel-clash__shock--rival{left:-24px}.duel-clash__shock--player{left:46px}.duel-clash--player-hit .duel-clash__fighter--player .duel-clash__sprite{animation:.9s cubic-bezier(.2,.7,.15,1) duel-clash-strike}.duel-clash--player-hit .duel-clash__fighter--rival .duel-clash__sprite{animation:.9s ease-out duel-clash-recoil}.duel-clash--player-hit .duel-clash__shock--rival{animation:.9s ease-out duel-clash-shock}.duel-clash--rival-hit .duel-clash__fighter--rival .duel-clash__sprite{animation:.9s cubic-bezier(.2,.7,.15,1) duel-clash-strike}.duel-clash--rival-hit .duel-clash__fighter--player .duel-clash__sprite{animation:.9s ease-out duel-clash-recoil}.duel-clash--rival-hit .duel-clash__shock--player{animation:.9s ease-out duel-clash-shock}.duel-clash--player-hit.duel-clash--rival-hit .duel-clash__sprite{animation:.9s ease-out duel-clash-mutual}.duel-clash--player-hit.duel-clash--rival-hit .duel-clash__shock--rival,.duel-clash--player-hit.duel-clash--rival-hit .duel-clash__shock--player{animation:.9s ease-out duel-clash-shock}.duel-clash--miss .duel-clash__fighter--player .duel-clash__sprite{animation:.9s ease-out duel-clash-whiff}.duel-clash--miss .duel-clash__fighter--rival .duel-clash__sprite{animation:.9s ease-out duel-clash-evade}.duel-clash--player-hit .duel-clash__flash,.duel-clash--rival-hit .duel-clash__flash{animation:.9s ease-out duel-clash-flash}@keyframes duel-clash-strike{0%{transform:translate(0)scale(1)}20%{transform:translate(-9px)scale(1.03)}42%{transform:translate(27px)scale(1.12)}62%{transform:translate(22px)scale(1.08)}85%{transform:translate(7px)scale(1.02)}to{transform:translate(0)scale(1)}}@keyframes duel-clash-recoil{0%{filter:none;transform:translate(0)rotate(0)}32%{filter:brightness(2.3)saturate(.2);transform:translate(-24px)rotate(-16deg)}62%{filter:brightness(1.5)saturate(.5);transform:translate(-14px)rotate(-9deg)}to{filter:none;transform:translate(0)rotate(0)}}@keyframes duel-clash-mutual{0%{filter:none;transform:translate(0)scale(1)}38%{filter:brightness(1.8);transform:translate(15px)scale(1.15)}62%{filter:brightness(1.3);transform:translate(10px)scale(1.1)}to{filter:none;transform:translate(0)scale(1)}}@keyframes duel-clash-whiff{0%{transform:translate(0)scale(1)}20%{transform:translate(-9px)scale(1.02)}42%{transform:translate(20px)scale(1.06)}62%{transform:translate(14px)scale(1.03)}85%{transform:translate(5px)scale(1.01)}to{transform:translate(0)scale(1)}}@keyframes duel-clash-evade{0%{transform:translate(0)}35%{transform:translate(-22px)}70%{transform:translate(-22px)}to{transform:translate(0)}}@keyframes duel-clash-shock{0%,10%{opacity:0;transform:translate(-50%,-50%)scale(.2)}30%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.9)}}@keyframes duel-clash-flash{0%,15%{opacity:0}28%{opacity:.85}55%{opacity:0}to{opacity:0}}.tutorial-shell{z-index:50;padding:var(--space-5);background:#0f0e148c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tutorial-shell__card{gap:var(--space-2);width:100%;max-width:320px;max-height:calc(100dvh - 2.5rem);padding:var(--space-3);background:#1c1830;border:2px solid #7c3aed66;border-radius:16px;flex-direction:column;animation:.32s cubic-bezier(.22,1,.36,1) tutorial-step-in;display:flex;position:relative;overflow-y:auto;box-shadow:0 20px 60px #00000080}.tutorial-shell__card:focus{outline:none}.tutorial-shell__watermark{top:var(--space-2);right:var(--space-2);opacity:.14;pointer-events:none;position:absolute}.tutorial-shell__speaker{align-items:center;gap:var(--space-2);display:flex}.tutorial-shell__speaker-name{font-family:var(--font-brush);font-size:var(--font-sm);color:#a48fd6}.tutorial-shell__content{min-width:0}.tutorial-shell__footer{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.tutorial-shell__skip{font-size:var(--font-xs);color:#6b6375;cursor:pointer;background:0 0;border:none;padding:0}.tutorial-shell__skip:hover{color:#9ca3af}.tutorial-shell__dots{align-items:center;gap:.35rem;display:flex}.tutorial-shell__dot{background:#3a3450;border-radius:50%;width:6px;height:6px;transition:background-color .15s}.tutorial-shell__dot--active{background:#8b5cf6}.clash-explainer__step{gap:var(--space-3);flex-direction:column;animation:.28s cubic-bezier(.22,1,.36,1) tutorial-step-in;display:flex}.clash-explainer__eyebrow{font-size:var(--font-xs);letter-spacing:.08em;text-transform:uppercase;color:#a48fd6;text-align:center;margin:0;font-weight:700}.clash-explainer__demo{pointer-events:none;background:linear-gradient(#f8717147,#131118bd 45% 55%,#c084fc47),url(/backgrounds/dojo-interior.jpg) 50% 70%/cover;border-top:1px solid #2e2b3d;border-bottom:1px solid #2e2b3d;border-radius:12px}.clash-explainer__body{font-family:var(--font-brush);font-size:var(--font-2xs);color:#e5e4e7;text-align:center;margin:0;line-height:1.55}.turn-timer{gap:2px;width:100%;height:6px;display:flex}.turn-timer__segment{background:var(--flash-accent);border-radius:1px;flex:1;height:100%;animation-name:turn-timer-segment-off;animation-timing-function:step-end;animation-fill-mode:forwards}@keyframes turn-timer-segment-off{to{background:#38333f}}.flash-card{--flash-accent:#c084fc;--rival-tint:#f87171;gap:var(--space-3);flex-direction:column;align-items:stretch;width:100%;display:flex}.flash-card__flip-outer{perspective:1200px;--enter-offset:22px;width:100%;height:clamp(70px,20vh,190px);transform:scale(.7) translateY(var(--enter-offset));opacity:0;transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .3s}.flash-card__flip-outer--revealed{opacity:1;transform:scale(1)translateY(0)}.flash-card__flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,.1,.2,1);position:relative}.flash-card__face{backface-visibility:hidden;justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-4);border-radius:14px;flex-direction:column;display:flex;position:absolute;inset:0}.flash-card__face--back{background:repeating-linear-gradient(135deg,#241f38,#241f38 10px,#1c1830 10px 20px);border:1px solid #3a3454}.flash-card__back-glyph{color:var(--flash-accent);opacity:.7;font-size:2.5rem}.flash-card__answer{font-size:clamp(1rem, 5cqw, var(--font-xl));text-align:center;color:#4ade80;font-weight:600}.flash-card__face--front{border:1px solid color-mix(in srgb, var(--flash-accent) 35%, #4c4468);background:linear-gradient(160deg,#241f38,#1a1826);transform:rotateY(180deg)}.flash-card__prompt{font-size:clamp(1rem, 5cqw, var(--font-xl));text-align:center;font-weight:600}.flash-card__turn{gap:var(--space-3);flex-direction:column;animation:.25s turn-fade-in;display:flex}@keyframes turn-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.flash-card__status{justify-content:center;align-items:center;gap:var(--space-1);flex-direction:column;min-height:6px;display:flex}.flash-card__options{gap:calc(var(--space-2) * 1.2);grid-template-columns:1fr 1fr;width:67.5%;margin:0 auto;display:grid}.flash-card__option{text-align:center;min-height:50px;padding:var(--space-2);font-size:var(--font-sm);border:1px solid color-mix(in srgb, var(--flash-accent) 35%, #3a3646);color:inherit;cursor:pointer;background:#211e2c;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.flash-card__option:disabled{cursor:default}.flash-card__option-picks{display:flex;position:absolute;bottom:.3rem;right:.35rem}.flash-card__option-pick{-o-object-fit:cover;object-fit:cover;background:#1a1822;border:1.5px solid #18161f;border-radius:50%;width:18px;height:18px}.flash-card__option-pick+.flash-card__option-pick{margin-left:-6px}.flash-card__option-pick--player{filter:hue-rotate(259deg)saturate(1.05);border-color:#c084fc}.flash-card__option-pick--rival{border-color:var(--rival-tint)}.duel-basics-intro__step{animation:.28s cubic-bezier(.22,1,.36,1) tutorial-step-in}.duel-basics-intro__eyebrow{margin:0 0 var(--space-2);font-size:var(--font-xs);letter-spacing:.08em;text-transform:uppercase;color:#a48fd6;font-weight:700}.duel-basics-intro__ritual{flex-direction:column;display:flex}.duel-basics-intro__maestro{font-family:var(--font-brush);font-size:var(--font-2xs);color:#e5e4e7;margin:0;line-height:1.55}.duel-basics-intro__turno{gap:var(--space-2);flex-direction:column;display:flex}.duel-basics-intro__demo{pointer-events:none}.duel-basics-intro__demo .flash-card{gap:var(--space-2)}.duel-basics-intro__demo .flash-card__flip-outer{height:clamp(58px,13vh,120px)}.duel-basics-intro__demo .flash-card__turn,.duel-basics-intro__demo .flash-card__options{gap:var(--space-2)}.duel-basics-intro__demo .flash-card__option{padding:var(--space-2);font-size:var(--font-xs)}.duel-basics-intro__demo .flash-card__prompt{font-size:clamp(.7rem,3.5cqw,1.05rem)}.card-countdown{justify-content:center;align-items:center;width:42px;height:42px;display:flex;position:relative}.card-countdown__segment{transition:stroke .3s}.card-countdown__count{color:#e5e4e7;font-size:.85rem;font-weight:700;position:absolute}.deck-pile{--deck-accent:#c084fc;font:inherit;color:inherit;cursor:default;background:0 0;border:none;flex-direction:column;align-items:center;gap:.3rem;margin:0;padding:0;display:flex}.deck-pile--rival{--deck-accent:#f87171}.deck-pile--drawable{cursor:pointer}.deck-pile__stack{width:40px;height:52px;position:relative}.deck-pile__halo{background:radial-gradient(circle, color-mix(in srgb, var(--deck-accent) 50%, transparent), transparent 70%);opacity:0;z-index:-1;border-radius:50%;position:absolute;inset:-14px}.deck-pile--drawable .deck-pile__halo,.deck-pile--active .deck-pile__halo{animation:1.6s ease-in-out infinite deck-pile-halo}.deck-pile--drawable .deck-pile__stack,.deck-pile--active .deck-pile__stack{animation:1.6s ease-in-out infinite deck-pile-breathe}@keyframes deck-pile-halo{0%,to{opacity:.3;transform:scale(.9)}50%{opacity:.75;transform:scale(1.2)}}@keyframes deck-pile-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.deck-pile__card{background:linear-gradient(145deg,#2a2540,#1c1a28);border:1px solid #3a3646;border-radius:6px;position:absolute;inset:0}.deck-pile__card--3{opacity:.6;transform:rotate(-6deg)translate(-2px,1px)}.deck-pile__card--2{opacity:.8;transform:rotate(4deg)translate(1px,-1px)}.deck-pile__card--1{color:var(--deck-accent);opacity:.5;justify-content:center;align-items:center;font-size:1.1rem;display:flex}.deck-pile__count{background:var(--deck-accent);color:#16171d;text-align:center;border-radius:999px;min-width:20px;padding:.1rem .35rem;font-size:.7rem;font-weight:700;line-height:1.4;position:absolute;bottom:-6px;right:-8px}.deck-pile__label{color:#9ca3af;font-size:.7rem}.deck-pile--entering.deck-pile--down{animation:.5s cubic-bezier(.34,1.56,.64,1) .55s both deck-pile-drop-in}.deck-pile--entering.deck-pile--up{animation:.5s cubic-bezier(.34,1.56,.64,1) .55s both deck-pile-rise-in}@keyframes deck-pile-drop-in{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes deck-pile-rise-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.duel-score{font-variant-numeric:tabular-nums;align-items:baseline;gap:.3rem;display:flex}.duel-score__value{font-size:1.05rem;font-weight:800;transition:color .2s}.duel-score__value--player{color:#c084fc}.duel-score__value--rival{color:#f87171}.duel-score__sep{color:#6b6375;font-size:.85rem}.battlefield-screen{min-height:100svh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.battlefield{background:#18161f;border:1px solid #2e2b3d;border-radius:16px;width:100%;max-width:420px;position:relative;overflow:hidden}.battlefield--shaking{animation-name:battlefield-shake;animation-timing-function:linear;animation-fill-mode:forwards}@keyframes battlefield-shake{0%,55%{transform:translate(0)}60%{transform:translate(1px)}65%{transform:translate(-1px,1px)}70%{transform:translate(1px,-1px)}74%{transform:translate(-2px,1px)}78%{transform:translate(2px,-1px)}81%{transform:translate(-2px,2px)}84%{transform:translate(2px,-2px)}87%{transform:translate(-3px,2px)}89%{transform:translate(3px,-3px)}91%{transform:translate(-3px,3px)}93%{transform:translate(3px,-3px)}94.5%{transform:translate(-4px,3px)}96%{transform:translate(4px,-4px)}97.2%{transform:translate(-4px,4px)}98.2%{transform:translate(4px,-4px)}99%{transform:translate(-4px,4px)}99.5%{transform:translate(4px,-3px)}to{transform:translate(0)}}.battlefield__overlay{z-index:5;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.battlefield__zone{padding:var(--space-2) var(--space-4);justify-content:space-between;align-items:center;display:flex}.battlefield__zone--rival{background:linear-gradient(#f871711a,#0000)}.battlefield__zone--player{padding:var(--space-3) var(--space-4);background:linear-gradient(#0000,#c084fc14);flex-direction:column;align-items:stretch}.battlefield__tag{align-items:center;gap:var(--space-2);font-size:var(--font-sm);color:#e5e4e7;display:flex}.battlefield__clash-strip{background:linear-gradient(#f8717147,#131118bd 45% 55%,#c084fc47),url(/backgrounds/dojo-interior.jpg) 50% 70%/cover;border-top:1px solid #2e2b3d;border-bottom:1px solid #2e2b3d;justify-content:center;align-items:center;padding:.15rem 0;display:flex}.battlefield__divider{padding:.35rem var(--space-4);background:#131118;border-bottom:1px solid #2e2b3d;grid-template-columns:1fr auto 1fr;align-items:center;display:grid}.battlefield__divider .card-countdown{justify-self:start}.battlefield__duelo-label{font-size:var(--font-xs);letter-spacing:.14em;color:#6b6375;text-transform:uppercase;justify-self:center;font-weight:800}.battlefield__divider .duel-score{justify-self:end}.battlefield__active-slot{width:100%;min-height:120px}.battlefield__player-footer{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid #2e2b3d;justify-content:space-between;align-items:center;display:flex}@media (width<=480px){.battlefield{border-radius:12px}}.coin-flip{justify-content:center;align-items:center;gap:var(--space-4);min-height:100svh;padding:var(--space-4);flex-direction:column;display:flex}.coin-flip__stage{perspective:600px;width:108px;height:108px;position:relative}.coin-flip__coin{--coin-flip-duration:1.8s;transform-style:preserve-3d;position:absolute;inset:0;transform:rotateY(0)}.coin-flip__coin--player{animation:coin-flip-spin-player var(--coin-flip-duration) cubic-bezier(.22, .61, .36, 1) forwards}.coin-flip__coin--rival{animation:coin-flip-spin-rival var(--coin-flip-duration) cubic-bezier(.22, .61, .36, 1) forwards}.coin-flip__face{backface-visibility:hidden;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;box-shadow:0 6px 18px #00000073}.coin-flip__face--kotoba{--stamp-color:#c084fc;background:#18161f;border:4px solid #c084fc}.coin-flip__face--rival{--stamp-color:#f87171;background:#18161f;border:4px solid #f87171;transform:rotateY(180deg)}.coin-flip__stamp{font-family:Segoe UI,system-ui,sans-serif}.coin-flip__shadow{background:radial-gradient(#00000080 0%,#0000 70%);width:72px;height:14px;position:absolute;bottom:-14px;left:50%;transform:translate(-50%)}.coin-flip__result{font-size:var(--font-lg);letter-spacing:.02em;text-align:center;opacity:0;animation:.35s forwards coin-flip-result-in;animation-delay:calc(var(--coin-flip-duration) - .3s);font-weight:700}@keyframes coin-flip-spin-player{0%{transform:rotateY(0)}to{transform:rotateY(1080deg)}}@keyframes coin-flip-spin-rival{0%{transform:rotateY(0)}to{transform:rotateY(1260deg)}}@keyframes coin-flip-result-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.deck-shuffle{width:220px;height:220px;position:relative}.deck-shuffle__glow{background:radial-gradient(#c084fc29,#0000 65%);position:absolute;inset:0}.deck-shuffle__card{color:#c084fc;opacity:0;background:linear-gradient(145deg,#2a2540,#1c1a28);border:1px solid #3a3646;border-radius:6px;justify-content:center;align-items:center;width:34px;height:46px;margin:-23px 0 0 -17px;font-size:.85rem;animation:.85s cubic-bezier(.4,0,.2,1) forwards deck-shuffle-move;display:flex;position:absolute;top:50%;left:50%}.deck-shuffle__card--a{--burst-x:95px;--burst-y:-75px;z-index:4;animation-delay:0s}.deck-shuffle__card--b{--burst-x:72px;--burst-y:-58px;z-index:3;animation-delay:50ms}.deck-shuffle__card--c{--burst-x:-95px;--burst-y:75px;z-index:2;animation-delay:.1s}.deck-shuffle__card--d{--burst-x:-72px;--burst-y:58px;z-index:1;animation-delay:.15s}@keyframes deck-shuffle-move{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:1}20%{transform:translate(-8px,2px)rotate(-6deg)}35%{transform:translate(8px,-2px)rotate(5deg)}50%{transform:translate(-6px,2px)rotate(-4deg)}62%{opacity:1;transform:translate(0)rotate(0)}to{transform:translate(var(--burst-x), var(--burst-y)) rotate(20deg);opacity:0}}.rival-challenge{min-height:100svh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.rival-challenge__panel{align-items:center;gap:var(--space-3);opacity:0;flex-direction:column;width:100%;max-width:420px;animation:.3s cubic-bezier(.22,1,.36,1) forwards rival-challenge-in;display:flex}.rival-challenge__panel--leaving{animation:.3s forwards rival-challenge-out}.rival-challenge__scene{background:linear-gradient(#f8717147,#131118bd 45% 55%,#c084fc47),url(/backgrounds/dojo-interior.jpg) 50% 70%/cover;border:1px solid #2e2b3d;border-radius:16px;justify-content:center;align-items:flex-end;width:100%;height:168px;display:flex;position:relative;overflow:hidden}.rival-challenge__mask-scale{transform-origin:bottom;margin-bottom:.6rem;transform:scale(1.725)}.rival-challenge__mask{opacity:0;animation:.42s cubic-bezier(.22,1,.36,1) .12s forwards rival-challenge-mask-in}.rival-challenge__bubble{opacity:0;background:#f3e2dc;border:2px solid #3a1418;border-radius:13.5px;width:88%;padding:.86rem .975rem;animation:.32s ease-out .2s forwards rival-challenge-bubble-in;position:relative}.rival-challenge__bubble:before,.rival-challenge__bubble:after{content:"";border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;left:50%;transform:translate(-50%)}.rival-challenge__bubble:before{border-bottom:10.5px solid #3a1418;top:-10.5px}.rival-challenge__bubble:after{border-bottom:9px solid #f3e2dc;top:-8px}.rival-challenge__name{font-family:var(--font-brush);font-size:var(--font-xs);letter-spacing:.02em;text-align:center;color:#8a2e2e;margin-bottom:.15rem;font-weight:700;display:block}.rival-challenge__text{font-family:var(--font-brush);font-size:var(--font-2xs);color:#3a1418;text-align:center;min-height:1.6em;margin:0;line-height:1.6}.rival-challenge__cursor{vertical-align:text-bottom;background:#3a1418;width:2px;height:.9em;margin-left:2px;animation:.8s step-end infinite rival-challenge-cursor-blink;display:inline-block}.rival-challenge__cursor--done{opacity:0;animation:none}@keyframes rival-challenge-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes rival-challenge-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes rival-challenge-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes rival-challenge-mask-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes rival-challenge-bubble-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.duel-intro{min-height:100svh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.duel-intro__scale{transform-origin:50%;width:100%;max-width:420px;transform:scale(1.2)}.duel-intro__panel{--intro-duration:1.6s;justify-content:space-between;align-items:center;gap:var(--space-3);opacity:0;width:100%;animation:duel-intro-panel-in .15s ease forwards, duel-intro-shake .35s ease .65s, duel-intro-exit .4s ease calc(var(--intro-duration) - .4s) forwards;background:linear-gradient(135deg,#f8717124,#18161f 45%,#c084fc24);border:1px solid #2e2b3d;border-radius:16px;padding:1.75rem 1.1rem;display:flex;position:relative;overflow:hidden}.duel-intro__side{align-items:center;gap:var(--space-2);opacity:0;flex-direction:column;flex:1;min-width:0;display:flex}.duel-intro__side--rival{animation:.35s cubic-bezier(.16,1,.3,1) forwards duel-intro-slide-in-left}.duel-intro__side--player{animation:.35s cubic-bezier(.16,1,.3,1) .18s forwards duel-intro-slide-in-right}.duel-intro__name{font-size:var(--font-xs);letter-spacing:.04em;text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:700;overflow:hidden}.duel-intro__vs-wrap{flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.duel-intro__vs-flash{opacity:0;background:radial-gradient(circle,#e9d5ffe6 0%,#c084fc66 45%,#0000 72%);border-radius:50%;animation:.55s ease-out .53s duel-intro-flash-burst;position:absolute;inset:-1rem;transform:scale(.2)}.duel-intro__vs{color:#c084fc;opacity:0;font-size:1.69rem;font-weight:800;animation:.48s cubic-bezier(.22,1,.36,1) .53s forwards duel-intro-vs-pop;position:relative;transform:scale(.3)}@keyframes duel-intro-panel-in{0%{opacity:0}to{opacity:1}}@keyframes duel-intro-slide-in-left{0%{opacity:0;transform:translate(-56px)}to{opacity:1;transform:translate(0)}}@keyframes duel-intro-slide-in-right{0%{opacity:0;transform:translate(56px)}to{opacity:1;transform:translate(0)}}@keyframes duel-intro-vs-pop{0%{opacity:0;text-shadow:none;transform:scale(.3)}50%{opacity:1;text-shadow:0 0 22px #c084fc;transform:scale(1.55)}72%{transform:scale(.82)}to{opacity:1;text-shadow:0 0 6px #c084fc80;transform:scale(1)}}@keyframes duel-intro-flash-burst{0%{opacity:0;transform:scale(.2)}40%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(1.6)}}@keyframes duel-intro-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.94)}}@keyframes duel-intro-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.result-tutorial__step{animation:.28s cubic-bezier(.22,1,.36,1) tutorial-step-in}.result-tutorial__eyebrow{margin:0 0 var(--space-2);font-size:var(--font-xs);letter-spacing:.08em;text-transform:uppercase;color:#a48fd6;font-weight:700}.result-tutorial__body{font-family:var(--font-brush);font-size:var(--font-2xs);color:#e5e4e7;margin:0;line-height:1.6}.result-screen{gap:var(--space-4);flex-direction:column;align-items:stretch;width:100%;max-width:420px;margin:0 auto;display:flex}.result-screen__verdict{font-size:var(--font-lg);text-align:center;margin:0 0 var(--space-2)}.result-screen__verdict--win{color:#4ade80}.result-screen__verdict--lose{color:#f87171}.result-screen__verdict--tie{color:#e5e4e7}.result-screen__names{font-size:var(--font-sm);color:#9ca3af;padding:0 var(--space-1);justify-content:space-between;display:flex}.result-screen__name{align-items:center;gap:var(--space-2);display:flex}.result-screen__maestro{align-items:center;gap:var(--space-3);padding:var(--space-3);background:#241f3880;border:1px solid #fde68a33;border-radius:8px;display:flex}.result-screen__maestro-line{font-family:var(--font-brush);font-size:var(--font-2xs);color:#e5e4e7;margin:0;line-height:1.5}.comparison-row{align-items:center;gap:var(--space-3);padding:var(--space-3);background:#1e1e1e;border:1px solid #333;border-radius:8px;grid-template-columns:1fr auto 1fr;display:grid}.comparison-row__label{font-size:var(--font-xs);color:#9ca3af;text-align:center}.comparison-row__value{font-size:var(--font-md);text-align:center;font-weight:600}.comparison-row__value--win{color:#4ade80}.maestro-map-dialogue{top:var(--space-3);left:var(--space-3);right:var(--space-3);align-items:flex-start;gap:var(--space-2);z-index:5;display:flex;position:absolute}.maestro-map-dialogue__portrait{flex-shrink:0;margin-top:6px}.maestro-map-dialogue__bubble{opacity:0;background:#f1ece0;border:2px solid #1a1720;border-radius:13.5px;flex-direction:column;flex:1;min-width:0;padding:.7rem .85rem;animation:.32s ease-out .15s forwards maestro-map-dialogue-bubble-in;display:flex;position:relative}.maestro-map-dialogue__bubble:before,.maestro-map-dialogue__bubble:after{content:"";border-top:8px solid #0000;border-bottom:8px solid #0000;width:0;height:0;position:absolute;top:12px}.maestro-map-dialogue__bubble:before{border-right:10.5px solid #1a1720;left:-10.5px}.maestro-map-dialogue__bubble:after{border-right:9px solid #f1ece0;left:-8px}.maestro-map-dialogue__name{font-family:var(--font-brush);font-size:var(--font-sm);color:#8a6d1a;margin-bottom:.15rem;font-weight:700;display:block}.maestro-map-dialogue__text{font-family:var(--font-brush);font-size:var(--font-2xs);color:#1a1720;min-height:2.6rem;margin:0;line-height:1.6}.maestro-map-dialogue__cursor{vertical-align:text-bottom;background:#1a1720;width:2px;height:.9em;margin-left:2px;animation:.8s step-end infinite maestro-map-dialogue-cursor-blink;display:inline-block}.maestro-map-dialogue__cursor--done{opacity:0;animation:none}.maestro-map-dialogue__continue{align-self:center;margin-top:.5rem}@keyframes maestro-map-dialogue-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes maestro-map-dialogue-bubble-in{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.map-screen{justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;width:100%;max-width:420px;min-height:100svh;margin:0 auto;display:flex;position:relative}.map-screen--landscape{z-index:20;background:#08060d;max-width:none;margin:0;padding:0;position:fixed;inset:0}.map-screen__frame{width:100%;position:relative}.map-screen--landscape .map-screen__frame{position:fixed;inset:0}.map-screen__viewport{border:1px solid #6b4a28;border-radius:4px;align-items:center;width:100%;height:240px;display:flex;position:relative;overflow:auto hidden;box-shadow:inset 0 0 22px #140c048c,0 3px 10px #00000059}.map-screen--landscape .map-screen__viewport{border:none;border-radius:0;justify-content:safe center;height:100%}.map-screen__rod{z-index:3;pointer-events:none;background:linear-gradient(90deg,#5a3c1f 0%,#a5763f 40%,#6b4a28 75%,#3f2712 100%);width:12px;position:absolute;top:0;bottom:0;box-shadow:0 0 6px #00000073}.map-screen__rod--left{left:0}.map-screen__rod--right{right:0}.map-screen__rod:before,.map-screen__rod:after{content:"";background:radial-gradient(circle at 35% 30%,#c69a5c,#5a3c1f 75%);border-radius:50%;width:20px;height:20px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #00000080}.map-screen__rod:before{top:-6px}.map-screen__rod:after{bottom:-6px}.map-screen__image-layer{flex-shrink:0;height:100%;animation:.65s cubic-bezier(.22,.61,.36,1) both map-screen-unroll;position:relative}@keyframes map-screen-unroll{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.map-screen__image{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:auto;height:100%;display:block}.map-screen__paths{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.map-screen__path-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.map-screen__path-line--bleed{stroke:#261c1259;stroke-width:6px;filter:blur(1.4px)}.map-screen__path-line--ink{stroke:#26190f;stroke-width:2.2px;opacity:.92}.map-screen__pin{justify-content:center;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)}.map-screen__waypoint{background:#261c1280;border:1.5px solid #e2c48c99;border-radius:50%;width:10px;height:10px;box-shadow:0 1px 3px #00000059}.map-screen__seal{--stamp-color:#b5342c;filter:drop-shadow(0 0 4px #b5342c8c);animation:.42s cubic-bezier(.34,1.56,.64,1) both map-screen-seal-stamp}@keyframes map-screen-seal-stamp{0%{opacity:0;transform:scale(1.7)rotate(-10deg)}60%{opacity:1;transform:scale(.92)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}.map-screen__player-marker{background:#1a1822;border:2px solid #c084fc;border-radius:50%;width:26px;height:26px;animation:2.4s ease-in-out infinite map-screen-player-pulse;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.map-screen__player-mask{-o-object-fit:cover;object-fit:cover;filter:hue-rotate(259deg)saturate(1.05);width:100%;height:100%}@keyframes map-screen-player-pulse{0%,to{box-shadow:0 0 6px #c084fc80}50%{box-shadow:0 0 12px #c084fce6}}.map-screen__rotate-hint{color:#c9b8ec;font-size:var(--font-xs);text-align:center;background:#c084fc1f;border:1px solid #c084fc4d;border-radius:999px;align-items:center;gap:.4rem;margin:0;padding:.4rem .75rem;animation:2.4s ease-in-out infinite map-screen-hint-pulse;display:flex}.map-screen__rotate-icon{flex-shrink:0;width:16px;height:16px}@keyframes map-screen-hint-pulse{0%,to{opacity:.75}50%{opacity:1}}
