@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-ext-400-normal-5tcqmc2S.woff2) format("woff2"),url(/assets/outfit-latin-ext-400-normal-DHm7mdGe.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/outfit-latin-400-normal-BGsTXAXT.woff2) format("woff2"),url(/assets/outfit-latin-400-normal-DMwTpYkH.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-ext-500-normal-zeox_O30.woff2) format("woff2"),url(/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2) format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2) format("woff2"),url(/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-600-normal-B7SfZ07L.woff2) format("woff2"),url(/assets/outfit-latin-600-normal-BEfTtDA7.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-ext-700-normal-CI4iH74K.woff2) format("woff2"),url(/assets/outfit-latin-ext-700-normal-fjS8-Gm7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/outfit-latin-700-normal-Cu9v6i1X.woff2) format("woff2"),url(/assets/outfit-latin-700-normal-D4itBLBr.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-ext-500-normal-BJfUCQsA.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-500-normal-DR84L5F-.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--scale: 1;--grow: min(var(--scale), 1.6);font-size:calc(16px * var(--scale));--t-eyebrow: .75rem;--t-support: .875rem;--t-body: 1rem;--t-section: 1.25rem;--t-screen: min(1.75rem, 9vw);--t-display: min(2.5rem, 12vw);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--r-small: 8px;--r-control: 16px;--r-sheet: 24px;--r-round: 9999px;--canvas: #f2f7f5;--surface: #ffffff;--auth-canvas: #dcebe5;--ink: #244741;--muted: #4f6a60;--muted-on-lilac: #49645a;--accent: #1f7563;--danger: #a3374a;--hairline: #dfebe4;--field-border: #cedcd4;--dim: #54705f;--play-bg: #b9afc5;--play-muted: #463d52;--mint: #9ae5ca;--coral: #f7b5af;--lilac: #e2dcfa;--yellow: #ffca4b;font-family:DM Sans,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none;font-weight:400;color-scheme:light;letter-spacing:0}@media(prefers-color-scheme:dark){:root.dark-ready{--canvas: #16231f;--surface: #1e2f29;--auth-canvas: #16231f;--ink: #eaf3ee;--muted: #b3c6bb;--muted-on-lilac: #b3c6bb;--accent: #6fd8b4;--danger: #ff9aa8;--hairline: #2c403a;--field-border: #3a5148;--dim: #8aa396;--play-bg: #3b3348;--play-muted: #c9bfd6}}.auth-screen{min-height:100dvh;padding:max(24px,env(safe-area-inset-top)) 24px max(28px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;background:var(--auth-canvas)}.auth-art{width:144px;height:144px;object-fit:cover;border-radius:var(--r-sheet);margin:6px 0 16px}.auth-screen h1{margin:0 0 22px;font:700 var(--t-screen)/1.1 "Outfit";text-align:center}.auth-screen h1 span{color:var(--accent)}.auth-form{width:min(100%,350px)}.auth-form h2{font:600 var(--t-section)/1.2 "Outfit";margin:0 0 18px;text-align:center}.auth-form .segmented{margin-bottom:20px}.auth-form form{display:grid;gap:16px}.auth-form form label{margin:0}.auth-form .primary{margin-top:5px}.auth-status,.invite-note{display:flex;align-items:center;justify-content:center;gap:8px}.invite-note{font-size:var(--t-support);margin:-4px 0 20px;color:var(--muted)}.invite-note svg{width:18px}.password-field{position:relative;width:100%}.password-field input{padding-right:48px}.password-field button{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:40px;height:40px;display:grid;place-items:center;border:0;background:none;color:var(--muted)}.password-field svg{width:20px}.account-actions{border-top:1px solid var(--hairline);padding-top:20px;margin-top:20px;display:grid;gap:10px}.danger-text{color:var(--danger)}.danger-text svg{width:18px}.danger-button{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;min-height:50px;padding:12px 16px;background:var(--danger);color:#fff;border:0;border-radius:var(--r-small);margin:18px 0 12px;font-weight:600}.confirm-delete{display:flex;align-items:center;gap:10px;font-size:var(--t-support)}.confirm-delete input{width:20px;height:20px;flex:0 0 20px}.delete-warning{color:#7a3343;line-height:1.5}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-height:750px){.auth-art{width:96px;height:96px;margin-bottom:10px}.auth-screen h1{margin-bottom:14px;font-size:var(--t-screen)}.auth-form form{gap:12px}}*{box-sizing:border-box}body{margin:0;min-width:280px;overscroll-behavior:none}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer;-webkit-tap-highlight-color:transparent;color:inherit;border:0}button:disabled{cursor:default;opacity:.75}button:not(:disabled):active{transform:translateY(2px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #278d78;outline-offset:4px}button svg{flex-shrink:0;width:22px;height:22px;stroke-width:2}h1,h2,h3,strong{font-family:Outfit,sans-serif}h1,h2,h3,p{margin:0}h1{font-size:var(--t-screen);line-height:1.15;font-weight:600}h2{font-size:var(--t-screen);line-height:1.18;font-weight:600}h3{font-size:var(--t-screen)}small{display:block}.app{min-height:100dvh;background:var(--canvas)}.icon-button{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #dce7e2;border-radius:50%;flex-shrink:0;box-shadow:0 3px #dce7e2}.icon-button:hover{background:#e8f4ed}.primary,.secondary{min-height:54px;padding:14px 22px;display:flex;align-items:center;justify-content:center;gap:12px;font-family:Outfit,sans-serif;font-weight:600;font-size:var(--t-body);border-radius:var(--r-small);width:100%;transition:background .15s}.primary{background:#9ae5ca;border:1px solid #6bc5a8;box-shadow:0 4px #72bca4}.primary:hover{background:#b4f1da}.secondary{background:#fff;border:1px solid #d4e2dc;box-shadow:0 3px #e0e8e5}.secondary:hover{background:#f6fbf8}.text-button{background:none;padding:15px;font-weight:600;text-decoration:underline;text-underline-offset:4px}.eyebrow{font-family:Outfit,sans-serif;font-size:var(--t-eyebrow);font-weight:600;color:var(--muted);display:block;margin-bottom:5px}.screen-header{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;max-width:900px;margin:0 auto;padding:24px;padding-top:max(24px,env(safe-area-inset-top))}.screen-header>div{text-align:center;min-width:0}.screen-header h1{overflow-wrap:anywhere}.home-screen{position:relative;width:100%;height:100dvh;min-height:690px;display:grid;grid-template-rows:auto auto minmax(245px,1fr) auto auto;overflow:hidden}.home-tools{display:flex;gap:14px;align-items:center;width:100%;max-width:1100px;margin:0 auto;padding:26px 30px 14px;padding-top:max(26px,env(safe-area-inset-top));z-index:2}.profile-shortcut{display:flex;gap:10px;align-items:center;background:none;padding:0;max-width:60%;font-family:Outfit;font-weight:500}.profile-shortcut>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-stats{margin-left:auto;display:flex;gap:7px;align-items:center;font-family:Outfit;font-weight:600}.home-stats svg,.star-total svg{color:#e1a51e;width:21px}.home-title{z-index:1;text-align:center;pointer-events:none;padding:16px 20px 0}.home-title h1{font-size:var(--t-display);line-height:.98;font-weight:700;text-shadow:0 3px #fff}.home-title h1 span{display:block;color:#3d957e}.home-stage{position:relative;width:100%;min-height:0}.home-stage .water-scene{position:absolute;inset:-35px 0 -38px}.home-mascot{position:absolute;right:calc(50% - 225px);bottom:18px;width:80px;height:80px;border-radius:var(--r-control);box-shadow:0 4px 12px var(--ink) 12;transform:rotate(8deg)}.home-actions{width:min(360px,calc(100% - 48px));margin:0 auto;display:flex;flex-direction:column;gap:16px;z-index:1}.home-actions .primary{min-height:75px;justify-content:space-between;font-size:var(--t-section)}.solo-choice>span{flex:1;text-align:left}.solo-choice small{font-family:DM Sans;font-size:var(--t-eyebrow);font-weight:500;margin-top:4px}.multiplayer-choice{background:#e2dcfa;border-color:#d2c8ee;box-shadow:0 4px #c5b9e7;font-size:var(--t-section);justify-content:space-between}.multiplayer-choice:hover{background:#ebe6fc}.multiplayer-choice span{flex:1;text-align:left}.home-edition{text-align:center;color:var(--muted);font-size:var(--t-eyebrow);padding:23px 20px max(22px,env(safe-area-inset-bottom))}.avatar{display:inline-block;flex-shrink:0;width:46px;height:46px;overflow:hidden;border-radius:50%;border:2px solid #fff;background:#f4f1ea;box-shadow:0 2px #d9e4de}.avatar>span{display:block;width:100%;height:100%;background:url(/avatars.webp);background-size:300% 200%;transform:scale(1.35);mix-blend-mode:multiply}.avatar.large{width:100px;height:100px;border-width:3px}.stars{display:flex;justify-content:center;gap:4px;color:#cedbd3}.stars svg{height:22px;width:22px;stroke-width:1.5}.stars svg.earned{color:#e9ae2c;fill:#ffcd51}.star-total{display:flex;align-items:center;gap:4px;font-weight:600;min-width:48px}.journey-screen{height:100dvh;display:flex;flex-direction:column;background:#eaf4ee}.journey-screen .screen-header{background:#eaf4ee;max-width:900px;flex-shrink:0}.journey-scroll{overflow-y:auto;min-height:0;flex:1;padding:24px 0 80px;scroll-behavior:smooth}.journey-map{width:min(540px,100%);margin:0 auto;position:relative;padding:30px 32px}.journey-stop{position:relative;display:flex;align-items:center;gap:24px;height:175px;padding:0 10px}.journey-stop:nth-child(2n){flex-direction:row-reverse}.map-connector{position:absolute;width:53%;height:177px;border-right:4px dotted #b7d6c4;transform:rotate(-43deg);top:57px;left:25px;z-index:0;pointer-events:none}.journey-stop:nth-child(2n) .map-connector{transform:rotate(43deg);left:auto;right:25px;border-left:4px dotted #b7d6c4;border-right:0}.journey-stop:last-of-type .map-connector{display:none}.level-node{position:relative;width:120px;height:120px;border-radius:50%;flex-shrink:0;background:#f9fffb;border:4px solid #d0e8d8;box-shadow:0 7px #b9d5c4;z-index:1;padding:10px}.level-node>svg{width:100%;height:100%}.current .level-node{background:#c3efda;border-color:#7ac4a5;box-shadow:0 7px #5c9f84,0 0 0 9px #d9efdf}.level-number{position:absolute;bottom:-8px;right:-1px;background:#fff;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;border:2px solid #bddbc8;font:600 var(--t-section) "Outfit"}.level-number svg{width:16px;height:16px}.level-label{position:relative;z-index:1;flex:1;min-width:0}.level-label>span{font:500 var(--t-eyebrow) "Outfit";color:var(--muted)}.level-label strong{display:block;font-size:var(--t-section);line-height:1.1;margin:6px 0 8px}.level-label .stars{justify-content:flex-start}.locked .level-label{color:var(--dim)}.locked .level-node{filter:grayscale(.75)}.journey-end{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);font:500 var(--t-support) "Outfit";padding:40px 0 0}.journey-end svg{width:32px;height:32px}.play-screen{background:var(--play-bg);display:flex;flex-direction:column;min-height:610px;height:100dvh}.play-screen .eyebrow,.play-screen .tap-count span{color:var(--play-muted)}.play-goal{display:flex;justify-content:center;gap:13px;font:500 var(--t-support) "Outfit";color:var(--play-muted);padding:2px 24px 4px}.play-goal span{color:var(--play-muted);opacity:.5}.play-stage{flex:1;min-height:220px;width:100%;position:relative;background:var(--play-bg)}.water-scene{width:100%;height:100%;min-height:0;position:absolute;inset:0}.water-scene canvas{display:block;width:100%;height:100%}.render-fallback{position:absolute;inset:25%;display:grid;place-items:center;text-align:center}.play-controls{display:grid;grid-template-columns:1fr 126px 1fr;align-items:center;gap:20px;width:min(550px,100%);margin:0 auto;padding:16px 24px max(32px,env(safe-area-inset-bottom));flex-shrink:0}.pour-button{width:126px;height:110px;border-radius:50%;border:2px solid #70bda2;background:#a8ebd2;box-shadow:0 7px #71af98,inset 0 3px #d8ffed;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font:600 var(--t-section) "Outfit";touch-action:none;user-select:none;-webkit-user-select:none}.pour-button svg{width:33px;height:33px;color:#3e947c}.pour-button.pouring{background:#80d3b3;transform:translateY(5px);box-shadow:0 2px #71af98}.tap-count{text-align:center}.tap-count span{display:block;font:500 var(--t-eyebrow) "Outfit";color:var(--muted)}.tap-count strong{display:block;font:500 var(--t-display) "Outfit"}.finish-button{min-height:70px;background:none;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:0;font:500 var(--t-support) "Outfit"}.finish-button svg{border-radius:50%;background:#fff;width:39px;height:39px;padding:8px;border:1px solid #dce7e1}.spill-caption{position:absolute;bottom:0;left:0;right:0;text-align:center;color:#bd6570;font:600 var(--t-screen) "Outfit";animation:caption-in .35s both;pointer-events:none}.modal{width:min(420px,calc(100% - 32px));max-height:calc(100dvh - 40px);border:1px solid #dce7e0;border-radius:var(--r-small);padding:24px;color:var(--ink);background:#fbfdfb;box-shadow:0 20px 100px #22473d30;text-align:center;overflow-y:auto}.modal::backdrop{background:#25443b3f;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-top{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:20px;text-align:left}.modal-top .icon-button{width:48px;height:48px;box-shadow:none;background:transparent}.modal-top h2{font-size:var(--t-screen)}.modal>.primary,.modal>.secondary{margin-top:14px}.modal>svg{width:145px;height:145px}.button-row{display:flex;gap:12px;margin-top:16px}.button-row>button{padding:12px 10px;font-size:var(--t-body)}.result-art{margin:14px auto 22px;width:100px;height:100px;display:grid;place-items:center;background:#fff2c3;border-radius:50%;color:#b99226}.result-art svg{width:55px;height:55px}.result-copy{font-size:var(--t-body);line-height:1.5;margin:10px 0 18px;color:var(--muted)}.result-icon{width:125px;height:125px;border-radius:var(--r-sheet)}.result-score>span{display:block;font-size:var(--t-eyebrow);color:var(--muted)}.result-score strong{font-size:var(--t-display);font-weight:500}.result-modal .stars{gap:6px;margin:26px 0}.result-modal .stars svg{width:70px;height:70px}.result-modal .stars svg:nth-child(2){margin-top:-12px}.star-reveal svg{animation:star-in .5s backwards}.personal-best{display:block;font-size:var(--t-eyebrow);color:var(--accent);margin-top:5px}.level-preview>svg{width:170px;height:170px;display:block;margin:6px auto}.level-preview>.eyebrow{text-align:center}.level-challenge{margin:17px 0;font:500 var(--t-body) "Outfit"}.previous-best{border-top:1px solid #e0e9e3;padding:18px 0 8px}.previous-best>span{font-size:var(--t-eyebrow);color:var(--muted)}.previous-best>div{display:flex;justify-content:center;gap:45px;margin-top:8px}.previous-best strong{font-size:var(--t-screen);font-weight:500}.previous-best small{font:400 var(--t-eyebrow) "DM Sans";color:var(--muted);margin-top:2px}label{display:block;text-align:left;font-size:var(--t-support);font-weight:500}input:not([type=checkbox]),select{display:block;width:100%;min-height:56px;margin:8px 0 20px;border:1px solid var(--field-border);background:#fff;border-radius:var(--r-control);color:var(--ink);padding:12px 16px;font-size:var(--t-body)}input:disabled{background:#edf3ef;color:var(--muted)}.setting-row{padding:17px 0;border-bottom:1px solid #e3ebe5;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:var(--t-body)}.setting-row span{display:flex;gap:10px;align-items:center}.setting-row svg{width:20px}.setting-row input{width:24px;height:24px;accent-color:#47a986}.setting-row select{width:144px;margin:0;font-size:var(--t-support)}.profile-row{display:flex;align-items:center;gap:12px;width:100%;background:#eef6f0;padding:14px;border-radius:var(--r-small);text-align:left;margin-bottom:10px}.profile-row>span:nth-child(2){flex:1;overflow:hidden}.profile-row strong{font-size:var(--t-body);display:block;overflow:hidden;text-overflow:ellipsis}.profile-row small{margin-top:2px;font-size:var(--t-eyebrow);color:var(--muted)}.version{margin:24px 0 0;color:var(--muted);font-size:var(--t-eyebrow)}.avatar-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;margin:20px -8px}.avatar-picker button{padding:0;border-radius:50%;background:transparent;display:flex;justify-content:center;border:2px solid transparent}.avatar-picker .avatar{width:42px;height:42px}.avatar-picker button.selected{border-color:#55967d}.profile-stats{display:flex;justify-content:center;gap:24px;margin:24px 0}.profile-stats span{display:flex;align-items:center;gap:7px;font-size:var(--t-support)}.profile-stats svg{width:19px;color:#b59c4b}.segmented{display:flex;background:#eaf1ed;border-radius:var(--r-small);padding:4px;margin:0 0 20px}.segmented button{flex:1;border-radius:var(--r-small);background:transparent;padding:11px 5px;font-size:var(--t-support)}.segmented .active{background:#fff;box-shadow:0 2px 4px var(--ink) 12}.error{color:#a64550;background:#fce5e5;border-radius:var(--r-small);padding:12px 14px;font-size:var(--t-support);line-height:1.5;margin:15px 0}.muted{color:#809486;font-size:var(--t-support);margin:12px 0}.online-screen{min-height:100dvh}.online-screen:not(.online-playing) .screen-header{position:sticky;top:0;background:var(--canvas);z-index:5}.online-status{width:48px;display:flex;justify-content:center;color:#72a491}.online-entry{max-width:370px;margin:30px auto;padding:0 24px;text-align:center}.friends-art{display:flex;justify-content:center;align-items:center;height:210px;margin-bottom:20px}.friends-art .avatar:nth-child(2){position:relative;width:120px;height:120px;margin:-25px -5px 0;z-index:1}.friends-art .avatar:first-child{transform:rotate(-12deg)}.friends-art .avatar:last-child{transform:rotate(12deg)}.entry-buttons{display:flex;flex-direction:column;gap:18px}.entry-buttons .primary,.entry-buttons .secondary{font-size:var(--t-body);padding:16px 12px}.join-form{display:flex;align-items:flex-end;gap:10px;border-top:1px solid #d9e6df;padding-top:27px;margin-top:30px}.join-form label{flex:1;min-width:0}.join-form input{margin:8px 0 0}.room-size{display:flex;gap:7px;align-items:center;justify-content:center;color:var(--muted);font-size:var(--t-eyebrow);margin-top:28px}.room-size svg{width:18px}.lobby-content{width:min(620px,100%);margin:25px auto;padding:0 24px;text-align:center}.lobby-content>.primary{width:min(320px,100%);margin:25px auto}.room-code>span{display:block;font-size:var(--t-eyebrow);color:var(--muted)}.room-code-value{display:flex;justify-content:center;align-items:center;gap:12px;margin:8px 0 20px}.room-code-value>strong{font-size:var(--t-display)}.invite-actions{display:flex;justify-content:center;align-items:center;gap:12px;margin:0 auto 32px}.invite-actions>.secondary{width:fit-content}.players{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;padding:15px 20px;flex-shrink:0}.player{width:85px;min-width:0;text-align:center}.player strong{font-size:var(--t-eyebrow);font-weight:500;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:6px 0 2px}.player small{font-size:var(--t-eyebrow);color:var(--muted)}.player.out{opacity:.75}.current-player .avatar{border-color:#65b99a;box-shadow:0 0 0 4px #d0e8d9}.empty-seats{display:flex;gap:15px;justify-content:center;margin:20px 0}.empty-seats span{width:46px;height:46px;border:2px dashed #c9d9cf;border-radius:50%;display:grid;place-items:center;color:#bdd1c3}.empty-seats svg{width:20px}.voting-content{width:min(720px,100%);margin:0 auto;padding:10px 24px 30px}.vote-heading{display:flex;justify-content:space-between;margin:0 0 16px;font:500 var(--t-body) "Outfit"}.vote-heading strong{color:#bd6871}.vote-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.vessel-vote{border-radius:var(--r-small);background:#fff;border:2px solid #e0e9e2;padding:10px 5px;text-align:center;min-width:0;display:flex;flex-direction:column;align-items:center}.vessel-vote.selected{border-color:#6eae94;background:#e5f5e9}.vessel-vote>svg{width:100%;height:92px}.vessel-vote strong{font-size:var(--t-support);line-height:1.15;min-height:31px}.vessel-vote span{display:flex;align-items:center;justify-content:center;font-size:var(--t-eyebrow);color:var(--muted);margin-top:7px;height:16px}.vessel-vote span svg{height:13px;width:13px;margin-left:3px}.online-playing{display:flex;flex-direction:column;height:100dvh;min-height:670px}.online-playing .players{padding:5px 20px;gap:8px}.online-playing .player{width:60px}.online-playing .player .avatar{height:35px;width:35px}.online-playing .player strong{font-size:var(--t-eyebrow);margin-top:4px}.online-playing .player small{font-size:var(--t-eyebrow)}.online-playing .play-controls{padding-top:12px}.online-playing .play-stage{min-height:190px}.turn-banner{display:flex;justify-content:center;align-items:center;gap:12px;padding:4px 20px 6px;font:500 var(--t-body) "Outfit";text-align:center}.turn-banner strong{background:#e3f0e5;padding:5px 8px;border-radius:var(--r-small);min-width:40px}.turn-banner strong.urgent{color:#ae5261;background:#f9dfe1}.turn-marker{display:flex;justify-content:center;color:#97ad9d}.online-error{width:min(600px,calc(100% - 32px));margin:0 auto 12px}@keyframes star-in{0%{opacity:0;transform:scale(.2) rotate(-25deg)}70%{transform:scale(1.15) rotate(4deg)}to{opacity:1;transform:scale(1)}}@keyframes caption-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(max-width:600px){.home-screen{min-height:650px}.home-tools{padding:20px 22px 8px;padding-top:max(20px,env(safe-area-inset-top))}.home-title{padding-top:18px}.home-title h1{font-size:var(--t-display)}.home-mascot{width:58px;height:58px;right:25px;bottom:20px;border-radius:var(--r-control)}.home-actions{width:min(340px,calc(100% - 50px))}.home-actions .primary{min-height:70px}.screen-header{padding:20px 20px 15px;padding-top:max(20px,env(safe-area-inset-top))}.screen-header h1{font-size:var(--t-section)}.journey-map{padding:10px 28px}.journey-stop{gap:22px;padding:0;height:175px}.level-node{width:108px;height:108px}.level-label strong{font-size:var(--t-section)}.map-connector{left:14px;transform:rotate(-35deg)}.journey-stop:nth-child(2n) .map-connector{right:14px;transform:rotate(35deg)}.play-controls{grid-template-columns:1fr 112px 1fr;gap:13px;padding:10px 20px max(30px,env(safe-area-inset-bottom))}.pour-button{width:112px;height:105px}.vote-grid{grid-template-columns:repeat(3,1fr)}.vessel-vote>svg{height:88px}.online-entry{margin-top:10px}.modal{padding:22px}}@media(max-width:360px){.screen-header h1{font-size:var(--t-section)}.screen-header{padding-left:16px;padding-right:16px;gap:10px}.icon-button{width:42px;height:42px}.home-title h1{font-size:var(--t-display)}.home-screen{min-height:620px;grid-template-rows:auto auto minmax(200px,1fr) auto auto}.level-node{width:96px;height:96px}.journey-map{padding:10px 24px}.journey-stop{gap:16px}.level-label strong{font-size:var(--t-body)}.avatar-picker .avatar{width:34px;height:34px}.modal-top h2{font-size:var(--t-section)}.modal{padding:18px}.result-modal .stars svg{width:60px;height:60px}.play-controls{padding-left:12px;padding-right:12px;gap:8px}}@media(max-height:700px)and (min-width:601px){.home-screen{min-height:620px;grid-template-rows:auto auto minmax(170px,1fr) auto auto}.home-title h1{font-size:var(--t-display)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.app>.auth-screen{position:fixed;inset:0;z-index:60;overflow-y:auto}.auth-back{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;min-height:48px;padding:12px 16px 12px 8px;margin-bottom:4px;background:none;font-weight:500;color:var(--ink)}.auth-back svg{width:20px}.auth-reason{margin:-12px 0 20px;text-align:center;max-width:320px;color:var(--muted);font-size:var(--t-body);line-height:1.4}.save-journey{display:flex;flex-direction:column;gap:2px;width:100%;min-height:56px;margin-top:12px;text-decoration:none}.save-journey small{font-size:var(--t-support);font-weight:400;color:var(--muted);text-decoration:none}.coach-anchor{position:relative;display:flex;justify-content:center}.coach-mark{position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%);margin:0;padding:8px 16px;border-radius:var(--r-control);background:var(--ink);color:var(--canvas);font:500 var(--t-support) "Outfit",sans-serif;white-space:nowrap;pointer-events:none;z-index:5}.coach-mark:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--ink)}.coach-anchor.teaching:before{content:"";position:absolute;inset:-10px;border-radius:50%;border:3px solid var(--ink);opacity:.5;pointer-events:none;animation:coach-pulse 2.4s ease-in-out infinite}@keyframes coach-pulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.08);opacity:.18}}.reduced-motion .coach-anchor.teaching:before{animation:none;opacity:.5}@media(prefers-reduced-motion:reduce){.coach-anchor.teaching:before{animation:none;opacity:.5}}.app{overflow-x:hidden}.home-tools{flex-wrap:wrap;row-gap:var(--s-2)}.profile-shortcut{min-width:0;flex:1 1 auto}.profile-shortcut span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.primary,.secondary,.solo-choice,.multiplayer-choice{height:auto;white-space:normal;text-align:left}.solo-choice>span,.multiplayer-choice span{min-width:0}.home-edition,.play-goal{text-wrap:balance}.play-goal{flex-wrap:wrap}.home-stage{min-height:0}:root{-webkit-text-size-adjust:100%;text-size-adjust:100%;--canvas: #f1e6e1;--surface: #fff9f5;--auth-canvas: #f1e6e1;--ink: #24262b;--muted: #55575c;--accent: #23604f;--hairline: #d8cec7;--field-border: #b5bfb6;--play-bg: #b5c7bd;--play-muted: #3a5047;--t-screen: 1.75rem;--t-display: 3.5rem;font-family:-apple-system,BlinkMacSystemFont,DM Sans,sans-serif}button,input,select{-webkit-tap-highlight-color:transparent}button{-webkit-touch-callout:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}h1,h2,h3{font-weight:500}.primary,.secondary{position:relative;min-height:48px;border-radius:999px;font-size:1rem;line-height:1.3;padding:12px 38px;justify-content:center;text-align:center;transition:transform .12s ease,box-shadow .12s ease,background .16s ease}.primary{color:#fff9f5;background:#285c4e;border:1px solid #1d4c40;box-shadow:inset 0 1px #ffffff35,0 2px #193f36,0 4px 12px #223d3820}.primary:hover{background:#326b59}.primary>svg,.secondary>svg{position:absolute;left:16px;width:18px;height:18px}.secondary{color:var(--ink);background:#fff9f0;border:1px solid #c5bdb0;box-shadow:inset 0 1px #fff,0 2px #bfb5a8,0 4px 10px #243d3810}.secondary:hover{background:#fffdf7}.icon-button,.modal-top .icon-button{width:44px;height:44px;min-width:44px;min-height:44px;color:var(--ink);background:#fff9f2e8;border:1px solid #ffffffaa;box-shadow:0 2px 5px #32443c13,inset 0 1px #fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.icon-button:hover{background:#fffdf7}button:disabled{opacity:1;box-shadow:none;color:#51615a;background:#d9ded6;border-color:#b7c0b6}.text-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a84237;outline-offset:4px}.eyebrow{font:600 .75rem/1.4 DM Sans,sans-serif;color:var(--muted)}.world-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}.home-screen{min-height:600px;isolation:isolate;grid-template-rows:auto auto minmax(200px,1fr) auto;padding-bottom:max(24px,env(safe-area-inset-bottom));background:#e7a59a}.world-art{z-index:-1}.home-tools{padding:max(8px,env(safe-area-inset-top)) 24px 0;max-width:850px;flex-wrap:nowrap}.profile-shortcut{background:#fff9f2e8;padding:4px 14px 4px 4px;border-radius:30px;flex:0 1 auto;min-height:48px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffffaa;box-shadow:0 2px 6px #32443c13;max-width:62%;font-size:.875rem}.profile-shortcut .avatar{width:34px;height:34px}.profile-shortcut:not(:has(span)){padding:4px;min-height:44px}.home-stats{padding:10px 12px;min-height:44px;background:#fff9f2e8;border-radius:24px}.home-stats svg{color:#a97719;width:18px}.home-title{padding:18px 24px 0}.home-title h1{font-size:2.75rem;line-height:1.02;font-weight:600;text-shadow:none;margin-top:0;color:#24262b}.home-title h1 span{color:inherit}.home-title p{font-size:.9375rem;margin-top:14px;color:#374e44}.home-title .eyebrow{color:#374e44}.home-actions{width:min(236px,calc(100% - 64px));gap:10px}.home-actions .primary{min-height:48px;font-size:1rem;justify-content:center}.solo-choice small{color:#e3eee1;font-size:.75rem}.multiplayer-choice{font-size:1rem;justify-content:center;background:#fff7eb;border-color:#c8bcae;box-shadow:inset 0 1px #fff,0 3px #b6aa9a}.multiplayer-choice:hover{background:#fffdf4}.home-edition{position:relative;z-index:1;color:#394d43;padding:20px 24px max(22px,env(safe-area-inset-bottom));font-size:.75rem}.introduction{position:relative;isolation:isolate;background:#e7a59a;display:flex;flex-direction:column;min-height:max(600px,100dvh);height:auto;overflow:hidden}.intro-tools{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:max(8px,env(safe-area-inset-top)) 20px 0;min-height:52px}.edition-mark{display:flex;gap:7px;align-items:center;font-size:.8125rem;font-weight:500}.intro-skip{background:transparent;color:var(--ink);border-radius:28px;min-height:44px;min-width:52px;padding:8px;font-size:.8125rem;font-weight:500}.intro-heading{text-align:center;padding:18px 24px 0;animation:courtyard-enter .32s ease both}.intro-heading h1{font:600 2.75rem/1.02 Outfit,sans-serif;margin-top:0;color:#24262b;outline:none}.intro-heading h1 span{display:block}.intro-heading p{font-size:.875rem;line-height:1.5;margin:12px auto 0;max-width:280px;text-wrap:balance}.intro-heading .eyebrow,.intro-heading p{color:#24262b}.intro-art-space{flex:1;min-height:220px}.intro-footer{flex-shrink:0;width:min(216px,calc(100% - 64px));margin:0 auto;padding-bottom:max(24px,env(safe-area-inset-bottom))}.intro-progress{display:flex;justify-content:center;align-items:center;gap:8px;height:24px;margin-bottom:8px}.intro-progress span{width:6px;height:6px;border-radius:8px;background:#243d3859}.intro-progress .active{width:24px;background:#243d38}.intro-footer .primary{justify-content:center;padding-inline:24px}.intro-step-1{background:var(--play-bg)}.intro-step-1 .intro-heading{padding-top:8px}.intro-step-1 .intro-heading h1{font-size:2rem}.intro-step-1 .intro-heading p{margin-top:10px}.intro-play-stage{position:relative;flex:1;min-height:260px;padding-bottom:0}.intro-play-stage .water-scene{height:100%;bottom:0}.intro-feedback{position:absolute;bottom:8px;left:16px;right:16px;text-align:center;font-size:.8125rem;color:#344e43}.intro-practice-controls{flex-shrink:0;display:flex;justify-content:center;gap:30px;align-items:center;padding:12px 20px 0}.intro-practice-controls .pour-button{width:76px;height:76px}.intro-step-1 .intro-progress{height:24px;margin-bottom:5px}.intro-step-2 .intro-heading h1{font-size:2.75rem}.intro-step-2 .intro-heading p{max-width:260px}.auth-screen{position:relative;isolation:isolate;background:var(--auth-canvas);padding:max(20px,env(safe-area-inset-top)) 24px max(32px,env(safe-area-inset-bottom));overflow-x:hidden}.auth-world{position:absolute;inset:0 0 auto;width:100%;height:265px;object-fit:cover;object-position:center 42%;z-index:-1;opacity:.48;-webkit-mask-image:linear-gradient(#000 35%,transparent);mask-image:linear-gradient(#000 35%,transparent)}.auth-back{align-self:flex-start;padding-left:0;margin:0;min-height:48px}.auth-brand{display:flex;align-items:center;gap:8px;margin:28px 0 42px}.auth-brand svg{width:22px}.auth-brand h1{margin:0;font-size:1.375rem}.auth-form{width:min(100%,360px)}.auth-form>.eyebrow{text-align:center;margin-bottom:10px}.auth-form h2{font:500 2.25rem/1.1 Outfit,sans-serif;margin-bottom:24px}.auth-form form{gap:16px}.auth-form label{font-size:.8125rem}.auth-form input{margin-bottom:0}.auth-reason{margin:-24px 0 24px}.segmented{border-radius:16px;padding:4px;background:#d7dcd3}.segmented button{border-radius:12px;min-height:44px;font-size:.875rem}.segmented .active{background:#fffaf3;box-shadow:0 2px 5px #314a391c}input:not([type=checkbox]),select{min-height:50px;border-radius:16px;padding:14px 16px;border:1px solid var(--field-border);background:#fffaf3;font-size:1rem;color:var(--ink);box-shadow:inset 0 2px 4px #34453606}input::placeholder{color:#657169;opacity:1}.password-field button{width:48px;height:48px;right:4px}.password-field input{padding-right:56px}.password-field button:active{transform:translateY(-50%)}.auth-status{padding:24px}.invite-note{border-radius:16px;padding:12px;background:#dde9dc;margin-bottom:18px}.modal{border:1px solid #ffffffb0;border-radius:28px;background:#fff9f2;padding:24px;box-shadow:0 24px 90px #142a3940}.modal:before{content:"";display:block;width:34px;height:4px;border-radius:8px;background:#b6beb3;margin:-10px auto 18px}.modal::backdrop{background:#203d394f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-top{margin-bottom:18px}.modal-top h2{font-size:1.5rem}.result-copy,.muted,.version,.profile-row small,.previous-best small,.result-score>span,.room-code>span{color:var(--muted)}.result-modal .stars svg.earned{color:#986d25;fill:#e8bd61}.result-score strong{font-weight:500}.result-art{background:#eee1c7;color:#936827}.setting-link{background:transparent;width:100%;text-align:left}.setting-row{min-height:66px}.setting-row input[type=checkbox]{appearance:none;width:51px;height:31px;min-width:51px;border-radius:20px;border:1px solid #8b9a8e;background:#adb8ae;margin:0;position:relative;transition:background .18s}.setting-row input[type=checkbox]:before{content:"";position:absolute;top:2px;left:2px;width:25px;height:25px;border-radius:50%;background:#fffdf8;box-shadow:0 2px 4px #243d3833;transition:transform .18s}.setting-row input[type=checkbox]:checked{background:#36715a;border-color:#36715a}.setting-row input[type=checkbox]:checked:before{transform:translate(20px)}.profile-row{border-radius:18px;background:#e6ecdf}.danger-text{color:#a3374a}.danger-button{border-radius:999px}.avatar-picker{gap:8px;grid-template-columns:repeat(3,1fr);margin:20px 0}.avatar-picker button{min-width:48px;min-height:48px;padding:4px}.journey-screen{background:#dce7dc}.journey-screen .screen-header{background:#e9eee2ed;border-bottom:1px solid #b9c8b8;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.journey-scroll{background-color:#dce7dc;background-image:url(/art/stone-grain.webp);background-size:320px}.journey-stop{height:182px;flex-direction:row;gap:28px}.journey-stop:nth-child(2n){flex-direction:row}.journey-stop.on-right{flex-direction:row-reverse}.journey-map{isolation:isolate;padding-inline:24px}.journey-river{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:-1}.journey-river path{fill:none;stroke-linecap:round;stroke-linejoin:round}.river-bank-shadow{stroke:#98ac9b;stroke-width:76px}.river-bank{stroke:#c7d9c0;stroke-width:68px}.river-channel{stroke-width:52px}.river-caustics{animation:river-drift 8s linear infinite}.river-base{display:block;width:100%;height:100%}.river-tile{position:absolute;left:0;width:100%;overflow:hidden;contain:paint}.river-tile[data-active=false] *{animation-play-state:paused}.river-current{stroke:#e2ffff;stroke-width:2px;stroke-dasharray:60 130 22 220;opacity:.4;animation:river-current 16s linear infinite}.journey-river[data-paused=true] *{animation-play-state:paused}@keyframes river-drift{to{transform:translateY(96px)}}@keyframes river-current{to{stroke-dashoffset:-432}}.level-node{background:#f5e7df;border-color:#e7cac0;box-shadow:0 7px #b7a299,inset 0 2px #fffaf2}.current .level-node{background:#e4eedf;border-color:#6c987c;box-shadow:0 7px #456a54,0 0 0 8px #c1d4bc}.map-connector{border-color:#7e9e8b}.journey-stop:nth-child(2n) .map-connector{border-color:#7e9e8b}.level-label strong{font-weight:500;color:#24262b}.level-label>span,.journey-end{color:#50585a}.journey-end{position:relative;background:#dce7dc;border-radius:50%;width:140px;min-height:140px;padding:32px 12px 20px;margin:16px auto 0}.join-submit{width:auto;min-width:72px;padding-inline:16px}.locked .level-node{opacity:1;background:#d3dfd1;border-color:#abbfa9}.level-number{border-color:#9cb39c;background:#fff9f0}.stars{color:#85998c}.play-screen,.play-stage,.online-playing{background:var(--play-bg)}.play-screen .screen-header{max-width:680px}.play-goal{color:#344e43;font-size:.875rem}.play-goal span{color:#52675a}.play-controls{grid-template-columns:minmax(60px,1fr) 112px minmax(60px,1fr);gap:20px;padding-bottom:max(30px,env(safe-area-inset-bottom))}.pour-button{width:112px;height:112px;background:#fff4df;border:1px solid #b4a996;box-shadow:0 6px #988d7e,inset 0 3px #fffdf2,0 10px 20px #2c43321c;color:#284d40}.pour-button svg{color:#36715a}.pour-button.pouring{background:#e8dfc9;box-shadow:0 2px #988d7e,inset 0 1px #fff}.finish-button{min-width:48px;width:100%}.finish-button svg{background:#f5f3df;border-color:#a7b7a2;width:48px;height:48px;padding:12px}.tap-count strong{font-size:2rem;font-variant-numeric:tabular-nums}.coach-mark{max-width:min(210px,44vw);white-space:normal;font-size:.75rem;text-align:center}.coach-anchor:last-child .coach-mark{left:auto;right:0;transform:none}.coach-anchor.teaching:before{animation:none;border-width:1px;opacity:.35}.online-screen{background:#eadbd5}.online-screen:not(.online-playing) .screen-header{background:#eadbd5eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.online-entry{position:relative;max-width:430px;margin:0 auto;padding:0 24px 24px}.friends-world{display:block;width:calc(100% + 48px);max-height:355px;aspect-ratio:1.15;margin:-10px -24px 20px;object-fit:cover;object-position:center 59%;-webkit-mask-image:linear-gradient(transparent,#000 8%,#000 90%,transparent);mask-image:linear-gradient(transparent,#000 8%,#000 90%,transparent)}.entry-buttons{gap:14px}.room-size{margin-top:12px;color:#526253}.room-code-value>strong{font-variant-numeric:tabular-nums}.vessel-vote{background:#fff9f0;border-color:#c8bcaf}.vessel-vote.selected{border-color:#376852;background:#e1edda}.vessel-vote span{color:#506352;min-height:20px}.lobby-content{background:transparent}.online-playing{background:var(--play-bg)}.turn-banner strong{border-radius:50%;min-width:44px;min-height:44px;display:grid;place-items:center;background:#f7edd8}.online-playing .player small{font-size:.75rem}.online-playing .players{gap:4px}.online-playing .player{width:66px}@keyframes courtyard-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:700px){.home-screen>.world-art,.introduction>.world-art{object-fit:contain;background:#e8ada0}.home-title h1{font-size:2.75rem}.home-title{padding-top:8px}.intro-tools{width:min(850px,100%);margin-inline:auto}.intro-play-stage{width:min(700px,100%);margin-inline:auto}.auth-world{object-position:center 40%;opacity:.25}}@media(max-width:699px){.modal{margin:auto auto max(10px,env(safe-area-inset-bottom));width:calc(100% - 20px);max-height:calc(100dvh - env(safe-area-inset-top) - 24px);border-radius:28px}.home-title{padding-top:16px}.home-screen .world-art,.introduction .world-art{object-fit:cover}}@media(max-height:740px){.home-screen,.introduction{min-height:600px}.home-title h1,.intro-heading h1{font-size:2.5rem}.home-title,.intro-heading{padding-top:4px}.intro-heading p,.home-title p{margin-top:8px}.home-title .eyebrow{display:none}.intro-art-space{min-height:180px}.intro-step-1 .intro-heading h1{font-size:2rem}.intro-play-stage{min-height:220px}.intro-tools{padding-top:max(8px,env(safe-area-inset-top));min-height:62px}.intro-footer{padding-bottom:max(22px,env(safe-area-inset-bottom))}.auth-brand{margin:12px 0 24px}.auth-form h2{font-size:1.875rem;margin-bottom:18px}}@media(max-width:360px){.home-tools{padding-inline:16px;gap:8px}.profile-shortcut{max-width:56%;padding-right:10px}.play-controls{gap:12px;padding-inline:16px}.intro-heading h1,.intro-step-2 .intro-heading h1{font-size:2.75rem}.level-label strong{font-size:1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}.home-title,.intro-step-0 .intro-heading,.intro-step-2 .intro-heading{padding-top:48px}@media(max-height:740px){.home-title,.intro-step-0 .intro-heading,.intro-step-2 .intro-heading{padding-top:24px}}:root[data-large-text=true] .introduction,:root[data-large-text=true] .home-screen{height:auto;min-height:100dvh}:root[data-large-text=true] .intro-heading h1,:root[data-large-text=true] .home-title h1{font-size:calc(48px * var(--grow));overflow-wrap:normal}:root[data-large-text=true] .intro-heading p{max-width:100%}:root[data-large-text=true] .intro-tools{gap:16px}:root[data-large-text=true] .edition-mark{min-width:0}:root[data-large-text=true] .edition-mark svg,:root[data-large-text=true] button svg{flex-shrink:0}:root[data-large-text=true] .introduction>.world-art,:root[data-large-text=true] .home-screen>.world-art{display:none}:root[data-large-text=true] .intro-art-space{min-height:320px;margin-top:20px;background:url(/art/courtyard.webp) center 58% / cover}:root[data-large-text=true] .home-stage{min-height:320px;background:url(/art/courtyard.webp) center 58% / cover;margin-block:20px}:root[data-large-text=true] .home-actions .primary,:root[data-large-text=true] .multiplayer-choice{font-size:1rem;padding-inline:16px;gap:8px}:root[data-large-text=true] .home-actions,:root[data-large-text=true] .intro-footer{width:min(320px,calc(100% - 48px))}:root[data-large-text=true] .intro-step-2 .intro-art-space{background-image:url(/art/together.webp)}:root[data-large-text=true] .intro-play-stage{min-height:320px;padding-bottom:0}:root[data-large-text=true] .intro-play-stage .water-scene{height:320px;bottom:auto}:root[data-large-text=true] .intro-feedback{position:relative;display:block;padding-top:330px;margin:0 16px;inset:auto}:root[data-large-text=true] .intro-footer{padding-top:12px}:root[data-large-text=true] .intro-practice-controls .pour-button{width:104px;height:104px}:root[data-large-text=true] .auth-form h2{font-size:calc(40px * var(--grow))}:root[data-large-text=true] .segmented{flex-wrap:wrap}:root[data-large-text=true] .setting-row{gap:16px;padding-block:16px}:root[data-large-text=true] .journey-stop{height:245px}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}#root{position:fixed;top:0;left:0;height:var(--viewport-height, 100dvh)}*{scrollbar-width:none}*::-webkit-scrollbar{display:none;width:0;height:0}button{touch-action:manipulation}.app{height:100%;min-height:0;overflow:hidden}.introduction,:root[data-large-text=true] .introduction{width:100%;height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.intro-tools{grid-row:1;width:100%;min-height:0;padding:calc(var(--safe-top) + 10px) max(20px,var(--safe-right)) 0 max(20px,var(--safe-left))}.intro-heading,.intro-step-0 .intro-heading,.intro-step-1 .intro-heading,.intro-step-2 .intro-heading{grid-row:2;padding:18px 24px 0}.intro-heading h1,.intro-step-2 .intro-heading h1,:root[data-large-text=true] .intro-heading h1{font-size:calc(44px * var(--grow));line-height:1.02}.intro-step-1 .intro-heading h1{font-size:calc(32px * var(--grow))}.intro-heading p,:root[data-large-text=true] .intro-heading p{font-size:calc(14px * var(--grow));max-width:100%;margin-top:10px}.intro-art-space,:root[data-large-text=true] .intro-art-space{grid-row:3;min-height:0;margin:0;background:none}.intro-play-stage,:root[data-large-text=true] .intro-play-stage{grid-row:3;width:100%;min-height:0;padding:0}.intro-play-stage .water-scene,:root[data-large-text=true] .intro-play-stage .water-scene{height:100%;inset:0}.intro-practice-controls{grid-row:4;padding:8px 20px}.intro-practice-controls .pour-button span{font-size:calc(16px * var(--grow))}.intro-footer,:root[data-large-text=true] .intro-footer{grid-row:5;padding:0 0 calc(var(--safe-bottom) + 28px);width:min(216px,calc(100% - 64px))}.intro-footer .primary{min-height:48px;font-size:calc(16px * var(--grow))}.intro-progress{height:22px;margin-bottom:10px}.introduction>.world-art,.home-screen>.world-art,:root[data-large-text=true] .introduction>.world-art,:root[data-large-text=true] .home-screen>.world-art{display:block;object-fit:cover;height:100%;width:100%;inset:0}.intro-skip{font-size:calc(13px * var(--grow))}.intro-skip:disabled{background:transparent;color:var(--ink)}.intro-tools .icon-button:disabled{background:#fff9f2e8;color:var(--ink)}.home-screen,:root[data-large-text=true] .home-screen{height:100%;min-height:0;grid-template-rows:auto auto minmax(0,1fr) auto;padding-bottom:calc(var(--safe-bottom) + 28px);touch-action:none}.home-tools{padding-top:calc(var(--safe-top) + 10px)}.home-title{padding-top:18px}.home-title h1,:root[data-large-text=true] .home-title h1{font-size:calc(44px * var(--grow))}.home-stage,:root[data-large-text=true] .home-stage{min-height:0;margin:0;background:none}.home-actions,:root[data-large-text=true] .home-actions{width:min(236px,calc(100% - 64px))}.home-actions .primary,.home-actions .secondary{font-size:calc(16px * var(--grow))}.screen-header{padding-top:calc(var(--safe-top) + 12px)}.journey-screen,.play-screen,.online-playing{height:100%;min-height:0}.play-stage{min-height:0}.play-controls{padding-bottom:calc(var(--safe-bottom) + 24px)}.auth-screen,.online-screen:not(.online-playing){height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.auth-screen{padding-top:calc(var(--safe-top) + 12px);padding-bottom:calc(var(--safe-bottom) + 24px);scroll-padding:24px 0}.auth-screen input{scroll-margin:12px 0}.auth-back{flex-shrink:0}.auth-skip{display:flex;margin:14px auto 0}.journey-scroll{overscroll-behavior:contain}.modal{max-height:calc(var(--viewport-height, 100dvh) - var(--safe-top) - var(--safe-bottom) - 24px)}@media(max-height:700px){.intro-heading,.intro-step-0 .intro-heading,.intro-step-1 .intro-heading,.intro-step-2 .intro-heading{padding-top:6px}.intro-heading h1,.intro-step-2 .intro-heading h1,:root[data-large-text=true] .intro-heading h1{font-size:calc(36px * var(--grow))}.intro-step-1 .intro-heading h1{font-size:calc(28px * var(--grow))}.intro-practice-controls .pour-button,:root[data-large-text=true] .intro-practice-controls .pour-button{width:72px;height:72px}.intro-practice-controls .pour-button span{font-size:calc(16px * var(--grow))}.intro-footer,:root[data-large-text=true] .intro-footer{padding-bottom:calc(var(--safe-bottom) + 16px)}}.auth-flow,.app>.auth-flow{--account-paper: #faf7f8;--account-field: #eeebee;position:relative;display:grid;align-items:stretch;grid-template-rows:auto minmax(0,1fr) auto;height:100%;width:100%;min-height:0;padding:0;overflow:hidden;background:var(--account-paper);color:#211f24;font-family:-apple-system,BlinkMacSystemFont,DM Sans,sans-serif}.auth-flow h1{font:600 1.75rem/1.18 -apple-system,BlinkMacSystemFont,DM Sans,sans-serif;text-align:left;color:#211f24;margin:22px 0 12px;outline:none;text-wrap:balance}.auth-description{color:#656169;font-size:1rem;line-height:1.45;margin:0 0 24px;overflow-wrap:anywhere}.auth-symbol{display:flex;align-items:center;justify-content:center;width:56px;height:56px;flex-shrink:0;border-radius:50%;background:#efeaed;color:#79717b}.auth-symbol svg{width:28px;height:28px;stroke-width:1.6}.auth-flow .primary,.auth-flow .secondary{width:100%;min-height:52px;border:0;box-shadow:none;border-radius:999px;font:500 1.0625rem/1.3 -apple-system,BlinkMacSystemFont,DM Sans,sans-serif;padding:14px 32px}.auth-flow .primary{background:#211f24;color:#fff}.auth-flow .primary:hover{background:#343038}.auth-flow .secondary{background:#eeebee;color:#211f24}.auth-flow .primary:disabled{background:#ece8ec;color:#77717a}.auth-choice{display:flex;justify-content:flex-end;flex-direction:column;isolation:isolate;padding:calc(var(--safe-top) + 16px) 8px 0}.auth-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.auth-choice:before{content:"";position:absolute;inset:0;background:#2420291a;z-index:-1}.auth-choice-sheet{width:min(100%,460px);max-height:100%;overflow-y:auto;margin:0 auto;background:var(--account-paper);border-radius:32px 32px 0 0;padding:24px 24px calc(var(--safe-bottom) + 24px);box-shadow:0 -8px 40px #382b3310}.auth-choice-top{display:flex;align-items:flex-start;justify-content:space-between}.auth-close{display:flex;justify-content:center;align-items:center;width:44px;height:44px;border-radius:50%;background:#eeebee;color:#69616b}.auth-close svg{width:22px;height:22px}.auth-choice-actions{display:grid;gap:10px;margin-top:24px}.auth-flow .auth-skip{font-size:.9375rem;margin:0;color:#656169;width:100%}.auth-keep .auth-choice-top{align-items:center;gap:12px}.auth-keep .auth-choice-top h1{margin:0}.auth-keep .auth-choice-top+.auth-description{margin-top:14px}.auth-flow .continue-button{padding-inline:44px}.auth-flow .continue-button>svg{left:auto;right:20px;width:20px;height:20px}.auth-quiet-actions{display:flex;flex-wrap:wrap;justify-content:center;column-gap:28px}.auth-flow .auth-quiet-actions .text-button{width:auto;min-height:44px;margin:0;padding:0 4px;font-size:.9375rem;color:#4a4650}@media(max-width:360px){.auth-quiet-actions{column-gap:20px}.auth-flow .continue-button{padding-inline:20px 40px;font-size:calc(15px * var(--grow))}.auth-flow .continue-button>svg{right:16px}}@media(max-height:650px){.auth-keep .auth-choice-top+.auth-description{margin-top:10px}.auth-keep .guest-progress li{padding:7px 0}}.guest-progress{margin:-8px 0 0}.guest-progress header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:8px}.guest-progress h2,.guest-status{font:600 .75rem/1.2 -apple-system,BlinkMacSystemFont,DM Sans,sans-serif;color:#656169}.guest-progress h2{letter-spacing:.08em;text-transform:uppercase}.guest-status{display:inline-flex;align-items:center;gap:6px;font-weight:500}.guest-status:before{content:"";width:7px;height:7px;border-radius:50%;background:#d99a2c}.guest-progress ul{list-style:none;margin:0;padding:0}.guest-progress li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;border-top:1px solid #ebe5e9}.progress-icon{display:flex;justify-content:center}.progress-icon svg{width:22px;height:22px}.progress-stars .progress-icon{color:#c4912c}.progress-levels .progress-icon{color:#1f7563}.progress-streak .progress-icon{color:#d9692c}.progress-text{display:grid;gap:2px;min-width:0}.progress-text strong{font:600 .9375rem/1.25 -apple-system,BlinkMacSystemFont,DM Sans,sans-serif;color:#211f24}.progress-text small{font-size:calc(13px * var(--grow));line-height:1.3;color:#656169;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guest-progress b{font:700 1.0625rem/1.2 Outfit,sans-serif;color:#211f24;font-variant-numeric:tabular-nums;white-space:nowrap}.auth-navigation{width:min(100%,460px);margin:0 auto;padding:calc(var(--safe-top) + 8px) max(16px,var(--safe-right)) 0 max(16px,var(--safe-left));display:flex;align-items:center;justify-content:space-between}.auth-navigation .auth-back{padding:0;margin:0;min-width:44px;width:44px;height:44px;min-height:44px;justify-content:center;color:#211f24;background:transparent;border:0}.auth-navigation .auth-back svg{width:26px;height:26px}.auth-navigation-space{width:44px}.auth-step-count{display:flex;gap:6px}.auth-step-count i{display:block;width:6px;height:6px;border-radius:50%;background:#d9d2d7}.auth-step-count .current{background:#5b505a}.auth-flow .auth-form{width:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-padding:20px 0;padding:0 24px 20px}.auth-flow .auth-form form{width:min(100%,412px);margin:0 auto;display:block}.auth-field-content{padding-top:30px;animation:account-enter .18s ease both}.auth-flow input:not([type=checkbox]){width:100%;height:auto;min-height:54px;border-radius:16px;border:1px solid transparent;background:var(--account-field);color:#211f24;box-shadow:none;padding:16px;margin:0 0 14px;font:400 1.0625rem/1.3 -apple-system,BlinkMacSystemFont,DM Sans,sans-serif;scroll-margin:16px 0}.auth-flow input::placeholder{color:#7a737d}.auth-flow input:focus{border-color:#79717b;outline:2px solid #79717b33;outline-offset:1px}.auth-flow .password-field{margin-bottom:14px}.auth-flow .password-field input{margin:0;padding-right:58px}.auth-flow .password-field button{top:50%;bottom:auto;right:4px;transform:translateY(-50%);width:44px;height:44px;background:transparent;color:#6c646f}.auth-flow .password-field button svg{width:20px;height:20px}.auth-action-bar{width:min(100%,460px);margin:0 auto;padding:12px max(24px,var(--safe-right)) calc(var(--safe-bottom) + 24px) max(24px,var(--safe-left));background:var(--account-paper)}.auth-flow .error{font-size:.9375rem;line-height:1.4;margin:16px 0 0;color:#a22f42}.auth-flow .avatar.large{width:80px;height:80px;margin:0}.auth-flow .avatar-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:0 0 24px}.auth-flow .avatar-picker button{padding:3px;min-width:0;width:100%;height:auto;aspect-ratio:1;border:2px solid transparent;border-radius:50%;background:transparent}.auth-flow .avatar-picker .selected{border-color:#8a5164;background:#f4e0e8}.auth-flow .avatar-picker .avatar{width:100%;height:100%;aspect-ratio:1}.auth-reconnect{grid-row:2;align-self:center;width:min(100%,412px);margin:auto;padding:24px}.auth-reconnect .primary{margin-top:24px}.auth-reconnect [role=status]{display:flex;gap:8px;align-items:center}.auth-reconnect [role=status] svg{width:20px}@keyframes account-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.intro-step-2:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent 38%,#f5d5cf18 48%,#f5d5cfe8 65%,#f5d5cf 79%)}.intro-step-2 .intro-heading,:root[data-large-text=true] .intro-step-2 .intro-heading{grid-row:4;padding:12px 24px 20px;align-self:end}.intro-step-2 .intro-heading h1,:root[data-large-text=true] .intro-step-2 .intro-heading h1{font:600 2rem/1.1 Outfit,sans-serif;color:#28212a}.intro-step-2 .intro-heading h1 span{display:inline}.intro-step-2 .intro-heading h1 span+span:before{content:" "}.intro-step-2 .intro-heading p,:root[data-large-text=true] .intro-step-2 .intro-heading p{font-size:calc(16px * var(--grow));line-height:1.4;max-width:100%;color:#4b3740;margin-top:10px}.intro-step-2 .intro-footer,:root[data-large-text=true] .intro-step-2 .intro-footer{width:min(352px,calc(100% - 48px))}.intro-step-2 .intro-footer .primary{min-height:52px}@media(max-height:650px){.auth-field-content{padding-top:12px}.auth-flow h1{margin-top:14px;font-size:1.625rem}.auth-symbol{width:44px;height:44px}.auth-description{margin-bottom:16px}.auth-choice-sheet{padding-top:16px}.auth-choice-actions{margin-top:16px}.auth-action-bar{padding-top:8px;padding-bottom:calc(var(--safe-bottom) + 12px)}}@media(prefers-reduced-motion:reduce){.auth-field-content{animation:none}}@media(max-width:360px){.auth-flow .avatar-picker{width:calc(100% + 8px);margin-inline:-4px;gap:3px}.auth-flow .avatar-picker button{min-width:44px;min-height:44px}}.terms-agree{display:flex;align-items:flex-start;gap:12px;margin-top:16px;text-align:left}.terms-agree input{width:22px;height:22px;min-height:0;margin:2px 0 0;padding:0;flex-shrink:0;accent-color:var(--accent)}.terms-agree label{font-size:var(--t-support);line-height:1.5;color:var(--muted)}.inline-link{display:inline;background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.social-sign-in{display:grid;gap:10px}.auth-flow .social-button{width:100%;min-height:52px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;border:1px solid #c9c4cb;background:#fff;color:#211f24;box-shadow:none;font:500 1.0625rem/1.3 -apple-system,BlinkMacSystemFont,DM Sans,sans-serif}.auth-flow .social-button.apple{background:#000;border-color:#000;color:#fff}.auth-flow .social-button:disabled{background:#f4f2f4;color:#51615a}.social-consent{margin:0;color:#51615a;font-size:.8125rem;line-height:1.4;text-align:center}.social-divider{display:flex;align-items:center;gap:12px;color:#51615a;font-size:.8125rem}.social-divider:before,.social-divider:after{content:"";flex:1;height:1px;background:#d9d4da}.auth-flow .auth-forgot{align-self:flex-start;margin-top:4px;color:#285c4e;font-size:.9375rem}.auth-optional-label{font-size:.9375rem;color:#211f24;margin-top:8px}.auth-optional-label span,.auth-field-note{color:#51615a}.auth-field-note{margin:0;font-size:.8125rem}:root{--t-eyebrow: .75rem;--t-support: .875rem;--t-body: 1rem;--t-section: 1.25rem;--t-screen: calc(28px * var(--grow));--t-display: calc(40px * var(--grow))}.app .primary,.app .secondary{font-size:calc(16px * var(--grow))}.home-stats{min-width:0;min-height:0;padding:0;gap:5px;border:0;border-radius:0;background:none;box-shadow:none;font-size:calc(18px * var(--grow));font-weight:600;line-height:1;color:#292a2d}.home-stats svg{width:20px;height:20px;color:#b47e27}.profile-shortcut{font-size:.875rem}.home-actions,:root[data-large-text=true] .home-actions{width:min(232px,calc(100% - 64px))}.home-actions .primary,.home-actions .secondary,:root[data-large-text=true] .home-actions .primary,:root[data-large-text=true] .home-actions .secondary{min-height:46px;line-height:1.2;padding:10px 20px;font-size:calc(14px * var(--grow))}.auth-flow .primary{background:#285c4e;color:#fffdf7}.home-actions .multiplayer-choice span{text-align:center}.auth-flow .primary:hover:not(:disabled){background:#326b59}.auth-flow .primary:disabled{background:#dce5df;color:#51615a}.journey-screen{position:relative;display:block;overflow:hidden;-webkit-user-select:none;user-select:none}.journey-screen .screen-header{position:absolute;top:0;left:0;z-index:5;width:100%;max-width:none;padding:calc(var(--safe-top) + 8px) 20px 8px;background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none}.journey-screen .screen-header h1{font:600 calc(18px * var(--grow))/1.2 "Outfit",sans-serif;text-shadow:0 1px 5px #f3f5e9}.journey-screen .star-total{min-height:44px;font-size:calc(16px * var(--grow));justify-content:end}.journey-screen[data-scrolled=true] .screen-header>div,.journey-screen[data-scrolled=true] .star-total{visibility:hidden}.journey-scroll{position:absolute;inset:0;padding:0;touch-action:pan-y;scroll-padding:calc(var(--safe-top) + 80px) 0 40px}.journey-map{padding:calc(var(--safe-top) + 70px) 24px calc(var(--safe-bottom) + 24px);overflow:hidden}.journey-stop,:root[data-large-text=true] .journey-stop{height:174px;gap:24px;padding-inline:4px}.level-node{width:118px;height:118px;padding:5px;border:3px solid #afc7b8;background:#dce9df;box-shadow:0 4px #95ad9d}.current .level-node{border-color:#48765c;box-shadow:0 4px #779681,0 0 0 6px #bed6be80}.locked .level-node{filter:none}.vessel-portrait{display:block;width:100%;height:100%;border-radius:50%;background:#dce9df}.vessel-portrait img{display:block;width:100%;height:100%;border-radius:50%}.vessel-vote>.vessel-portrait{width:86px;max-width:100%;height:86px;margin:0 0 8px}.level-number{width:28px;height:28px;right:-2px;bottom:-4px;font-size:calc(15px * var(--grow))}.level-number svg{width:13px;height:13px}.level-label strong{font-size:calc(16px * var(--grow));line-height:1.2}.level-label>span{font-size:calc(12px * var(--grow))}.level-label .stars{gap:3px}.level-label .stars svg{width:16px;height:16px}.play-screen .screen-header h1{font-size:calc(18px * var(--grow))}.play-screen .screen-header .eyebrow,.play-goal{font-size:calc(12px * var(--grow))}.play-controls{grid-template-columns:minmax(44px,1fr) 88px minmax(84px,1fr);max-width:380px;gap:14px;padding:20px 20px calc(var(--safe-bottom) + 24px)}.pour-button{width:88px;height:88px;padding:8px;gap:4px;border:1px solid #b2c7b3;background:#f4f6ec;color:#285c4e;box-shadow:0 3px #abc1aa,inset 0 1px #fff}.pour-button span{font-size:calc(16px * var(--grow))}.pour-button svg{width:25px;height:25px}.pour-button.pouring{background:#dcebdd;transform:translateY(2px);box-shadow:0 1px #abc1aa}.pour-button:disabled{background:#e6ecdf}.finish-button,.finish-button:disabled{min-height:70px;background:none;box-shadow:none;border:0}.finish-button span{font-size:calc(13px * var(--grow));color:var( --play-muted )}.finish-button svg{width:44px;height:44px;padding:11px;border-radius:50%;background:#dce8d7;color:#285c4e}.finish-button:disabled svg{opacity:.55}.tap-count span{font-size:calc(12px * var(--grow))}.tap-count strong{font-size:calc(26px * var(--grow))}.coach-mark{width:max-content;max-width:164px;font-size:calc(13px * var(--grow));line-height:1.35;padding:9px 12px;border-radius:12px;box-shadow:0 4px 16px #243d3020}.coach-anchor:last-child .coach-mark{max-width:150px}.teaching:after{inset:-7px}.modal{position:fixed;inset:var(--safe-top) 0 var(--safe-bottom);margin:auto;height:fit-content;width:min(340px,calc(100% - 40px));max-width:340px;max-height:calc(var(--viewport-height, 100dvh) - var(--safe-top) - var(--safe-bottom) - 32px);padding:20px;border-radius:24px;border:1px solid #ffffffb3;background:#f8f7f1;color:#29332f;box-shadow:0 18px 60px #19362d38;font-size:.9375rem}.modal:before{display:none}.modal::backdrop{background:#142f2959;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-top{gap:8px;margin-bottom:12px}.modal-top h2{font-size:1.25rem;line-height:1.2;min-width:0}.modal-top .icon-button{width:44px;height:44px;min-width:44px;background:#e9eee6;border:0;box-shadow:none}.app .modal .primary,.app .modal .secondary{min-height:44px;padding:11px 28px;font-size:.875rem;line-height:1.25;box-shadow:0 2px #cad3c5}.modal .primary svg,.modal .secondary svg{width:16px;height:16px;left:11px}.modal .secondary{background:#edf1e8;border-color:#c8d4c8}.modal>.primary,.modal>.secondary{margin-top:10px}.modal .button-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.app .modal .button-row button{min-width:0;padding-inline:26px 10px;font-size:.8125rem}.modal .text-button{min-height:44px;font-size:.875rem}.modal .result-copy,.modal .challenge{font-size:.9375rem;line-height:1.4;margin:12px 0}.pause-menu .vessel-portrait{width:96px;height:96px;margin:6px auto 18px;border:1px solid #b2c7b3}.modal>.vessel-art{width:110px;height:110px}.level-preview>.vessel-portrait{width:110px;height:110px;margin:10px auto 18px}.modal .eyebrow{font-size:.75rem}.modal .result-icon{width:88px;height:88px;border-radius:18px}.modal .result-art{width:72px;height:72px}.modal .result-art svg{width:38px;height:38px}.modal .result-score strong{font-size:2rem}.modal>.stars{margin:18px 0}.modal>.stars svg{width:42px;height:42px}.modal .previous-best{padding:12px;gap:30px}.modal .previous-best strong{font-size:1.5rem}.modal .save-journey{gap:4px}.modal .save-journey small{font-size:.75rem;text-wrap:balance}.modal .setting-row,:root[data-large-text=true] .modal .setting-row{min-height:54px;padding:10px 0;gap:12px;font-size:.9375rem}.modal .setting-row>span{min-width:0;gap:8px}.modal .setting-row select{width:114px;flex-shrink:0;padding:8px 10px;min-height:44px;font-size:.8125rem}.modal label{font-size:.875rem}.modal input{min-height:46px;font-size:1rem;padding:12px}.modal input[type=checkbox]{min-height:0;padding:0}.modal .level-challenge,.modal .delete-warning{font-size:.9375rem;line-height:1.4}.modal .danger-button{min-height:44px;font-size:.875rem}.modal .profile-row{padding:8px 0;background:none;border-radius:0}.modal .profile-row strong{font-size:.9375rem}.modal .version{font-size:.75rem;margin:12px 0}@media(max-width:360px){.journey-map{padding-inline:16px}.journey-stop,:root[data-large-text=true] .journey-stop{gap:18px}.level-node{width:108px;height:108px}.level-label strong{font-size:calc(15px * var(--grow))}.modal{width:calc(100% - 32px);padding:16px}}.modal.feedback-sheet{inset:auto 0 0;margin:auto auto 0;width:min(480px,100%);max-width:480px;border-radius:28px 28px 0 0;padding:20px 20px calc(18px + var(--safe-bottom, env(safe-area-inset-bottom)));display:flex;flex-direction:column;gap:12px}.modal.feedback-sheet .result-copy{margin:0 0 4px;text-align:left}.result-tip{margin:0 0 14px;font-size:var(--t-support);line-height:1.45;color:#4a5f56;text-align:center}.result-stats{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:8px;margin:0 0 18px}.modal .result-stats p{display:flex;flex-direction:column;align-items:center;gap:4px;margin:0;min-width:0}.result-stats strong{display:inline-flex;align-items:center;gap:3px;font:700 calc(26px * var(--grow))/1.1 "Outfit",sans-serif;color:var(--ink);font-variant-numeric:tabular-nums}.result-stats span{font-size:calc(12px * var(--grow));font-weight:600;letter-spacing:.08em;color:var(--muted);white-space:nowrap}.result-streak svg,.home-streak svg{width:18px;height:18px;color:#d9692c}.home-streak{margin-left:-4px}.modal.feedback-sheet::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none;background:#1d2b2614}.modal:focus{outline:none}.journey-progress{display:block;margin-top:2px;font-size:calc(12px * var(--grow));font-weight:500;color:var(--muted);text-shadow:0 1px 4px #f3f5e9}.journey-bar{display:block;width:96px;height:4px;border-radius:var(--r-round);background:#d6e2da;overflow:hidden}.journey-bar i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.modal .previous-best{margin:4px 0 0;font-size:.8125rem;color:var(--muted)}.home-actions .streak-note{margin:0;text-align:center;font-family:DM Sans,sans-serif;font-weight:600;font-size:calc(13px * var(--grow));line-height:1.2;color:#24262b}.home-actions .solo-choice:has(small){flex-direction:column;gap:1px;padding-block:6px}.home-actions .solo-choice small{font-family:DM Sans,sans-serif;font-weight:500;font-size:calc(12px * var(--grow));line-height:1.2}.rewind-button{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;text-align:left}.rewind-button svg{grid-row:span 2}.rewind-button small{grid-column:2;color:#51615a;font-size:calc(13px * var(--grow));font-weight:400}.modal .setting-row select{width:8.8em}:root[data-large-text=true] .modal .setting-row:has(select){flex-wrap:wrap}:root[data-large-text=true] .modal .setting-row select{width:100%}.fill-guide-label{position:absolute;z-index:2;transform:translateY(-50%);padding:2px 0 2px 8px;border-left:2px solid #f2b632;color:#24262b;font:600 calc(13px * var(--grow)) / 1.2 "Outfit",sans-serif;text-shadow:0 0 6px var(--play-bg, #b5c7bd),0 0 2px var(--play-bg, #b5c7bd);pointer-events:none;white-space:nowrap}.play-screen{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.online-screen .screen-header{gap:10px;padding-left:16px;padding-right:16px}.online-screen .screen-header h1{font-size:calc(19px * var(--grow));line-height:1.15;overflow-wrap:anywhere}.online-screen .screen-header .eyebrow{font-size:calc(12px * var(--grow))}.lobby-content .invite-actions .secondary>svg{position:static}.lobby-content .invite-actions .secondary{gap:8px}.round-reveal{padding:24px 20px;text-align:center}.round-reveal>.vessel-portrait{width:min(210px,70%);height:auto;aspect-ratio:1;margin:24px auto}.round-reveal h2{font-size:calc(24px * var(--grow));margin:0 0 8px}.round-reveal p{font-size:calc(15px * var(--grow));color:#41584e}.round-reveal>strong{display:block;font-size:calc(17px * var(--grow));margin:20px 0;font-variant-numeric:tabular-nums}.online-screen .screen-header>.voice-controls{flex:0 0 auto;display:flex;align-items:center;gap:3px}.voice-button{width:44px;height:44px;padding:0;border:1px solid #24594e24;border-radius:50%;background:#f5f4ed;color:#24594e;display:flex;align-items:center;justify-content:center;flex-shrink:0}.voice-button.active{background:#24594e;color:#fff}.voice-button svg{width:19px;height:19px;flex-shrink:0}.voice-speaker{width:68px;gap:2px;border-radius:24px}.voice-output{width:44px;height:44px;padding:0;flex:0 0 44px;border:0;border-radius:50%;background:transparent;color:inherit;display:grid;place-items:center}.voice-wave{display:flex;align-items:center;gap:2px;width:18px;height:22px}.voice-wave i{width:3px;background:currentColor;border-radius:2px;transition:height 90ms linear}.voice-notice{position:absolute;top:calc(var(--safe-top) + 68px);right:16px;width:min(320px,calc(100% - 32px));display:flex;align-items:center;padding:10px 4px 10px 14px;font-size:calc(13px * var(--grow));text-align:left;line-height:1.4;color:#203b34;background:#f7f6f0;border-radius:8px;box-shadow:0 5px 22px #162d2b25;z-index:20}.voice-notice button{flex:0 0 44px;height:44px;border:0;background:none;color:inherit}.voice-notice svg{width:18px}.online-screen .lobby-content{max-width:460px;margin:8px auto 0;padding:0 20px calc(var(--safe-bottom) + 18px)}.lobby-content .room-code-value{margin:2px 0 8px;gap:8px}.lobby-content .room-code-value>strong{font-size:calc(26px * var(--grow))}.lobby-content .invite-actions{margin:0 auto 8px}.lobby-content .invite-actions .secondary{min-height:44px;padding:8px 18px;font-size:calc(14px * var(--grow))}.lobby-content .players{padding:10px 0 18px;flex-wrap:nowrap;gap:7px}.lobby-content .player{flex:1;max-width:68px}.lobby-content .player .avatar{width:40px;height:40px}.lobby-content .player strong,.lobby-content .player small{font-size:calc(12px * var(--grow))}.lobby-content .vote-heading,.voting-content .vote-heading{font-size:calc(15px * var(--grow));margin-bottom:10px}.room-vote-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.room-vote-grid .vessel-vote{border-radius:8px;padding:9px 5px}.room-vote-grid .vessel-vote>.vessel-portrait{width:min(86px,100%);height:auto;aspect-ratio:1;margin:0 0 8px}.room-vote-grid .vessel-vote strong{font-size:calc(12px * var(--grow));line-height:1.25;min-height:30px}.room-vote-grid .vessel-vote>span:last-child{font-size:calc(12px * var(--grow));height:20px;margin-top:3px}.lobby-content>.primary{width:min(236px,100%);min-height:46px;margin:12px auto 0;font-size:calc(15px * var(--grow))}.lobby-content>.muted{font-size:calc(13px * var(--grow));margin:14px 0 0}.round-rules{font-size:calc(12px * var(--grow));color:#54615a;margin:12px 0 0}.online-playing .screen-header{flex-shrink:0}.online-playing .turn-banner{justify-content:space-between;font-size:calc(14px * var(--grow));text-align:left}.round-clocks{display:flex;gap:6px;flex-shrink:0}.round-clocks strong{border-radius:8px;min-width:52px;min-height:42px;font-size:calc(15px * var(--grow));line-height:1.1;font-variant-numeric:tabular-nums}.round-clocks small{font:400 calc(12px * var(--grow)) "DM Sans"}.online-playing .play-stage{min-height:0}@media(prefers-reduced-motion:reduce){.voice-wave i{transition:none}}.mp-hub{max-width:430px;min-height:calc(100dvh - 76px);margin:0 auto;padding:0 24px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.mp-hub .friends-world{margin-bottom:8px}.mp-hub-copy{margin:0;color:#3f554c;font-size:var(--t-body);line-height:1.5;text-align:center}.mp-actions{margin-top:auto;padding-top:20px;display:flex;flex-direction:column;gap:12px}.mp-actions .mp-match{align-self:center;color:var(--ink);text-decoration:none;font-weight:600}.mp-actions .mp-match svg{width:18px;height:18px}.mp-actions .room-size{margin:0;text-align:center;font-size:var(--t-support);color:#4a5f56}.join-sheet form{display:flex;flex-direction:column;gap:14px}.join-sheet label{font-size:var(--t-support);color:#4a5f56}.code-cells{position:relative;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.code-cells input{position:absolute;inset:0;opacity:0;width:100%;height:100%;font-size:calc(16px * var(--grow))}.code-cells span{height:56px;border-radius:14px;border:1.5px solid #cfc3b6;background:#fffaf3;display:grid;place-items:center;font-family:Outfit,sans-serif;font-size:1.5rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.code-cells span.filled{border-color:#285c4e66}.code-cells:focus-within span.active{border-color:#285c4e;box-shadow:0 0 0 3px #285c4e26}.lobby{max-width:460px;margin:0 auto;padding:4px 20px 0;display:flex;flex-direction:column;gap:14px}.lobby-card{background:#fffaf3;border:1px solid #e3d5c8;border-radius:22px;padding:16px 16px 18px;box-shadow:0 6px 18px #4a372b12}.lobby-card .eyebrow{margin-bottom:4px}.lobby-code-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.lobby-code{font-family:Outfit,sans-serif;font-size:2.25rem;letter-spacing:.08em;color:var(--ink);font-variant-numeric:tabular-nums;display:flex;align-items:center}.lobby-code span{display:inline-block;width:.35em}.code-copy{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid #c5bdb0;background:#fff;color:var(--ink);font-weight:600;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.code-copy svg{width:16px;height:16px}.lobby-card .invite-button{width:100%}.lobby-public strong{display:block;font-family:Outfit,sans-serif;font-size:1.5rem;color:var(--ink);margin-bottom:4px}.lobby-public p{margin:0;color:#4a5f56;font-size:var(--t-support)}.lobby-table .room-stage{max-width:min(210px,52vw);margin:0 auto;border-radius:24px}.seat-row{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.seat{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.seat-dot,.seat-open{width:44px;height:44px;border-radius:50%}.seat-dot{background:radial-gradient(circle at 35% 30%,#c9f3e4,#59c3a6 70%);box-shadow:inset 0 -2px #3d9f86}.seat.away .seat-dot{filter:grayscale(1);opacity:.5}.seat-name{max-width:100%;font-size:.75rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-open{border:1.5px dashed #a99c8e;background:transparent;color:#6a5d50;display:grid;place-items:center;padding:0;cursor:pointer}.seat-open svg{width:18px;height:18px}.lobby-vote .vote-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px}.lobby-vote h2{margin:0;font-size:1.05rem;color:var(--ink)}.lobby-vote .vote-heading span{font-size:.8rem;color:#4a5f56}.lobby-footer{position:sticky;bottom:0;margin:0 -20px;padding:18px 20px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(#eadbd500,#eadbd5 28%);display:flex;flex-direction:column;gap:8px;z-index:10}.lobby-footer .primary{width:100%}.lobby-note,.lobby-waiting{margin:0;text-align:center;font-size:var(--t-support);color:#4a5f56}.lobby-waiting{min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;background:#fffaf3;border:1px solid #e3d5c8;color:var(--ink);font-weight:600}.lobby-waiting svg{width:18px;height:18px;animation:spin 1.1s linear infinite}@media(prefers-reduced-motion:reduce){.lobby-waiting svg{animation:none}}button.player-tap,button.seat-tap{background:none;border:0;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;border-radius:var(--r-control)}button.seat-tap{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:44px;max-width:100%}button.player-tap:focus-visible,button.seat-tap:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.player-sheet .player-sheet-head{display:grid;place-items:center;margin:4px 0 8px}.modal .sheet-copy{font-size:.9375rem;line-height:1.45;color:var(--ink);margin:0 0 4px}.player-sheet .danger-button{margin:14px 0 0;min-height:44px;border-radius:var(--r-small)}.app .player-sheet .sheet-report,.player-sheet .sheet-report{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px}.player-sheet .sheet-report svg{width:18px;height:18px}.report-reasons{border:0;margin:0 0 8px;padding:0;display:grid;gap:6px}.report-reasons legend{font-weight:600;margin-bottom:8px;color:var(--ink)}.modal .report-reason,.modal .report-block{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 14px;border:1px solid var(--field-border);border-radius:var(--r-small);background:#fff;color:var(--ink);font-size:.9375rem;cursor:pointer}.modal .report-block{border-style:dashed;background:transparent;margin-bottom:4px}.modal .report-reason:has(input:checked){border-color:var(--accent);background:#eef8f3}.modal .report-reason input,.modal .report-block input{width:20px;height:20px;margin:0;flex-shrink:0;accent-color:var(--accent)}.blocked-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.blocked-list li{display:flex;align-items:center;gap:12px;min-height:56px}.blocked-list .blocked-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.app .modal .blocked-list .secondary{width:auto;min-height:44px;padding:8px 16px;box-shadow:none}.legal-sheet .legal-updated{color:var(--muted);font-size:.8125rem;margin:0 0 8px}.legal-sheet h3{font-family:Outfit,sans-serif;font-size:1rem;color:var(--ink);margin:18px 0 6px}.legal-sheet p,.legal-sheet li{font-size:.9375rem;line-height:1.5;color:#29332f;margin:0 0 8px}.legal-sheet ul{padding-left:20px;margin:0 0 8px}.blocked-list .avatar{flex-shrink:0}.blocked-list .blocked-name,.legal-sheet section,.legal-sheet .legal-updated{text-align:left}.legal-sheet .modal-top{position:sticky;top:-20px;z-index:1;margin:-20px -20px 4px;padding:20px 20px 8px;background:#f8f7f1;border-bottom:1px solid var(--hairline)}.lobby-code-row{flex-wrap:wrap}.lobby-code{font-size:calc(36px * var(--grow))}.online-screen .primary:disabled{background:#d9ded6;color:#51615a;border-color:#b7c0b6}.room-stage{position:relative;width:100%;aspect-ratio:1;isolation:isolate;overflow:hidden}.room-table-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.plate-guests{list-style:none;margin:0;padding:0;position:absolute;inset:0}.plate-guest{position:absolute;width:22%;transform:translate(-50%,-50%);text-align:center}.guest-water{position:relative;width:100%;aspect-ratio:1}.guest-body{position:absolute;inset:0;transform-origin:50% 87%;animation:guest-bounce 3.2s ease-in-out infinite;animation-delay:var(--drop-delay)}.guest-body img{width:100%;height:100%;object-fit:contain;filter:hue-rotate(var(--drop-hue))}.guest-shadow{position:absolute;width:60%;height:8%;left:20%;bottom:7%;background:#153d3433;border-radius:50%;filter:blur(2px);animation:guest-shadow 3.2s ease-in-out infinite;animation-delay:var(--drop-delay)}.guest-bead{position:absolute;left:49%;top:10%;width:21%;aspect-ratio:1;border-radius:45% 55% 48% 52%;background:radial-gradient(circle at 30% 25%,#ffffffed 0 8%,var(--drop-tint) 35%,#ffffff77 68%,var(--drop-tint) 90%);box-shadow:inset -1px -2px 2px #14574044;animation:guest-bead 3.2s ease-in-out infinite;animation-delay:var(--drop-delay)}.guest-ripple{position:absolute;left:26%;top:56%;width:45%;height:14%;border:1px solid #e4fff688;border-radius:50%;transform:rotate(-15deg);animation:guest-ripple 3.2s ease-in-out infinite;animation-delay:var(--drop-delay)}.guest-name{display:block;font-size:calc(12px * var(--grow));font-weight:600;line-height:1.2;color:#203d35;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;margin-top:-4px}.plate-guest small{font-size:calc(12px * var(--grow));color:#374f48}.plate-guest.disconnected .guest-water{opacity:.45}.room-stage.still *,.plate-guest.disconnected *{animation:none!important}.room-stage.still .guest-bead{opacity:0}@keyframes guest-bounce{0%,to{transform:translateY(0) scale(1) skew(0)}18%{transform:translateY(1px) scale(1.06,.94) skew(-2deg)}42%{transform:translateY(-9px) scale(.94,1.07) skew(2deg)}62%{transform:translateY(-2px) scale(1.04,.96) skew(-1deg)}78%{transform:translateY(0) scale(.99,1.01)}}@keyframes guest-bead{0%,18%,76%,to{transform:translateY(6px) scale(.2);opacity:0}36%{transform:translate(1px,-2px) scale(.85,1.12);opacity:.9}47%{transform:translate(-1px,-11px) scale(1);opacity:1}61%{transform:translate(-2px,2px) scale(.55,1.15);opacity:.6}}@keyframes guest-shadow{0%,to{transform:scale(1);opacity:.7}42%{transform:scale(.7);opacity:.35}}@keyframes guest-ripple{0%,20%,85%,to{opacity:0;transform:scale(.6) rotate(-15deg)}58%{opacity:.6;transform:scale(1.1) rotate(8deg)}}@media(prefers-reduced-motion:reduce){.room-stage *{animation:none!important}.guest-bead{opacity:0}}.introduction:not(.intro-step-0){background:#e9dcd5}.introduction:after{content:none}.introduction .intro-art-space,:root[data-large-text=true] .introduction .intro-art-space{background:none}.introduction:not(.intro-step-0) .intro-heading,:root[data-large-text=true] .introduction:not(.intro-step-0) .intro-heading{grid-row:2;align-self:start;padding:12px 24px 8px}.introduction:not(.intro-step-0) .intro-heading h1,:root[data-large-text=true] .introduction:not(.intro-step-0) .intro-heading h1{font:600 calc(28px * var(--grow))/1.12 "Outfit",sans-serif;max-width:310px;margin:0 auto;color:#263a33}.introduction:not(.intro-step-0) .intro-heading p,:root[data-large-text=true] .introduction:not(.intro-step-0) .intro-heading p{color:#36493f;font-size:calc(14px * var(--grow));line-height:1.4;max-width:320px;margin:9px auto 0}.introduction .intro-footer,:root[data-large-text=true] .introduction .intro-footer{width:min(224px,calc(100% - 64px));padding-bottom:calc(var(--safe-bottom) + 22px)}.introduction .intro-footer .primary{background:#24594e;color:#fff;min-height:46px;font-size:calc(16px * var(--grow));border-radius:999px}.introduction .intro-practice-controls{gap:18px;padding:6px 20px}.introduction .intro-practice-controls .pour-button{width:66px;height:66px}.introduction .intro-practice-controls .pour-button span{font-size:calc(12px * var(--grow))}.intro-game-hud{position:absolute;top:8px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:calc(12px * var(--grow));color:#29483d;pointer-events:none}.intro-game-hud strong{font-size:calc(17px * var(--grow));font-variant-numeric:tabular-nums}.intro-room-scene{grid-row:3;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}.intro-room-scene .room-stage{width:min(100%,40dvh,390px);flex-shrink:0}.intro-room-ballot{grid-row:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(330px,calc(100% - 40px));margin:0 auto 8px}.intro-room-ballot button{position:relative;min-width:0;border:1px solid #52746433;border-radius:8px;background:#f4f2e9;color:#29483d;padding:7px;display:grid;justify-items:center;gap:5px;font-size:calc(12px * var(--grow));line-height:1.2}.intro-room-ballot button[aria-pressed=true]{border:2px solid #24594e;padding:6px}.intro-room-ballot .vessel-portrait{width:50px;height:50px}.intro-room-ballot svg{position:absolute;width:14px;right:4px;top:4px}.private-setup{width:min(400px,100%);margin:0 auto;padding:0 24px calc(var(--safe-bottom) + 22px);display:flex;align-items:stretch;flex-direction:column;gap:16px}.online-entry.is-private{width:100%;padding:0}.private-plate-preview{width:min(100%,27dvh);aspect-ratio:1;object-fit:cover;align-self:center}.private-setup>.secondary{align-self:center;min-height:46px;padding:8px 26px;font-size:calc(15px * var(--grow))}.generated-invitation{width:100%;text-align:center}.generated-code{display:flex;align-items:center;justify-content:center;gap:10px}.generated-code>strong{font-size:calc(25px * var(--grow));font-variant-numeric:tabular-nums}.generated-code .icon-button{width:44px;height:44px;min-height:44px}.generated-code .icon-button svg{width:19px}.private-setup .invitation-link{border:0;background:transparent;border-radius:0;min-height:34px;height:34px;padding:4px 0;font-size:calc(12px * var(--grow));color:#42584e;text-align:center;box-shadow:none}.private-setup .text-button{min-height:40px;padding:6px 12px;font-size:calc(12px * var(--grow))}.private-join-form{display:flex;flex-direction:column;gap:10px}.private-join-form label{font-size:calc(14px * var(--grow));font-weight:500;color:#29483d}.private-join-form input{min-width:0;width:100%;height:48px;min-height:48px;border-radius:24px;border:1px solid #24594e33;background:#f6f3eb;font-size:calc(16px * var(--grow));padding:10px 18px}.private-join-form .primary{width:min(236px,100%);min-height:46px;margin:16px auto 0;font-size:calc(15px * var(--grow))}.online-screen .lobby-content{position:relative;margin:0 auto;padding:0 20px calc(var(--safe-bottom) + 14px);width:100%}.lobby-content>.room-stage{width:min(100%,34dvh,310px);margin:0 auto 8px}.room-invitation-menu{margin:0 0 6px;text-align:center}.room-invitation-menu summary{display:inline-flex;align-items:center;gap:8px;list-style:none;min-height:36px;font-size:calc(12px * var(--grow));color:#34594b;cursor:pointer}.room-invitation-menu summary::-webkit-details-marker{display:none}.room-invitation-menu summary svg{width:15px;height:15px}.room-invitation-menu[open] .room-code{position:absolute;left:20px;right:20px;top:36px;z-index:5;background:#f6f1e9;padding:14px;border-radius:8px;box-shadow:0 8px 30px #193e3429}.lobby-content .room-vote-grid .vessel-vote>.vessel-portrait{width:min(62px,100%);margin-bottom:4px}.lobby-content .room-vote-grid .vessel-vote{padding:6px 4px}.lobby-content .room-vote-grid .vessel-vote strong{font-size:calc(12px * var(--grow));min-height:27px}.lobby-content .room-vote-grid .vessel-vote>span:last-child{font-size:calc(12px * var(--grow));margin-top:2px;height:17px}.lobby-content>.muted{margin-top:9px;font-size:calc(12px * var(--grow));min-height:18px}.lobby-content>.primary{margin-top:8px}.lobby-content .round-rules{margin-top:9px;font-size:calc(12px * var(--grow))}@media(max-height:710px){.introduction:not(.intro-step-0) .intro-heading h1{font-size:calc(24px * var(--grow))}.introduction .intro-heading p{font-size:calc(13px * var(--grow))}.intro-room-ballot .vessel-portrait{width:38px;height:38px}.intro-room-scene .room-stage{width:min(100%,34dvh)}.lobby-content>.room-stage{width:min(100%,28dvh)}.private-plate-preview{width:min(100%,22dvh)}.private-setup{gap:8px}}.journey-screen{--floor: #efcdbf;--plinth: #f8ebe4;--plinth-edge: #e3c3b5;--plinth-side: #c99c8a;--coping: #f6e9df;--coping-shadow: #c49a89;--mosaic: #5e978a;--mosaic-grout: #f4ece4;background:var(--floor)}.journey-scroll{background-color:var(--floor);background-image:url(/art/terrazzo.webp);background-size:320px}.journey-screen .screen-header h1,.journey-screen .star-total,.journey-screen .journey-progress{text-shadow:0 0 6px var(--floor),0 1px 2px var(--floor)}.river-bank-shadow{stroke:var(--coping-shadow);stroke-width:86px;opacity:.55;transform:translateY(5px)}.river-bank{stroke:var(--coping);stroke-width:80px}.river-mosaic{stroke:var(--mosaic);stroke-width:68px}.journey-river .river-grout{stroke:var(--mosaic-grout);stroke-width:68px;stroke-linecap:butt;stroke-dasharray:1.5 8;opacity:.9}.river-channel{stroke-width:50px}.level-node{border:3px solid var(--plinth-edge);background:var(--plinth);box-shadow:0 6px 0 var(--plinth-side),0 14px 18px -6px #8a5a4a55}.journey-screen .vessel-portrait{background:radial-gradient(circle at 50% 38%,#fffaf6,#f3e3da 72%)}.current .level-node{border-color:#23604f;box-shadow:0 6px #1b4a3d,0 0 0 7px #23604f33,0 14px 18px -6px #8a5a4a55}.locked .level-node{background:#ead8cf;border-color:#d6bbae;box-shadow:0 5px #b99383,0 10px 14px -6px #8a5a4a40}.locked .vessel-portrait img{opacity:.62}.level-number{border-color:var(--plinth-edge);background:#fffaf6;color:#24262b}.current .level-number{border-color:#23604f;background:#23604f;color:#fff}.level-label strong,.level-label>span,.level-label .stars{text-shadow:0 0 6px var(--floor),0 0 2px var(--floor)}.level-label>span{color:#5a4741}.current .level-label>span{color:#1d5143}.level-label .stars svg{color:#b5822f}.journey-end{background:var(--plinth);box-shadow:0 6px 0 var(--plinth-side)}
