/*! tailwindcss v4.2.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-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: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;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,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{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.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}}.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}.\!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,)!important}.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,)}}:root{--ink:#163d47;--teal:#0d7f78;--teal-dark:#08625e;--sky:#8fceea;--sky-light:#d9f1fa;--mango:#ffbd3e;--plum:#65305f;--coral:#ff6b5c;--cream:#fff8ea;--paper:#fffdf7;--muted:#6a7d7f;--line:#163d47;--shadow:#163d4729}*{box-sizing:border-box}html{background:var(--cream)}body{background:radial-gradient(circle at 8% 8%, #ffbd3e2e, transparent 24%), radial-gradient(circle at 92% 4%, #8fceea47, transparent 28%), var(--cream);min-height:100vh;color:var(--ink);margin:0;font-family:ui-rounded,SF Pro Rounded,Thonburi,Noto Sans Thai,Leelawadee UI,system-ui,sans-serif}button{color:inherit;font:inherit}button:focus-visible{box-shadow:0 0 0 7px var(--teal);outline:4px solid #fff}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.game-shell{width:min(1480px,100% - 32px);margin:0 auto;padding:24px 0 20px}.topbar{justify-content:space-between;align-items:center;gap:24px;min-height:88px;margin-bottom:16px;display:flex}.level-selector{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px;margin-bottom:18px;display:grid}.level-tab{border:3px solid var(--ink);background:var(--paper);min-width:0;min-height:82px;box-shadow:0 5px 0 var(--ink);cursor:pointer;overflow-wrap:anywhere;text-align:left;border-radius:17px;align-content:start;gap:6px;padding:10px 12px;font-weight:950;transition:transform .15s,box-shadow .15s,background .15s;display:grid}.level-number{border:2px solid var(--ink);background:var(--sky-light);border-radius:999px;justify-self:start;padding:5px 9px;font-size:.72rem}.level-name{text-overflow:ellipsis;line-height:1.2;overflow:hidden}.level-state{color:var(--teal-dark);justify-self:start;font-size:.68rem;font-weight:950}.level-tab[aria-pressed=true]{background:var(--mango)}.level-tab[aria-pressed=true] .level-number{background:var(--paper)}.level-tab.is-complete:not([aria-pressed=true]){background:#e5f4d8}.level-tab.is-complete .level-state{color:var(--ink)}.level-tab.is-locked{color:var(--muted);cursor:not-allowed;opacity:.78;background:repeating-linear-gradient(-45deg,#6a7d7f14 0 8px,#0000 8px 16px),#eef1ed;box-shadow:0 4px #163d478c}.level-tab:not(:disabled):hover{box-shadow:0 7px 0 var(--ink);transform:translateY(-2px)}.level-tab:disabled:hover{transform:none;box-shadow:0 4px #163d478c}.brand-lockup{align-items:center;gap:16px;display:flex}.brand-mark{border:3px solid var(--ink);background:var(--coral);width:64px;height:58px;box-shadow:0 6px 0 var(--ink);border-radius:20px 20px 25px 25px;place-items:center;display:grid;position:relative;transform:rotate(-3deg)}.brand-mark:before{border:3px solid var(--ink);background:var(--mango);content:"";border-radius:999px;width:40px;height:8px;transform:translateY(-10px)}.brand-mark span{background:var(--ink);border-radius:999px;width:28px;height:5px;position:absolute;bottom:11px}.eyebrow,.mini-label,.bank-kicker{color:var(--teal-dark);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:950}.topbar h1{letter-spacing:-.055em;margin:2px 0 0;font-size:clamp(2.2rem,4vw,3.8rem);font-weight:950;line-height:.95}.rules-button{border:3px solid var(--ink);background:var(--paper);box-shadow:0 5px 0 var(--ink);cursor:pointer;border-radius:16px;align-items:center;gap:9px;padding:12px 18px;font-weight:900;transition:transform .15s,box-shadow .15s;display:flex}.header-actions{align-items:center;gap:10px;display:flex}.sound-button{border:3px solid var(--ink);background:var(--sky-light);min-height:54px;box-shadow:0 5px 0 var(--ink);cursor:pointer;border-radius:16px;align-items:center;gap:8px;padding:10px 14px;font-size:.78rem;font-weight:950;transition:transform .15s,box-shadow .15s;display:flex}.sound-button span{border:2px solid var(--ink);background:var(--teal);color:#fff;border-radius:50%;place-items:center;width:25px;height:25px;font-size:1rem;display:grid}.sound-button[aria-pressed=true]{background:var(--cream);color:var(--muted)}.sound-button[aria-pressed=true] span{background:var(--muted)}.sound-button:hover{box-shadow:0 8px 0 var(--ink);transform:translateY(-3px)}.sound-button:active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.rules-button span{background:var(--mango);border-radius:50%;place-items:center;width:25px;height:25px;display:grid}.rules-button:not(:disabled):hover{box-shadow:0 8px 0 var(--ink);transform:translateY(-3px)}.rules-button:not(:disabled):active{box-shadow:0 2px 0 var(--ink);transform:translateY(3px)}.rules-button:disabled{cursor:not-allowed;filter:grayscale(.6);opacity:.45}.intro-strip{border:3px solid var(--ink);background:var(--paper);box-shadow:0 7px 0 var(--ink);border-radius:24px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;padding:18px 22px;display:flex}.intro-strip>*{min-width:0}.intro-strip h2{letter-spacing:-.025em;margin:2px 0 3px;font-size:clamp(1.35rem,2.2vw,2rem);font-weight:950}.intro-strip p:not(.mini-label){color:var(--muted);margin:0;font-weight:720}.scoreboard{flex-shrink:0;gap:10px;min-width:0;display:flex}.score-chip{border:3px solid var(--ink);min-width:94px;min-height:65px;color:var(--ink);text-align:center;border-radius:16px;padding:9px 15px;display:grid}.score-chip span{font-size:.75rem;font-weight:900}.score-chip strong{font-size:1.5rem;line-height:1}.score-chip.coral{background:var(--coral)}.score-chip.sky{background:var(--sky-light)}.score-chip.mango{background:var(--mango)}.score-chip.plum{background:var(--plum);color:#fff}.playground{border:3px solid var(--ink);background:var(--paper);min-height:500px;box-shadow:0 9px 0 var(--ink);border-radius:30px;grid-template-columns:minmax(330px,1fr) minmax(320px,.9fr) minmax(330px,1fr);display:grid;position:relative;overflow:hidden}.bank{z-index:1;background:radial-gradient(circle, #0d7f7814 2px, transparent 2.5px) 0 0 / 22px 22px, var(--paper);min-width:0;padding:26px 28px;position:relative}.left-bank{padding-right:36px}.right-bank{padding-left:36px}.boat-bank .bank-kicker{color:var(--coral)}.bank-heading{border-bottom:3px solid var(--ink);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:16px;display:flex}.bank-heading h3{margin:2px 0 0;font-size:1.65rem;font-weight:950}.bank-count{border:2px solid var(--ink);background:var(--sky-light);border-radius:999px;padding:6px 10px;font-size:.8rem;font-weight:950}.passenger-groups{gap:18px;padding-top:18px;display:grid}.passenger-row{min-width:0}.passenger-row+.passenger-row{border-top:2px dashed #163d4740;padding-top:17px}.passenger-row-heading{justify-content:space-between;margin-bottom:10px;font-size:.78rem;font-weight:950;display:flex}.passenger-list{align-items:flex-end;gap:clamp(5px,1.1vw,12px);min-height:116px;display:flex}.cargo-group{min-width:0;padding-top:18px}.cargo-list{flex-wrap:wrap;place-content:flex-start center;align-items:flex-end;gap:10px;min-height:150px;display:flex}.character.cargo{width:min(92px,28%);min-width:72px}.character{--entity-color:var(--mango);cursor:pointer;background:0 0;border:0;width:clamp(70px,7vw,92px);min-width:0;height:108px;padding:0;transition:transform .15s,filter .15s;display:block;position:relative}.character:before{border:3px solid var(--ink);background:var(--entity-color);content:"";border-radius:24px 24px 17px 17px;position:absolute;inset:4px 3px 12px;box-shadow:0 7px #163d4740}.character.demon{--entity-color:var(--plum)}.character.sheep{--entity-color:#f0eee2}.character.wolf{--entity-color:#9daab0}.character.cabbage{--entity-color:#8bc56a}.character:disabled{cursor:not-allowed;filter:saturate(.6);opacity:.62}.character:not(:disabled):hover{transform:translateY(-7px)rotate(-1deg)}.entity-artwork{z-index:2;aspect-ratio:1;border:3px solid var(--ink);background:var(--ink);width:min(72px,100% - 8px);color:var(--paper);border-radius:20px;place-items:center;display:grid;position:absolute;top:4px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px #163d4740}.entity-artwork.is-compact{border-width:2px;border-radius:11px;width:min(42px,100% - 6px);top:3px;box-shadow:0 2px #163d4740}.entity-art-fallback{background:var(--ink);width:100%;height:100%;color:var(--paper);grid-area:1/1;place-items:center;font-size:clamp(.65rem,1.4vw,.9rem);font-weight:950;display:grid}.entity-art-image{z-index:1;object-fit:contain;grid-area:1/1;width:100%;height:100%;display:block}.entity-art-badge{z-index:2;border:1px solid var(--ink);background:var(--paper);max-width:calc(100% - 4px);color:var(--ink);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:2px 5px;font-size:clamp(.48rem,1.2vw,.62rem);font-weight:950;line-height:1;position:absolute;bottom:2px;right:2px;overflow:hidden}.character>.entity-artwork{--entity-celebrate-delay:0s;--entity-idle-delay:.28s;animation:entity-return .26s cubic-bezier(.2, .9, .3, 1.2) both, entity-idle 3.6s ease-in-out var(--entity-idle-delay) infinite}.character:nth-child(2n)>.entity-artwork{--entity-celebrate-delay:70ms;--entity-idle-delay:.42s}.character:nth-child(3n)>.entity-artwork{--entity-celebrate-delay:.14s;--entity-idle-delay:.56s}.is-celebrating .character>.entity-artwork{animation:entity-celebrate .46s cubic-bezier(.2, .9, .3, 1.3) var(--entity-celebrate-delay) both}.constraint-group{min-width:0;padding-top:18px}.constraint-list{flex-wrap:wrap;place-content:flex-start center;align-items:flex-end;gap:10px;min-height:150px;display:flex}.character.constraint-token{width:min(84px,28%);min-width:68px;height:108px}.constraint-token,.boat-passenger.constraint-entity{--entity-color:var(--mango)}.entity-detail{z-index:3;text-overflow:ellipsis;white-space:nowrap;font-size:.58rem;font-weight:950;position:absolute;bottom:5px;left:7px;right:7px;overflow:hidden}.weight-adult,.family-parent,.rescuer-medium{--entity-color:var(--mango)}.weight-child,.chemical-coolant,.rescuer-fast{--entity-color:var(--sky)}.chemical-acid,.family-thief,.rescuer-slow{--entity-color:var(--coral)}.chemical-base,.family-officer,.couple-c{--entity-color:#a8db81}.chemical-oxidizer,.couple-a,.family-daughter{--entity-color:#d6a2d0}.chemical-fuel,.couple-b,.family-son{--entity-color:#ffe29a}.boat-passenger.constraint-entity{background:var(--entity-color)}.boat-passenger.constraint-entity .boat-passenger-label{text-overflow:ellipsis;overflow:hidden}.boat-seats.capacity-1{grid-template-columns:minmax(0,1fr)}.boat-seats.capacity-2{grid-template-columns:repeat(2,minmax(0,1fr))}.token-label{z-index:3;color:var(--ink);white-space:nowrap;font-size:clamp(.62rem,.9vw,.75rem);font-weight:950;position:absolute;bottom:18px;left:4px;right:4px}.demon .token-label{color:#fff}.empty-group{width:100%;min-height:82px;color:var(--muted);border:2px dashed #163d4752;border-radius:18px;place-items:center;font-size:.75rem;font-weight:850;display:grid}.destination-placeholder{min-height:105px;color:var(--muted);text-align:center;border:3px dashed #163d4759;border-radius:24px;place-items:center;margin-top:18px;font-weight:900;display:grid}.destination-placeholder span{color:var(--coral);letter-spacing:.5em}.river{z-index:2;border-right:3px solid var(--ink);border-left:3px solid var(--ink);background:repeating-linear-gradient(155deg, transparent 0 50px, #ffffff8c 51px 58px, transparent 59px 94px), var(--sky);clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);min-width:0;margin:-3px -55px;position:relative;overflow:hidden}.river-current{background:#0d7f787a;border-radius:999px;width:56%;height:7px;position:absolute;transform:rotate(4deg)}.current-one{top:20%;left:18%}.current-two{bottom:14%;right:12%;transform:rotate(-9deg)}.river-label{border:2px solid var(--ink);background:var(--paper);border-radius:999px;padding:5px 12px;font-size:.7rem;font-weight:950;position:absolute;top:18px;left:50%;transform:translate(-50%)}.boat{z-index:4;border:4px solid var(--ink);background:var(--coral);border-radius:30px 30px 52px 52px;width:min(230px,68%);min-height:118px;padding:40px 20px 18px;transition:left .42s cubic-bezier(.2,.85,.3,1);animation:2.8s ease-in-out infinite boat-float;position:absolute;top:54%;box-shadow:0 9px #163d474d}.boat-left{left:6%}.boat-right{left:calc(94% - min(230px,68%))}.boat.is-crossing-to-left{--boat-passenger-counter-angle:1deg;--boat-passenger-rock-angle:-2deg;left:6%}.boat.is-crossing-to-right{--boat-passenger-counter-angle:-1deg;--boat-passenger-rock-angle:2deg;left:calc(94% - min(230px,68%))}.boat-rail{border:4px solid var(--ink);background:var(--mango);border-radius:999px;height:18px;position:absolute;top:-18px;left:12%;right:12%}.boat-seats{grid-template-columns:repeat(2,1fr);gap:9px;display:grid}.boat-seats.is-rejected{animation:.22s ease-out boat-reject}.cargo-boat-seats{grid-template-columns:minmax(0,1fr)}.boat-seat{background:#fffdf785;border:3px dashed #163d47a6;border-radius:15px;place-items:center;min-height:62px;font-size:.7rem;font-weight:950;display:grid}.boat-passenger{border:3px solid var(--ink);background:var(--mango);cursor:pointer;border-radius:15px;min-height:68px;padding:0;animation:.26s cubic-bezier(.2,.9,.3,1.3) entity-enter-boat;display:block;position:relative;box-shadow:0 4px #163d474d}.boat.is-crossing .boat-passenger>.entity-artwork{animation:.42s ease-in-out boat-passenger-rock}.boat-passenger.demon{background:var(--plum);color:#fff}.boat-passenger.cargo{background:#f0eee2}.boat-passenger.cargo.wolf{background:#9daab0}.boat-passenger.cargo.cabbage{background:#8bc56a}.boat-passenger:not(:disabled):hover{transform:translateY(-3px)}.boat-passenger-label{z-index:2;white-space:nowrap;font-size:.57rem;font-weight:950;position:absolute;bottom:7px;left:2px;right:2px}.status-bar{border:3px solid var(--ink);background:var(--paper);border-radius:18px;align-items:center;gap:12px;min-height:54px;margin:18px 0 14px;padding:10px 15px;display:flex}.status-bar p{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-weight:850}.status-dot{border:2px solid var(--ink);background:var(--teal);border-radius:50%;flex:none;width:13px;height:13px}.status-unsafe,.status-wolf-eats-sheep,.status-sheep-eats-cabbage{background:#fff0ed}.status-unsafe .status-dot,.status-wolf-eats-sheep .status-dot,.status-sheep-eats-cabbage .status-dot{background:var(--coral)}.capacity-pill{background:var(--sky-light);border-radius:999px;flex:none;padding:5px 10px;font-size:.75rem;font-weight:950}.controls{grid-template-columns:1fr minmax(230px,1.7fr) 1fr;gap:12px;display:grid}.control{border:3px solid var(--ink);min-height:62px;box-shadow:0 6px 0 var(--ink);cursor:pointer;border-radius:18px;justify-content:center;align-items:center;gap:10px;font-weight:950;transition:transform .15s,box-shadow .15s,filter .15s;display:flex}.control span{font-size:1.3em}.control.secondary{background:var(--paper)}.control.primary{background:var(--coral);font-size:1.15rem}.control:not(:disabled):not([aria-disabled=true]):hover{box-shadow:0 9px 0 var(--ink);transform:translateY(-3px)}.control:not(:disabled):not([aria-disabled=true]):active{box-shadow:0 2px 0 var(--ink);transform:translateY(4px)}.control:disabled,.control[aria-disabled=true]{cursor:not-allowed;filter:grayscale(.6);opacity:.45}.game-footer{color:var(--muted);justify-content:space-between;gap:20px;padding:22px 4px 0;font-size:.75rem;font-weight:800;display:flex}.game-footer p{margin:0}.game-footer-meta{align-items:center;gap:14px;display:flex}.artwork-credits-button{color:var(--teal-dark);cursor:pointer;background:0 0;border:0;border-bottom:2px solid;padding:2px 0;font-weight:950}.artwork-credits-button:not(:disabled):hover{color:var(--plum)}.artwork-credits-button:disabled{cursor:not-allowed;opacity:.45}.dialog-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#163d47b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0;overflow-y:auto}.game-dialog{overscroll-behavior:contain;border:4px solid var(--ink);background:var(--paper);width:min(520px,100%);max-height:calc(100vh - 40px);box-shadow:0 10px 0 var(--ink);border-radius:30px;padding:32px;position:relative;overflow-y:auto}.game-dialog h2{letter-spacing:-.04em;margin:5px 0 18px;font-size:clamp(1.8rem,6vw,2.7rem);font-weight:950}.dialog-close{border:3px solid var(--ink);background:var(--cream);cursor:pointer;border-radius:50%;place-items:center;width:38px;height:38px;font-size:1.45rem;font-weight:950;display:grid;position:absolute;top:17px;right:17px}.rules-dialog ol{counter-reset:rule;gap:12px;margin:0;padding:0;list-style:none;display:grid}.rules-dialog li{border:2px solid var(--ink);background:var(--cream);counter-increment:rule;border-radius:17px;padding:14px 14px 14px 58px;display:grid}.rules-dialog li:before{border:2px solid var(--ink);background:var(--mango);content:counter(rule);text-align:center;border-radius:50%;width:30px;height:30px;margin-left:-43px;font-weight:950;line-height:26px;position:absolute}.rules-level+.rules-level{border-top:2px dashed #163d474d;margin-top:20px;padding-top:18px}.rules-level h3{color:var(--teal-dark);margin:0 0 10px;font-size:1rem;font-weight:950}.artwork-credits-dialog{flex-direction:column;width:min(680px,100%);max-height:calc(100dvh - 40px);display:flex;overflow:hidden}.artwork-credits-description{color:var(--muted);margin:-7px 54px 18px 0;font-weight:750;line-height:1.55}.artwork-credits-list{overscroll-behavior:contain;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-height:0;margin:0;padding:2px 6px 2px 0;list-style:none;display:grid;overflow-y:auto}.artwork-credits-list li{border:2px solid var(--ink);background:var(--cream);border-radius:15px;flex-direction:column;gap:3px;min-width:0;padding:12px 14px;display:flex}.artwork-credits-list a{color:var(--teal-dark);overflow-wrap:anywhere;text-underline-offset:3px;font-weight:950}.artwork-credits-list a:hover{color:var(--plum)}.artwork-credits-list a:focus-visible{outline:3px solid var(--teal);outline-offset:3px;border-radius:3px}.artwork-credits-list span{color:var(--muted);font-size:.78rem;font-weight:800}.dialog-action{border:3px solid var(--ink);background:var(--coral);width:100%;min-height:56px;box-shadow:0 5px 0 var(--ink);cursor:pointer;border-radius:17px;margin-top:20px;font-weight:950}.victory-dialog{text-align:center;overflow-y:auto}.victory-burst{border:4px solid var(--ink);background:var(--mango);width:80px;height:80px;box-shadow:0 7px 0 var(--ink);border-radius:28px;place-items:center;margin:0 auto 16px;font-size:2.2rem;display:grid;transform:rotate(7deg)}.victory-dialog>p{margin:0}.victory-score{border:2px dashed var(--teal);background:var(--sky-light);border-radius:15px;margin-top:18px;padding:13px;font-weight:900}@keyframes boat-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes entity-idle{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-3px)}}@keyframes entity-enter-boat{0%{opacity:0;transform:translate(-12px,-32px)rotate(-8deg)scale(.76)}68%{opacity:1;transform:translate(5px,3px)rotate(3deg)scale(1.04)}to{opacity:1;transform:translate(0)rotate(0)scale(1)}}@keyframes entity-return{0%{opacity:0;transform:translate(-50%,-16px)rotate(-4deg)scale(.88)}72%{opacity:1;transform:translate(-50%,2px)rotate(1deg)scale(1.02)}to{opacity:1;transform:translate(-50%)rotate(0)scale(1)}}@keyframes boat-reject{0%,to{transform:translate(0)}25%{transform:translate(-7px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}@keyframes boat-passenger-rock{0%,to{rotate:none}45%{rotate:var(--boat-passenger-rock-angle,2deg)}72%{rotate:var(--boat-passenger-counter-angle,-1deg)}}@keyframes entity-celebrate{0%,to{transform:translate(-50%)rotate(0)scale(1)}38%{transform:translate(-50%,-13px)rotate(-5deg)scale(1.04)}68%{transform:translate(-50%,2px)rotate(3deg)scale(.98)}}@media (width<=1050px){.playground{grid-template-columns:minmax(280px,1fr) minmax(250px,.75fr) minmax(280px,1fr)}.bank{padding:22px 18px}.river{margin-left:-40px;margin-right:-40px}.controls{grid-template-columns:1fr 1.5fr 1fr}}@media (width<=820px){.game-shell{width:min(100% - 20px,720px);padding-top:14px}.topbar{min-height:72px}.brand-mark{width:52px;height:48px;box-shadow:0 5px 0 var(--ink);border-radius:16px 16px 21px 21px}.eyebrow{font-size:.62rem}.rules-button{padding:9px 12px}.sound-button{min-height:48px;padding:8px 10px}.rules-button span{width:22px;height:22px}.intro-strip{flex-direction:column;align-items:stretch}.scoreboard{width:100%}.score-chip{flex:1;min-width:0}.playground{flex-direction:column;min-height:0;display:flex}.bank{min-height:310px;padding:20px}.left-bank,.right-bank{padding:20px}.river{border:3px solid var(--ink);clip-path:polygon(0 8%,100% 0,100% 92%,0 100%);width:auto;height:270px;min-height:270px;margin:-8px -3px}.river-label{top:27px}.boat{width:min(220px,55%);top:40%}.boat-left{left:7%}.boat-right{left:calc(93% - min(220px,55%))}.boat.is-crossing-to-left{left:7%}.boat.is-crossing-to-right{left:calc(93% - min(220px,55%))}.passenger-list{justify-content:center}.destination-placeholder{min-height:70px}.controls{grid-template-columns:repeat(2,1fr)}.control.primary{grid-area:1/1/auto/-1}}@media (width<=520px){.topbar{align-items:flex-start}.brand-lockup{gap:10px}.brand-mark{flex:none;width:43px;height:42px}.brand-mark:before{width:28px}.topbar h1{font-size:2rem}.rules-button{font-size:0}.header-actions{gap:6px}.sound-button{min-width:46px;padding:8px;font-size:0}.sound-button span,.rules-button span{font-size:.9rem}.intro-strip{border-radius:20px;padding:15px}.level-selector{grid-template-columns:minmax(0,1fr);gap:8px}.level-tab{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-height:0;padding:9px 12px;font-size:.86rem}.level-name{text-overflow:clip;overflow:visible}.score-chip{min-height:60px;padding:8px 4px}.score-chip strong{font-size:1.3rem}.scoreboard.is-timed{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.bank{min-height:286px;padding:17px 14px}.passenger-groups{gap:12px}.passenger-row+.passenger-row{padding-top:12px}.character{width:min(27vw,82px);height:101px}.passenger-list{gap:3px;min-height:108px}.cargo-list{gap:5px;min-height:126px}.character.cargo{width:min(27vw,82px);min-width:66px}.river{height:240px;min-height:240px}.boat{min-height:108px;padding:34px 13px 14px}.status-bar{flex-wrap:wrap;align-items:flex-start}.status-bar p{min-width:calc(100% - 30px);font-size:.88rem}.capacity-pill{margin-left:25px}.control{min-height:56px;font-size:.88rem}.game-footer{flex-direction:column;align-items:flex-start;gap:4px}.game-footer-meta{justify-content:space-between;gap:12px;width:100%}.game-dialog{border-radius:24px;max-height:calc(100dvh - 24px);padding:26px 20px 22px}.artwork-credits-dialog{max-height:calc(100dvh - 24px)}.artwork-credits-description{margin-right:42px}.artwork-credits-list{grid-template-columns:minmax(0,1fr);padding-right:3px}.artwork-credits-list li{padding:10px 12px}.dialog-backdrop{padding:12px}}@media (height<=520px){.victory-dialog{padding:18px 28px 20px}.victory-burst{width:56px;height:56px;box-shadow:0 4px 0 var(--ink);border-radius:20px;margin-bottom:10px;font-size:1.7rem}.victory-dialog h2{margin:2px 0 8px;font-size:clamp(1.7rem,6vw,2.2rem)}.victory-score{margin-top:10px;padding:9px 12px}.victory-dialog .dialog-action{min-height:48px;box-shadow:0 4px 0 var(--ink);margin-top:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.entity-artwork,.boat-passenger,.boat-seats.is-rejected,.is-celebrating .entity-artwork{transition-duration:.01ms!important;animation:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
