:root{--bark: #4a3728;--bark-soft: #7a6553;--paper: #f6f1e4;--paper-raised: #fffdf7;--moss: #2f5d3f;--moss-light: #4e8a62;--moss-tint: #e3efe6;--clay: #c2663a;--clay-tint: #f7e6dc;--sky: #3d6d8f;--sky-tint: #e2edf4;--sand: #e8dcc0;--gold: #d9a441;--ink: #241c14;--radius: 16px;--radius-lg: 24px;--tap: 44px;--shadow: 0 2px 0 rgba(74, 55, 40, .18);--font: "Trebuchet MS", "Segoe UI", system-ui, -apple-system, sans-serif;--font-letter: "Comic Sans MS", "Trebuchet MS", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{font-family:var(--font);background:var(--paper);color:var(--ink);font-size:18px;line-height:1.5;overscroll-behavior:none}.no-scroll{overflow:hidden;touch-action:manipulation}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}.app{height:100%;display:flex;flex-direction:column}.btn{min-height:var(--tap);min-width:var(--tap);padding:14px 24px;border-radius:var(--radius);background:var(--paper-raised);border:2px solid var(--bark-soft);box-shadow:var(--shadow);font-weight:600;transition:transform .08s ease}.btn:active{transform:translateY(2px);box-shadow:none}.btn-primary{background:var(--moss);border-color:var(--moss);color:#fff}.btn-big{font-size:24px;padding:20px 40px;border-radius:var(--radius-lg)}.btn-quiet{background:transparent;border-color:transparent;box-shadow:none;color:var(--bark-soft);text-decoration:underline}.btn:disabled{opacity:.45;cursor:default}.screen{flex:1;display:flex;flex-direction:column;padding:20px 24px;gap:16px;min-height:0}.topbar{display:flex;align-items:center;gap:16px;min-height:56px}.topbar h1{font-size:22px;margin:0;flex:1}.goal{background:var(--sand);border-radius:var(--radius);padding:8px 16px;font-size:15px;font-weight:600;color:var(--bark)}.stage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center;min-height:0}.card{background:var(--paper-raised);border:2px solid var(--sand);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow)}.row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;align-items:center}.col{display:flex;flex-direction:column;gap:12px}.spacer{flex:1}.word-big{font-size:72px;font-weight:700;letter-spacing:2px;font-family:var(--font-letter)}.grapheme{display:inline-block;padding:2px 6px;border-radius:8px}.grapheme-irregular{background:var(--clay-tint);outline:3px dashed var(--clay);outline-offset:2px;text-decoration:underline wavy var(--clay) 3px;text-underline-offset:8px}.grapheme-known{background:var(--moss-tint)}.tiles{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.tile{min-width:68px;min-height:80px;font-size:40px;font-family:var(--font-letter);font-weight:700;background:var(--paper-raised);border:3px solid var(--bark-soft);border-radius:14px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:center}.tile:active{transform:translateY(2px)}.tile-placed{background:var(--moss-tint);border-color:var(--moss)}.slots{display:flex;gap:10px;justify-content:center;min-height:92px;align-items:center}.slot{min-width:68px;min-height:80px;border:3px dashed var(--bark-soft);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:40px;font-family:var(--font-letter);font-weight:700;background:#ffffff80}.feedback{font-size:22px;font-weight:600;padding:12px 20px;border-radius:var(--radius);min-height:56px;display:flex;align-items:center;gap:10px}.feedback-good{background:var(--moss-tint);color:var(--moss)}.feedback-again{background:var(--sky-tint);color:var(--sky)}.helper{color:var(--bark-soft);font-size:16px}.pips{display:flex;gap:8px}.pip{width:14px;height:14px;border-radius:50%;background:var(--sand)}.pip-done{background:var(--moss)}.pip-now{background:var(--gold);transform:scale(1.3)}.wallet{display:flex;gap:16px;align-items:center;font-weight:700;color:var(--bark)}.wallet span{background:var(--sand);border-radius:999px;padding:6px 14px;display:inline-flex;align-items:center;gap:6px}.island-wrap{position:relative;width:fit-content;max-width:100%;border-radius:var(--radius-lg);border:2px solid var(--sand);box-shadow:var(--shadow);padding:10px}.island-wrap .island-grid{position:relative}.island-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;max-width:640px;width:100%}.island-cell{aspect-ratio:1;border-radius:10px;background:#ffffff47;border:2px solid rgba(74,55,40,.14);display:flex;align-items:center;justify-content:center}.zone-residents{position:absolute;right:12px;bottom:6px;display:flex;gap:2px;align-items:flex-end}.zone-residents,.zone-residents *{pointer-events:none;line-height:0}.island-cell-filled{background:#fffdf7b3;border-color:var(--bark-soft)}.dash{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:40px}.tabs{display:flex;gap:8px;flex-wrap:wrap}.tab{padding:10px 18px;border-radius:999px;border:2px solid var(--sand);background:var(--paper-raised);font-weight:600;min-height:var(--tap)}.tab-active{background:var(--moss);border-color:var(--moss);color:#fff}table.data{width:100%;border-collapse:collapse;font-size:15px}table.data th,table.data td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--sand);vertical-align:top}table.data th{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--bark-soft)}.chip{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid transparent}.chip-secure{background:var(--moss-tint);color:var(--moss)}.chip-retained{background:var(--sky-tint);color:var(--sky)}.chip-independent{background:var(--sand);color:var(--bark)}.chip-supported,.chip-introduced{background:#f0ece2;color:var(--bark-soft)}.chip-applied{background:var(--moss-tint);color:var(--moss-light)}.chip-none{background:transparent;color:var(--bark-soft);border-color:var(--sand);font-style:italic}.chip-warn{background:var(--clay-tint);color:var(--clay)}.note{background:var(--sky-tint);border-left:4px solid var(--sky);padding:12px 16px;border-radius:8px;font-size:15px}.warn{background:var(--clay-tint);border-left:4px solid var(--clay);padding:12px 16px;border-radius:8px;font-size:15px}.trace-wrap{position:relative;flex:none;width:min(380px,39vh,80vw);aspect-ratio:1}.trace-wrap svg,.trace-wrap canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none}.companion{position:absolute;left:18px;bottom:14px;display:flex;align-items:flex-end;gap:10px;pointer-events:none;z-index:5;max-width:44%}.companion-art{flex:none;filter:drop-shadow(0 3px 0 rgba(74,55,40,.14))}.bubble{position:relative;background:var(--paper-raised);border:2px solid var(--sand);border-radius:18px;padding:10px 16px;font-size:17px;font-weight:600;color:var(--bark);box-shadow:var(--shadow);margin-bottom:18px}.bubble:after{content:"";position:absolute;left:-9px;bottom:14px;width:14px;height:14px;background:var(--paper-raised);border-left:2px solid var(--sand);border-bottom:2px solid var(--sand);transform:rotate(45deg)}.bubble-in{animation:bubble-pop .45s cubic-bezier(.34,1.56,.64,1)}@keyframes bubble-pop{0%{transform:scale(.6) translateY(8px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.bob{animation:bob 1.6s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.screen{position:relative}.screen-foot{display:flex;flex-direction:column;align-items:center;gap:6px;padding-left:230px;min-height:20px}.pop-in{animation:pop-in .34s cubic-bezier(.34,1.56,.64,1)}@keyframes pop-in{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}.tile-drop{animation:tile-drop .22s ease-out}@keyframes tile-drop{0%{transform:translateY(-14px) scale(1.08)}70%{transform:translateY(2px) scale(.98)}to{transform:translateY(0) scale(1)}}.shake{animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.cheer{animation:cheer .5s cubic-bezier(.34,1.56,.64,1)}@keyframes cheer{0%{transform:scale(1)}45%{transform:scale(1.14) rotate(-2deg)}to{transform:scale(1) rotate(0)}}.glow{animation:glow 1.2s ease-in-out infinite}@keyframes glow{0%,to{filter:drop-shadow(0 0 0 rgba(217,164,65,0))}50%{filter:drop-shadow(0 0 10px rgba(217,164,65,.8))}}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:40}.confetti i{position:absolute;top:-20px;width:11px;height:14px;border-radius:2px;animation:fall linear forwards}@keyframes fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(105vh) rotate(540deg);opacity:.1}}.arrival{position:fixed;top:0;right:0;bottom:0;left:0;background:#241c148c;display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.arrival-card{background:var(--paper-raised);border:3px solid var(--gold);border-radius:var(--radius-lg);padding:28px 36px;max-width:480px;text-align:center;box-shadow:0 10px #4a372833;animation:arrive .5s cubic-bezier(.34,1.56,.64,1)}@keyframes arrive{0%{transform:scale(.5) translateY(30px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.album-scroll{flex:1;width:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;justify-content:center;padding-bottom:12px;min-height:0}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;width:100%;max-width:920px}.album-slot svg,.album-slot>div{flex:none}.album-slot{background:var(--paper-raised);border:2px solid var(--sand);border-radius:var(--radius);padding:12px 10px;text-align:center;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.album-slot-empty{background:repeating-linear-gradient(45deg,rgba(232,220,192,.3),rgba(232,220,192,.3) 8px,transparent 8px,transparent 16px);border-style:dashed;color:var(--bark-soft)}.album-name{font-weight:700;font-size:17px}.album-note{font-size:13px;color:var(--bark-soft);line-height:1.3}.album-word{font-family:var(--font-letter);font-weight:700;color:var(--moss);font-size:15px}.themed{background:var(--zone-wash, transparent)}.themed .goal{background:var(--zone-accent, var(--sand));color:#fff}.themed .btn-primary,.themed .tab-active{background:var(--zone-accent, var(--moss));border-color:var(--zone-accent, var(--moss))}.activity-card{width:220px;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-width:3px;transition:transform .12s ease,box-shadow .12s ease}.activity-card:active{transform:translateY(3px) scale(.98);box-shadow:none}.activity-card:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.streak{display:inline-flex;align-items:center;gap:6px;background:var(--gold);color:var(--ink);font-weight:700;border-radius:999px;padding:6px 14px;font-size:15px}.reduced-motion *{transition:none!important;animation:none!important}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}.award{position:fixed;top:0;right:0;bottom:0;left:0;background:#241c1499;display:flex;align-items:center;justify-content:center;z-index:60;padding:18px;overflow:auto}.award-body{display:flex;flex-direction:column;align-items:center}.certificate{width:min(860px,88vw);aspect-ratio:297 / 210;background:var(--paper-raised);border:10px double var(--gold);border-radius:6px;padding:10px;box-shadow:0 12px #4a372838;animation:arrive .5s cubic-bezier(.34,1.56,.64,1)}.certificate-inner{height:100%;border:2px solid var(--sand);border-radius:3px;padding:2.2% 4%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center}.cert-middle{margin:auto 0;display:flex;flex-direction:column;align-items:center;width:100%}.cert-eyebrow{margin:0;letter-spacing:.32em;text-transform:uppercase;font-size:clamp(10px,1.3vw,14px);color:var(--bark-soft)}.cert-stage{margin:.2em 0 0;font-size:clamp(22px,3.6vw,40px);color:var(--moss)}.cert-stage-name{margin:0;font-size:clamp(12px,1.7vw,19px);color:var(--bark-soft);font-style:italic}.cert-awarded{margin:.6em 0 0;font-size:clamp(11px,1.4vw,15px);color:var(--bark-soft)}.cert-name{margin:0;font-family:var(--font-letter);font-size:clamp(30px,5.2vw,58px);font-weight:700;color:var(--clay);line-height:1.1}.cert-for{margin:.5em 0 0;font-size:clamp(11px,1.5vw,16px);max-width:80%;color:var(--bark)}.cert-words{margin:.35em 0 0;font-family:var(--font-letter);font-weight:700;font-size:clamp(14px,2.1vw,24px);color:var(--moss);line-height:1.5;max-width:92%}.cert-words-many{font-size:clamp(11px,1.5vw,17px);line-height:1.45}.cert-foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:center;gap:clamp(10px,2.4vw,30px);width:100%;padding-top:.6em}.cert-sig{display:flex;flex-direction:column;align-items:center;font-size:clamp(9px,1.1vw,12px);color:var(--bark-soft)}.cert-sig svg{flex:none}.cert-date{display:flex;flex-direction:column;align-items:center;font-size:clamp(10px,1.2vw,13px);color:var(--bark-soft);border-top:2px solid var(--sand);padding-top:4px;min-width:26%}.cert-creatures{display:flex;gap:6px;margin-top:.5em;justify-content:center;opacity:.9}.cert-creatures svg{flex:none}@media print{@page{size:A4 landscape;margin:10mm}body{background:#fff}.app>.screen,.companion,.confetti,.no-print,.arrival{display:none!important}.award{position:static;background:none;padding:0;display:block}.certificate{width:277mm;height:190mm;aspect-ratio:auto;margin:0 auto;box-shadow:none;animation:none;page-break-inside:avoid}.cert-stage{font-size:34pt}.cert-stage-name{font-size:13pt}.cert-name{font-size:46pt}.cert-awarded{font-size:11pt}.cert-for{font-size:12pt}.cert-words{font-size:20pt}.cert-words-many{font-size:14pt}.cert-eyebrow{font-size:11pt}.cert-sig{font-size:9pt}.cert-date{font-size:10pt}.print-only-sheet~*,.dash,.topbar{display:none!important}}.cert-list{display:flex;flex-direction:column;gap:10px}.cert-row{display:flex;align-items:center;gap:14px;background:var(--paper-raised);border:2px solid var(--sand);border-left:6px solid var(--gold);border-radius:var(--radius);padding:12px 16px}.cert-row-main{flex:1;min-width:0}.finding{background:var(--paper-raised);border:2px solid var(--sand);border-left:6px solid var(--clay);border-radius:var(--radius);padding:14px 18px;display:flex;flex-direction:column;gap:6px}.finding h3{margin:0;font-size:19px}.finding-area{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--bark-soft);font-weight:700}.finding-count{background:var(--clay-tint);color:var(--clay);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700;white-space:nowrap}.finding-do{background:var(--moss-tint);border-radius:8px;padding:8px 12px;font-size:15px}.finding-evidence{font-size:13px;color:var(--bark-soft)}input[type=range]{accent-color:var(--moss);height:var(--tap)}input[type=checkbox]{accent-color:var(--moss);width:22px;height:22px}.home{flex:1;display:flex;flex-direction:column;align-items:center;gap:12px;min-height:0;width:100%}.home-island{display:flex;flex-direction:column;align-items:center;gap:6px}.home-island-land{position:relative;width:fit-content;border-radius:var(--radius-lg);border:3px solid var(--sand);box-shadow:var(--shadow);padding:8px;overflow:hidden}.home-grid{display:grid;gap:4px}.home-cell{aspect-ratio:1;border-radius:7px;background:#fff3;display:flex;align-items:center;justify-content:center}.island-overlay,.home-weather-wash,.home-me,.home-residents{position:absolute;pointer-events:none}.island-overlay,.home-weather-wash{top:0;right:0;bottom:0;left:0;width:100%;height:100%}.home-me{right:10px;bottom:2px;filter:drop-shadow(0 3px 0 rgba(74,55,40,.18))}.home-residents{left:10px;bottom:4px;display:flex;gap:2px;align-items:flex-end}.home-day{margin:0;font-size:15px;color:var(--bark-soft);text-align:center;max-width:620px}.home-places{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;max-width:940px}.place{width:108px;min-height:102px;padding:8px 6px;border-radius:var(--radius);background:var(--paper-raised);border:3px solid var(--sand);box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:transform .1s ease}.place:active{transform:translateY(3px);box-shadow:none}.place:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.place-label{font-weight:700;font-size:15px;line-height:1.15;text-align:center}.place-blurb{font-size:11px;color:var(--bark-soft);text-align:center;line-height:1.2}.wardrobe{display:flex;gap:20px;align-items:flex-start;width:100%;max-width:900px;justify-content:center}.wardrobe-me{flex:none;width:220px;display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--paper-raised);border:2px solid var(--sand);border-radius:var(--radius-lg);padding:12px;text-align:center}.wardrobe-me svg{flex:none}.wardrobe-rack{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}.rack{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px}.rack-item{background:var(--paper-raised);border:2px solid var(--sand);border-radius:var(--radius);padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:136px;box-shadow:var(--shadow)}.rack-item svg{flex:none}.rack-item-on{border-color:var(--moss);background:var(--moss-tint)}.rack-item-locked{background:#faf6ec}.rack-name{font-size:13px;font-weight:600;text-align:center;line-height:1.15}.rack-price{font-size:12px;color:var(--bark-soft);display:inline-flex;align-items:center;gap:3px;font-weight:700}.tree-svg{width:min(780px,96%);max-height:480px}.leaf{cursor:pointer}.leaf:focus-visible{outline:3px solid var(--gold)}.leaf:active ellipse{transform-box:fill-box;transform-origin:center;transform:scale(1.12)}.today-card{background:var(--paper-raised);border:2px solid var(--sand);border-left:6px solid var(--gold);border-radius:var(--radius-lg);padding:14px 22px;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:640px}.today-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.today-figure{display:inline-flex;align-items:center;gap:6px;font-size:24px;font-weight:700;color:var(--bark)}.meet{display:flex;align-items:center;gap:14px;background:var(--paper-raised);border:2px solid var(--sand);border-radius:var(--radius-lg);padding:10px 16px;max-width:660px;box-shadow:var(--shadow)}.meet-art{flex:none}.meet-art svg{flex:none}.meet-words{flex:1;min-width:0}.meet-eyebrow{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--bark-soft);font-weight:700}.meet-name{margin:0;font-size:23px;font-weight:700;font-family:var(--font-letter);color:var(--bark);line-height:1.1}.meet-note{margin:2px 0 0;font-size:13px;color:var(--bark-soft);line-height:1.3}.meet-buttons{display:flex;flex-direction:column;gap:6px;flex:none}.meet-buttons .btn{padding:8px 14px;min-height:40px;font-size:15px;white-space:nowrap}.album-slot-met{background:var(--paper-raised);border-style:solid;border-color:var(--sand)}.album-waiting{font-size:12px;color:var(--bark-soft);font-style:italic}.trace-line{transition:none}.trace-line-wandered{stroke:#9ab49f}.trace-progress{display:flex;flex-direction:column;align-items:center;gap:8px;width:min(420px,80vw)}.trace-bar{width:100%;height:14px;border-radius:999px;background:var(--sand);overflow:hidden}.trace-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--moss-light),var(--moss));transition:width .06s linear}.trace-goes{display:flex;gap:8px}.go{width:16px;height:16px;border-radius:50%;border:2px solid var(--bark-soft);background:transparent}.go-done{background:var(--moss);border-color:var(--moss)}.trace-message{min-height:58px;display:flex;align-items:center;justify-content:center}.trace-note{max-width:620px;min-height:46px;text-align:center}.maker{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:820px}.maker-line{width:100%;min-height:74px;background:var(--paper-raised);border:3px solid var(--sand);border-radius:var(--radius-lg);padding:12px 18px;font-family:var(--font-letter);font-size:27px;line-height:1.35;display:flex;align-items:center;justify-content:center;text-align:center}.maker-empty{color:var(--bark-soft);font-family:var(--font);font-size:17px;font-style:italic}.maker-input{width:100%;min-height:110px;background:var(--paper-raised);border:3px solid var(--moss);border-radius:var(--radius-lg);padding:12px 18px;font-family:var(--font-letter);font-size:26px;line-height:1.5;resize:none}.maker-tiles{max-height:210px;overflow-y:auto;gap:8px}.maker-tile{min-width:auto;min-height:52px;padding:0 16px;font-family:var(--font);font-size:20px;font-weight:600}.maker-tile-target{background:var(--moss-tint);border-color:var(--moss);color:var(--moss)}.maker-tile-small{min-height:44px;font-size:17px;padding:0 12px;opacity:.85}body.typing .app.no-scroll{overflow:auto;touch-action:auto}body.typing .companion{display:none}.preview-group{background:var(--paper-raised);border:2px solid var(--sand);border-radius:var(--radius-lg);padding:12px 18px;max-width:820px;width:100%}.preview-head{margin:0 0 8px;font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--bark-soft)}.preview-word{font-family:var(--font-letter);font-size:26px;font-weight:700;padding:8px 18px;border-radius:14px;background:var(--sand);color:var(--bark);border:2px solid transparent;min-height:52px}.preview-word-new{background:var(--moss-tint);color:var(--moss);border-color:var(--moss-light)}.shop{display:flex;flex:none;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:2px 4px 6px;max-width:100%;scrollbar-width:thin}.shop-item{flex:none;width:56px;min-height:60px;border-radius:12px;background:var(--paper-raised);border:2px solid var(--sand);box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.shop-item svg{flex:none}.shop-item-on{border-color:var(--moss);background:var(--moss-tint)}.shop-price{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:700;font-family:var(--font);color:var(--bark)}.island-cell-picked{outline:3px solid var(--gold);outline-offset:-2px}.island-cell-open{background:#d9a44138}.picked-row{position:absolute;left:50%;bottom:10px;transform:translate(-50%);display:flex;align-items:center;gap:8px;background:var(--paper-raised);border:2px solid var(--gold);border-radius:var(--radius);padding:6px 12px;box-shadow:0 4px #4a37282e;white-space:nowrap;z-index:6}.picked-row .btn{padding:8px 14px;min-height:42px}.build-stage{flex:1;display:flex;flex-direction:row;align-items:stretch;gap:12px;min-height:0;width:100%;padding:0 8px}.build-main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;gap:8px;position:relative}.island-view{flex:1;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.build-line{flex:none;margin:0;min-height:20px}.build-side{flex:none;width:248px;display:flex;flex-direction:column;gap:8px;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}.build-side .tabs{flex:none}.build-side .tab{padding:8px 14px;font-size:15px;min-height:40px}.chip-row{display:flex;flex-wrap:wrap;gap:5px;flex:none}.chip{padding:5px 11px;border-radius:999px;border:2px solid var(--sand);background:var(--paper-raised);font-size:13px;font-weight:600;min-height:32px}.chip-on{background:var(--zone-accent, var(--moss));border-color:var(--zone-accent, var(--moss));color:#fff}.palette{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;flex:none}.palette .shop-item{width:auto}.build-tools{display:flex;gap:6px;flex:none}.build-tools .btn{flex:1;padding:8px 6px;min-height:44px;font-size:15px}.build-tools .btn[disabled]{opacity:.4}.build-foot{display:flex;gap:6px;flex:none;margin-top:auto;padding-top:4px}.build-foot .btn{flex:1;padding:10px 8px;min-height:46px;font-size:15px}.island-cell-block{padding:0;overflow:hidden;background:transparent}.island-cell{padding:0;overflow:hidden}.build-main .island-grid{max-width:none;width:auto}.build-main .island-wrap{max-width:none;flex:none}.build-main .island-grid{gap:0}.build-main .island-cell{border:none;border-radius:0;background:transparent;box-shadow:inset 0 0 0 1px #4a37281a}.build-main .island-cell-filled{box-shadow:none;background:transparent}.build-main .island-cell-filled:not(.island-cell-block){background:#fffdf78c;box-shadow:inset 0 0 0 1px #4a37281a}.build-main .island-cell-picked{outline:3px solid var(--gold);outline-offset:-3px;z-index:2}.build-main{justify-content:center}.build-main .island-view{flex:0 1 auto}.plan-pin{flex:none;display:flex;align-items:center;gap:8px;background:var(--paper-raised);border:2px solid var(--gold);border-radius:var(--radius);padding:6px 10px;box-shadow:var(--shadow);max-width:100%}.plan-shows{display:flex;gap:2px;line-height:0;flex:none}.plan-text{font-size:19px;font-weight:700;font-family:var(--font);color:var(--bark);background:none;border:none;padding:4px 2px;text-align:left}.plan-pin .btn{padding:7px 12px;min-height:40px;flex:none}.plan-done{line-height:0}.plan-list{display:flex;flex-direction:column;gap:5px;flex:none}.plan-card{display:flex;align-items:center;gap:6px;text-align:left;background:var(--paper-raised);border:2px solid var(--sand);border-radius:12px;padding:7px 8px;min-height:46px}.plan-card-on{border-color:var(--gold);background:var(--gold-tint, rgba(217, 164, 65, .14))}.plan-card-shows{display:flex;gap:1px;line-height:0;flex:none}.plan-card-text{font-size:13px;font-weight:600;line-height:1.25}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a37284d;display:flex;align-items:center;justify-content:center;z-index:40;padding:16px}.sheet-card{background:var(--paper-raised);border:2px solid var(--sand);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:14px 18px;max-width:760px;width:100%;max-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:10px;align-items:center;text-align:center}.sign-writer{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.sign-preview{display:flex;align-items:center;gap:8px}.sign-board{display:inline-block;background:var(--sand);border:3px solid var(--bark-soft);border-radius:8px;padding:8px 20px;font-size:26px;font-weight:700;color:var(--bark);min-width:200px}.sign-keys{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:640px}.sign-key{width:54px;height:54px;border-radius:12px;border:2px solid var(--sand);background:var(--paper);font-size:26px;font-weight:700;font-family:var(--font);color:var(--bark);text-transform:lowercase}.sign-words{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.chip-word{font-size:17px;padding:8px 14px;min-height:42px}.sign-label{position:absolute;left:50%;bottom:1px;transform:translate(-50%);font-size:10px;font-weight:700;line-height:1.1;color:var(--bark);background:#fffdf7eb;border-radius:4px;padding:0 3px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}.island-cell .pop-in{position:relative;display:block;line-height:0}.residents{display:flex;flex-direction:column;gap:4px;flex:none}.resident-row{display:flex;align-items:center;gap:6px;background:var(--paper-raised);border:2px solid var(--sand);border-radius:12px;padding:5px 7px}.resident-row svg{flex:none}.resident-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0;flex:1}.resident-name{font-size:12px;font-weight:700;color:var(--bark-soft)}.resident-ask{font-size:13px;font-weight:600;line-height:1.2;text-align:left;background:none;border:none;padding:0;color:var(--bark)}.resident-done{flex:none;min-height:34px;padding:2px 8px;font-size:17px}.arrival{flex:none;display:flex;align-items:center;gap:8px;background:var(--paper-raised);border:2px solid var(--moss);border-radius:var(--radius);padding:5px 12px;font-weight:700;font-size:17px;box-shadow:var(--shadow)}.kick{width:100%;max-width:820px;border-radius:var(--radius-lg);border:2px solid var(--sand);box-shadow:var(--shadow);touch-action:manipulation;display:block}.ball{transition:transform .42s cubic-bezier(.2,.75,.3,1)}@media (prefers-reduced-motion: reduce){.ball{transition:none}}.pitch-panel{display:flex;flex-direction:column;gap:5px;flex:none;background:var(--paper-raised);border:2px solid var(--sand);border-radius:12px;padding:7px 9px;align-items:stretch}.build-picture{display:flex;flex-direction:column;align-items:center;gap:4px;flex:none}.build-picture-grid{display:grid;gap:0;border:2px solid;border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}.build-picture-cell{display:flex;align-items:center;justify-content:center;line-height:0}.island-light{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-lg);pointer-events:none;z-index:3}.photo-wall{display:flex;flex-wrap:wrap;gap:12px}.photo{margin:0;display:flex;flex-direction:column;gap:4px}.photo-grid{display:grid;gap:0;border:2px solid var(--sand);border-radius:8px;overflow:hidden;background:#cfe3d6}.photo-cell{width:20px;height:20px;display:flex;align-items:center;justify-content:center;line-height:0}@media print{.photo-grid{break-inside:avoid}}.home-island{flex:1 1 auto;min-height:0;width:100%}.home-island-fit{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center;width:100%}.home-places{flex:none}.home{overflow:hidden}.dressed{position:relative;display:inline-block;line-height:0}.dressed-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.check-slot{min-width:320px;min-height:78px;display:flex;align-items:center;justify-content:center;background:var(--paper-raised);border:3px dashed var(--sand);border-radius:var(--radius);font-size:40px;font-weight:700;letter-spacing:3px;color:var(--bark);padding:4px 24px}.check-empty{color:var(--bark-soft);opacity:.5}.check-keys{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;max-width:700px}.check-answer{font-size:46px;font-weight:700;color:var(--moss);letter-spacing:2px}.check-list{display:flex;flex-wrap:wrap;gap:7px;justify-content:center;max-width:660px}.check-word{font-size:21px;font-weight:700;padding:7px 15px;border-radius:999px;background:var(--moss-tint, rgba(47, 93, 63, .12));border:2px solid var(--moss);color:var(--bark)}.check-word-soon{background:#d9a44124;border-color:var(--gold)}.build-side{width:296px}.palette{grid-template-columns:repeat(3,1fr);gap:7px}.palette .shop-item{width:auto;min-height:88px;padding:7px 4px 5px;gap:2px}.palette-name{font-size:12px;font-weight:700;line-height:1.1;color:var(--bark);text-align:center;max-width:100%;overflow-wrap:anywhere}.palette .shop-price{font-size:13px}.plan-card-shows{gap:2px}
