:root{font-family:Inter,Helvetica Neue,Arial,sans-serif;--bg:#f6f5ef;--surface:#fffef9;--ink:#29372d;--muted:#697166;--line:#dedfd4;--accent:#365d3d;--soft:#e5eada;--tile:#fffef9;color:var(--ink);background:var(--bg);color-scheme:light;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:var(--surface);border-radius:12px;min-height:44px}button:disabled{cursor:default;opacity:.4}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid #a37824;outline-offset:4px}p{line-height:1.65;color:var(--muted)}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700}.brand{display:flex;gap:10px;align-items:center;font-weight:750;letter-spacing:-.5px}.brand-mark{display:inline-flex;background:var(--accent);color:var(--bg);width:33px;height:33px;border-radius:9px;align-items:center;justify-content:center;font-size:23px}.hub{max-width:1100px;margin:auto;padding:32px 40px}.hub-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:28px}.hub-header .eyebrow{color:var(--muted)}.hub-header-end{display:flex;align-items:center;gap:14px}.hub-intro{padding:85px 0 45px}.hub-intro h1{font-size:clamp(35px,5vw,56px);letter-spacing:-2.8px;line-height:1.1;margin:20px 0}.hub-intro p{font-size:17px}.game-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,360px));gap:24px}.game-card{display:block;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--surface)}.game-slot{position:relative;transition:transform .2s}.game-slot:hover{transform:translateY(-4px)}.card-art{background:var(--soft);height:180px;display:flex;align-items:center;justify-content:center;gap:5px;position:relative}.card-art>span{display:grid;place-items:center;width:38px;height:47px;background:var(--surface);border-radius:6px;box-shadow:0 3px #00000012;font-weight:800;font-size:25px}.card-art .falling{transform:translateY(22px) rotate(14deg);opacity:.55}.card-art b{position:absolute;bottom:15px;left:22px;color:var(--accent);font-size:29px}.card-body{padding:23px}.card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.pill{font-size:10px;border:1px solid var(--line);padding:5px 9px;border-radius:20px;white-space:nowrap;color:var(--accent)}.card-body h2{font-size:31px;letter-spacing:-1px;margin:20px 0 5px}.card-body p{font-size:14px;margin:0 0 26px}.card-bottom{border-top:1px solid var(--line);padding-top:19px;font-weight:650;font-size:13px;display:flex;justify-content:space-between}.card-bottom span{font-size:20px}.hub footer{margin-top:70px;color:var(--muted);font-size:12px}.game-shell{max-width:600px;min-height:100svh;margin:0 auto;padding:20px 28px 16px;display:flex;flex-direction:column}.game-header{display:flex;justify-content:space-between;align-items:center}.back-link{display:flex;align-items:center;gap:9px;font-size:13px;min-height:44px;color:var(--muted)}.game-header nav{display:flex;gap:3px}.icon-button{width:44px;height:44px;border:0;background:transparent;font-size:20px}.game-title{text-align:center;margin:22px 0 19px}.title-line{display:flex;justify-content:center;align-items:center;gap:16px}.game-title h1{font-size:49px;letter-spacing:-2.8px;line-height:1;margin:0}.game-title h1 span{font-size:39px;color:var(--accent);margin-left:4px}.game-title p{font-size:13px;margin:10px 0 0}.mode-switch{display:flex;background:var(--soft);padding:4px;border-radius:12px;max-width:290px;width:100%;margin:0 auto}.mode-switch button{flex:1;background:transparent;border:0;min-height:35px;font-size:12px;font-weight:650;border-radius:9px}.mode-switch button[aria-pressed=true]{background:var(--surface);box-shadow:0 1px 4px #0000000c}.puzzle-meta{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.5px;color:var(--muted);padding:23px 0 14px;border-bottom:1px solid var(--line)}.play-area{flex:1;display:flex;flex-direction:column;justify-content:flex-end;min-height:280px;padding:10px 0 25px}.chain{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;margin-bottom:24px;min-height:128px}.start-message{text-align:center;padding-bottom:12px}.start-message>span{font-size:25px;font-weight:700;color:var(--accent);letter-spacing:5px}.start-message p{font-size:12px;margin:10px 0}.past-word{font-weight:750;font-size:14px;letter-spacing:5px;line-height:1.2;position:relative;animation:arrive .2s}.past-word span{position:absolute;right:-18px;top:2px;font-size:10px;color:var(--accent);letter-spacing:0}.tiles{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;max-width:100%;margin:auto auto 0}.tile{width:48px;min-width:44px;height:58px;font-size:28px;font-weight:800;border:1px solid var(--line);border-bottom:3px solid var(--line);border-radius:9px;background:var(--tile);padding:0;transition:transform .15s,background .15s;animation:arrive .2s}.tile:hover:not(:disabled){transform:translateY(-3px)}.tile.selected{transform:translateY(-9px)!important;background:var(--soft);border-color:var(--accent)}.tile.hinted{outline:2px dashed var(--accent);outline-offset:3px}.stuck .tile{background:var(--line)}.perfect .tile{background:var(--accent);color:var(--bg);opacity:1;animation:pulse .7s}.word-preview{text-align:center;height:40px;padding-top:16px;font-size:12px;letter-spacing:.3px;color:var(--muted)}.word-preview span{font-size:10px}.progress{display:flex;justify-content:center;gap:7px;margin-top:15px}.progress span{width:5px;height:5px;border:1px solid var(--muted);border-radius:50%}.progress .filled{background:var(--accent);border-color:var(--accent)}.score-line{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding:17px 0}.score-line b{color:var(--ink)}.actions{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:9px}.actions button{font-size:13px;display:flex;align-items:center;justify-content:center;gap:6px;height:49px}.actions button:last-child{background:var(--accent);color:var(--bg);border-color:var(--accent)}.actions small{background:var(--soft);border-radius:50%;font-size:10px;padding:2px 5px}.actions .emphasized{border:2px solid var(--accent);background:var(--soft)}.bottom-note{text-align:center;font-size:10px;margin:16px 0 0}.loading{padding:20vh 24px;text-align:center}.loading button{padding:0 20px}.notice{font-size:12px;text-align:center;margin:6px}.toast{position:fixed;bottom:110px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--bg);font-size:13px;padding:13px 20px;border-radius:12px;box-shadow:0 4px 30px #0002;z-index:5;max-width:90vw;text-align:center;width:max-content}dialog{border:1px solid var(--line);border-radius:22px;padding:26px;max-width:420px;width:calc(100% - 32px);background:var(--surface);color:var(--ink);max-height:90svh;box-shadow:0 25px 90px #0002}dialog::backdrop{background:#15251977;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.modal-top h2{font-size:25px;letter-spacing:-1px;margin:0}dialog p{font-size:14px}.instructions{list-style:none;counter-reset:step;padding:0}.instructions li{counter-increment:step;position:relative;padding:12px 0 12px 38px;font-size:13px}.instructions li:before{content:counter(step);position:absolute;left:0;top:11px;border-radius:50%;background:var(--soft);width:26px;height:26px;display:grid;place-items:center;font-size:12px}.instructions span{display:block;color:var(--muted);margin-top:5px;font-size:12px}.example{background:var(--soft);border-radius:10px;padding:16px;font-size:11px;line-height:2;letter-spacing:1px;font-weight:700;margin:18px 0;overflow-wrap:anywhere}.small{font-size:11px!important}.primary{background:var(--accent);color:var(--bg);border-color:var(--accent);padding:12px 20px;font-size:13px;font-weight:600}.full{width:100%}.setting{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line);font-size:13px;gap:12px}.setting select{max-width:180px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:7px;padding:8px;font-size:12px}.setting input{width:21px;height:21px;accent-color:var(--accent)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:25px 0}.stat-grid div{text-align:center}.stat-grid b{display:block;font-size:26px}.stat-grid span{font-size:10px;color:var(--muted)}dialog h3{font-size:13px}.histogram>div{display:flex;gap:12px;align-items:center;margin:7px 0;font-size:12px}.histogram span{width:18px}.histogram b{background:var(--accent);color:var(--bg);padding:5px 10px;border-radius:4px;text-align:right}.result-score{display:flex;align-items:baseline;justify-content:center;gap:10px;margin:20px 0}.result-score b{font-size:70px;letter-spacing:-4px}.result-score span{color:var(--muted)}.result-details{display:flex;justify-content:space-around;font-size:11px;color:var(--muted)}.result-details b{display:block;text-align:center;color:var(--ink);font-size:16px;margin-top:5px}.next-puzzle{text-align:center;font-size:12px}.next-puzzle b{display:block;font-size:22px;color:var(--ink);margin:8px 0 18px;font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.confetti{pointer-events:none;position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.confetti i{position:absolute;top:-15px;width:7px;height:12px;animation:fall 1.8s ease-in forwards}.shake{animation:shake .3s}@keyframes shake{25%,75%{transform:translate(-5px)}50%{transform:translate(5px)}}@keyframes arrive{0%{opacity:.4;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{50%{transform:scale(1.15)}}@keyframes fall{to{transform:translateY(100vh) rotate(480deg);opacity:0}}:root[data-theme=dark]{--bg:#1c241f;--surface:#27322a;--ink:#eef0e7;--muted:#b2baab;--line:#485245;--accent:#bfd4a6;--soft:#364334;--tile:#2d382e;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1c241f;--surface:#27322a;--ink:#eef0e7;--muted:#b2baab;--line:#485245;--accent:#bfd4a6;--soft:#364334;--tile:#2d382e;color-scheme:dark}}@media(max-width:580px){.game-shell{padding:12px 18px 14px}.tile{width:44px;height:52px;font-size:25px}.tiles{max-width:340px}.game-title{margin:15px 0}.game-title h1{font-size:43px}.play-area{min-height:270px;padding-bottom:19px}.chain{margin-bottom:20px;gap:4px}.hub{padding:22px}.hub-header .eyebrow{display:none}.hub-intro{padding:55px 0 28px}.hub-intro h1{letter-spacing:-1.5px}.hub-intro p{font-size:14px}.hub footer{margin-top:45px}.game-grid{grid-template-columns:1fr}.desktop-break{display:none}}@media(max-height:700px){.game-title{margin:10px 0}.game-title h1{font-size:38px}.game-title p{margin-top:6px}.puzzle-meta{padding-top:15px}.play-area{min-height:250px;padding-bottom:15px}.chain{min-height:104px;margin-bottom:15px}.past-word{font-size:12px;letter-spacing:4px;line-height:1.15}.bottom-note{margin-top:10px}.score-line{padding:12px 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.confetti{display:none}}:root[data-motion=reduced] *{animation:none!important;transition:none!important}:root[data-motion=reduced] .confetti{display:none}.campaign-button{display:flex;justify-content:space-between;align-items:center;background:var(--soft);border:0;padding:0 15px;font-size:12px;font-weight:600}.campaign-button span:last-child{font-size:11px;color:var(--muted)}.level-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.level-grid button{min-height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.level-grid b{font-size:18px}.level-grid span{font-size:9px}.level-grid .active-level{border:2px solid var(--accent);background:var(--soft)}.secondary{margin-top:10px;font-size:12px}@media(max-height:600px){.game-shell{padding-top:8px;padding-bottom:8px}.game-title{margin:6px 0}.game-title h1,.game-title h1 span{font-size:30px}.game-title p{margin-top:3px;font-size:11px}.puzzle-meta{padding:10px 0 8px;font-size:8px;letter-spacing:1px}.play-area{min-height:190px;padding:8px 0}.chain{min-height:0;margin-bottom:8px;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:5px 12px}.start-message{padding:0}.start-message>span{font-size:18px}.start-message p{display:none}.past-word{font-size:10px;letter-spacing:2px}.past-word span{position:static;margin-left:3px}.word-preview{height:30px;padding-top:10px;font-size:11px}.progress{margin-top:10px}.score-line{padding:10px 0}.bottom-note{display:none}}.tents-card-art{gap:9px;background:#e6edda}.hub-tree{width:60px;height:85px;transform:translateY(-5px)}.hub-tent{width:86px;height:86px;transform:translateY(13px)}.hub-tree.small-tree{width:44px;height:64px;transform:translateY(9px)}.hub-tree svg,.hub-tent svg{width:100%;height:100%}:root[data-theme=dark] .tents-card-art{background:var(--soft)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .tents-card-art{background:var(--soft)}}.parcels-card-art{background:#eee4d4}.hub-parcels{display:grid;grid-template-columns:52px 34px 25px;grid-template-rows:36px 36px;gap:4px;transform:rotate(-7deg)}.hub-parcels span{display:grid;place-items:center;color:#61422e;border:1px solid #b88e65;border-radius:5px;font-size:18px;font-weight:750}.hub-parcels span:nth-child(1){grid-row:span 2;background:#dcd8ab}.hub-parcels span:nth-child(2){grid-column:span 2;background:#d8bba4}.hub-parcels span:nth-child(3){background:#c3d2bb}.hub-parcels span:nth-child(4){background:#e6d6ac}:root[data-theme=dark] .parcels-card-art{background:#39382c}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .parcels-card-art{background:#39382c}}.nav-start{display:flex;align-items:center;min-width:0}.home-link{display:grid;place-items:center;font-size:22px;margin-left:-10px}button.back-link{border:0;background:transparent;padding:0 8px 0 4px;white-space:nowrap}.game-header nav{flex-shrink:0;margin-right:-10px}.star-toggle{position:absolute;top:10px;right:10px;width:44px;height:44px;border:0;border-radius:50%;background:var(--surface);color:var(--muted);font-size:21px;line-height:1;box-shadow:0 2px 8px #00000014}.star-toggle[aria-pressed=true]{color:#c08a1e}.approach-card-art{background:#dfe7d6}.hub-approach{width:260px;height:140px}.hub-plane{position:absolute}.hub-plane-blue{left:calc(50% - 107px);top:calc(50% - 65px)}.hub-plane-red{left:calc(50% + 32px);top:calc(50% - 60px)}:root[data-theme=dark] .approach-card-art{background:#33402f}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .approach-card-art{background:#33402f}}
