@font-face{font-family:'DM Sans';font-style:normal;font-display:swap;font-weight:100 1000;src:url('./assets/fonts/dm-sans-latin-ext-wght-normal.woff2') format('woff2');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:100 1000;src:url('./assets/fonts/dm-sans-latin-wght-normal.woff2') format('woff2');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:'Playfair Display';font-style:normal;font-display:swap;font-weight:400 900;src:url('./assets/fonts/playfair-display-latin-ext-wght-normal.woff2') format('woff2');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:'Playfair Display';font-style:normal;font-display:swap;font-weight:400 900;src:url('./assets/fonts/playfair-display-latin-wght-normal.woff2') format('woff2');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{--bg:#0b1c27;--deep:#081720;--panel:#122932;--ink:#fff0d4;--muted:#a3b6b9;--gold:#ffdb8e;--gold-deep:#ddad59;--teal:#73d8d3;--line:rgba(197,218,210,.13);--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif;font-family:var(--sans);color:var(--ink);background:var(--bg);font-synthesis:none;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;min-width:300px}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}button{border:0}a{color:var(--gold);text-underline-offset:4px}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}p{line-height:1.7}button svg{flex-shrink:0}.icon{width:21px;height:21px;display:inline-block;vertical-align:middle;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:20px;background:var(--gold);color:var(--deep);z-index:100;padding:12px;border-radius:8px}.skip-link:focus{top:12px}.main:focus{outline:0}.app-shell{display:flex;min-height:100svh}.sidebar{width:248px;flex-shrink:0;padding:40px 25px 25px;display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--deep);position:fixed;left:0;top:0;bottom:0;z-index:10}.studio{display:inline-flex;align-items:center;gap:9px;font-family:Georgia,serif;font-size:19px;color:var(--ink);text-decoration:none;background:none;padding:0}.brand-mark{font-family:Arial,sans-serif;font-size:38px;line-height:.7;letter-spacing:-4px;margin-right:2px}.wordmark{font-family:var(--serif);font-size:39px;letter-spacing:-1.7px;background:none;text-align:left;margin:62px 0 7px;padding:0;position:relative}.wordmark-spark{font-size:15px;position:absolute;top:3px;color:var(--gold);margin-left:3px}.sidebar-tagline{font-size:12px;line-height:1.9;color:var(--muted)}.side-nav{margin-top:38px;display:grid;gap:7px}.nav-item{display:flex;gap:13px;align-items:center;position:relative;background:none;color:var(--muted);padding:14px 15px;text-align:left;border-radius:10px;font-size:13px;white-space:nowrap;transition:background .2s,color .2s}.nav-item:hover{background:rgba(255,255,255,.035);color:var(--ink)}.nav-item.active{color:var(--gold);background:rgba(255,218,142,.07)}.nav-item .icon{width:19px;height:19px}.nav-item i{margin-left:auto;width:4px;height:4px;background:var(--gold);border-radius:50%}.sidebar-bottom{margin-top:auto;padding-top:35px}.small-progress{display:flex;justify-content:space-between;font-size:10px;align-items:center;margin-bottom:12px;color:var(--muted)}.small-progress span:first-child{color:var(--gold);display:flex;gap:6px;align-items:center}.small-progress .icon{width:14px;height:14px}.progress-track{height:3px;background:rgba(255,255,255,.08);overflow:hidden;border-radius:5px}.progress-track i{height:100%;display:block;background:var(--gold);border-radius:5px;transition:width .6s}.sidebar-bottom>p{font-size:10px;color:var(--muted);margin:11px 0 30px}.text-button{display:inline-flex;gap:9px;align-items:center;background:none;padding:10px 0;font-size:12px;color:var(--muted)}.text-button:hover{color:var(--gold)}.sidebar-bottom>.text-button{display:flex;font-size:11px}.text-button .icon{width:17px;height:17px}.content-wrap{margin-left:248px;flex:1;min-width:0}.mobile-header,.mobile-nav,.mobile-only{display:none}.main{min-height:100svh}.btn{min-height:52px;padding:14px 23px;display:inline-flex;align-items:center;justify-content:center;gap:13px;border-radius:13px;font-weight:600;font-size:14px;transition:transform .15s,background .2s,box-shadow .2s;border:1px solid transparent;line-height:1.4}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:active:not(:disabled){transform:translateY(0)}.btn.primary{background:linear-gradient(130deg,#ffe5a9,#ffcd70);color:#2a281f;box-shadow:0 6px 28px #ffd27b18}.btn.primary:hover{box-shadow:0 8px 35px #ffd27b33;background:#ffe6ac}.btn.secondary{background:#20383f;border-color:rgba(199,219,215,.12);color:var(--ink)}.btn.outline{background:#0b1c2770;border:1px solid #fff0d479;backdrop-filter:blur(10px);color:var(--ink);font-family:var(--serif);font-weight:400;font-size:17px}.btn.text{background:none;color:var(--muted);font-weight:400;min-height:40px}.btn:disabled{opacity:.55}.icon-button{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.025);border:1px solid var(--line);color:var(--ink);flex-shrink:0}.icon-button:hover{background:rgba(255,219,142,.1);color:var(--gold)}.eyebrow{font-size:9px;letter-spacing:2.2px;font-weight:600;color:var(--gold);display:inline-flex;gap:9px;align-items:center;line-height:1.8}.eyebrow>span{height:4px;width:4px;background:var(--gold);border-radius:50%}
.welcome-hero{position:relative;min-height:calc(100svh - 78px);overflow:hidden;display:flex;flex-direction:column;padding:70px 7% 55px;isolation:isolate;background:#0b2030}.hero-art{position:absolute;inset:0;background:url('./assets/hero-village.webp') center/cover;z-index:-3;animation:arrive 1.2s ease-out}.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(5,21,31,.83),rgba(7,25,35,.22) 65%),linear-gradient(0deg,#061821 0%,transparent 45%,rgba(5,21,34,.1) 80%)}.welcome-copy{position:relative;max-width:620px}.welcome-copy h1{font-size:clamp(65px,7.8vw,122px);letter-spacing:-4px;line-height:1.25;color:#ffe9b8;text-shadow:0 0 50px #ffc05632;margin:14px 0 10px}.welcome-copy h1 sup{display:inline-block;vertical-align:top;margin-top:15px;font-family:Georgia,serif;font-size:24px;letter-spacing:0}.hero-tagline{font-family:var(--serif);font-size:clamp(19px,2vw,26px);line-height:1.45;color:#fff0d9}.hero-description{font-size:14px;line-height:1.85;color:#cad1ce;margin-top:24px}.welcome-actions{width:330px;max-width:100%;margin-top:auto;padding-top:100px;position:relative}.welcome-actions .btn{width:100%;margin-bottom:11px}.welcome-actions .primary{font-family:var(--serif);font-size:24px;font-weight:500;min-height:64px;border-radius:18px}.welcome-actions .primary svg{width:21px;height:21px;margin-left:7px}.hero-kicker{font-size:8px;letter-spacing:2.3px;color:#e1cda8;display:block;text-align:center;margin-bottom:16px}.purchase-promise{font-size:11px;text-align:center;color:#d3cdbf;margin-top:3px}.owned-note{padding:15px 5px;text-align:center;color:var(--gold);font-size:13px}.owned-note .icon{width:18px;margin-right:6px}.hero-note{position:absolute;right:5%;bottom:65px;display:flex;align-items:center;gap:14px;border-top:1px solid #d7c3943b;padding-top:20px}.hero-note strong{font-family:var(--serif);font-size:16px;font-weight:400}.hero-note p{font-size:10px;color:var(--muted);margin-top:6px}.mini-orbit{font-size:30px;color:var(--gold)}.home-bottom{height:78px;display:flex;align-items:center;justify-content:space-around;gap:20px;padding:0 40px;font-size:10px;color:var(--muted);border-top:1px solid var(--line)}.home-bottom>div,.home-bottom>button{display:flex;align-items:center;gap:9px}.home-bottom .icon{width:16px;height:16px;color:var(--gold)}.home-bottom button{background:none;color:var(--ink);font-size:11px;padding:12px 0}
.villages-screen,.daily-screen,.quick-screen{padding:60px clamp(24px,4.5vw,80px) 55px;max-width:1500px;margin:auto}.page-heading{margin-bottom:36px}.page-heading h1{font-size:clamp(30px,3.3vw,46px);line-height:1.3;margin-top:12px;letter-spacing:-.8px;max-width:750px}.page-heading>p{font-size:13px;color:var(--muted);margin-top:13px;max-width:580px}.village-tabs{display:flex;gap:8px;overflow-x:auto;padding:8px 5px 14px;margin:0 -5px 20px;scrollbar-width:thin}.village-tab{border:1px solid var(--line);border-radius:30px;background:none;color:var(--muted);padding:11px 17px;display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:11px}.village-tab .icon{width:14px;height:14px}.village-tab.selected{border-color:#b49359;color:var(--gold);background:#ffdc8e0a}.chapter-banner{display:flex;justify-content:space-between;min-height:216px;position:relative;isolation:isolate;overflow:hidden;border-radius:20px;border:1px solid var(--line);padding:30px 34px;background:#172e37}.chapter-banner>div:first-child{max-width:65%;position:relative;z-index:1}.chapter-banner h2{font-size:32px;margin:10px 0}.chapter-banner p{font-size:12px;color:#b4c6c4;max-width:410px}.chapter-count{display:block;margin-top:20px;font-size:10px;color:var(--gold)}.chapter-art{position:absolute;right:0;top:0;bottom:0;width:52%;background:url('./assets/hero-village.webp') 75% 50%/cover;mask-image:linear-gradient(to right,transparent,black 65%);z-index:-1}.theme-1 .chapter-art{filter:hue-rotate(18deg)}.theme-2 .chapter-art{filter:hue-rotate(-12deg)}.theme-3 .chapter-art{filter:hue-rotate(25deg) saturate(.6)}.theme-4 .chapter-art{filter:sepia(.3) brightness(1.1)}.level-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin:25px 0}.level-card{position:relative;border:1px solid var(--line);border-radius:17px;background:linear-gradient(155deg,#172e36,#10262f);min-height:212px;padding:19px 15px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;transition:border-color .2s,transform .2s}.level-card:hover{transform:translateY(-3px);border-color:#ad945766}.level-card.completed{border-color:#cfaf6340}.level-number{position:absolute;top:15px;left:16px;font-size:10px;color:#758d94;letter-spacing:1px}.level-house{width:73px;height:73px;margin:4px 0 7px;display:grid;place-items:center}.level-house>.icon{width:30px;height:30px;color:#718b8e;stroke-width:1.1}.level-house .cottage{width:80px;height:80px;filter:drop-shadow(0 0 15px #ffd98014)}.level-name{font-family:var(--serif);font-size:16px;line-height:1.5}.level-description{font-size:9px;color:var(--muted);margin:5px 0 15px}.level-ready{font-size:9px;display:flex;align-items:center;gap:7px;color:#b1c1bc;margin-top:auto}.level-ready .icon{width:13px;height:13px}.stars{display:inline-flex;align-items:center;gap:5px}.stars .icon{width:16px;height:16px;stroke:#6a807f;stroke-width:1.4}.stars .earned{fill:#ffd888;stroke:#ffd888;filter:drop-shadow(0 0 4px #ffcc7136)}.chapter-footnote{font-size:11px;color:var(--muted);display:flex;align-items:flex-start;gap:9px;margin-top:8px}.chapter-footnote .icon{width:15px;height:15px;color:var(--gold);margin-top:2px}.unlock-ribbon{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:38px;padding:24px;border-radius:15px;background:#1b3034;border:1px solid #dec48625}.unlock-ribbon strong{font-family:var(--serif);font-size:18px;font-weight:400;display:block}.unlock-ribbon span{display:block;font-size:11px;color:var(--muted);margin-top:6px}.unlock-ribbon .btn{font-size:11px;white-space:nowrap;min-height:43px}.daily-card{border-radius:24px;border:1px solid var(--line);background:#102732;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;min-height:460px}.daily-art{background:linear-gradient(90deg,transparent 65%,#102732),url('./assets/hero-village.webp') 43% center/cover}.daily-body{padding:45px 40px;display:flex;flex-direction:column;align-items:flex-start}.date-badge{display:inline-flex;gap:8px;align-items:center;color:var(--gold);font-size:11px;padding:8px 12px;border:1px solid #ffda862a;border-radius:30px}.date-badge .icon{width:16px;height:16px}.daily-body h2{font-size:31px;line-height:1.35;margin:22px 0 13px}.daily-body>p{font-size:13px;color:var(--muted)}.daily-details{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--ink);font-size:10px;margin:22px 0 28px}.daily-details span+span{position:relative}.daily-details span+span:before{content:'·';position:absolute;left:-9px;color:var(--gold)}.daily-body>.btn{width:100%;margin-top:auto}.daily-body small{font-size:9px;color:var(--muted);margin-top:14px;align-self:center}.daily-result{display:flex;gap:12px;align-items:center;margin-bottom:20px}.quick-card{max-width:700px;background:linear-gradient(135deg,#142d36,#10242e);border:1px solid var(--line);border-radius:22px;padding:35px}.quick-card fieldset{padding:0;border:0;margin:0 0 30px;min-width:0}.quick-card legend{padding:0;margin-bottom:14px;font-family:var(--serif);font-size:21px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.choice{position:relative;display:flex;flex-direction:column;gap:9px;align-items:center;padding:23px 12px;border:1px solid var(--line);border-radius:13px;cursor:pointer;overflow:hidden}.choice:has(input:checked){background:#ffdb8e09;border-color:#bea36a;color:var(--gold)}.choice>.icon{width:25px;height:25px;margin-bottom:4px}.choice strong{font-size:13px;font-weight:500}.choice span{font-size:10px;color:var(--muted);text-align:center}.choice input,.segment input{position:absolute;opacity:0;width:100%;height:100%;left:0;top:0;margin:0;cursor:pointer}.choice:has(input:focus-visible),.segment label:has(input:focus-visible){outline:3px solid var(--gold);outline-offset:4px}.segment{display:flex;gap:9px}.segment label{position:relative;padding:14px 8px;border:1px solid var(--line);border-radius:10px;flex:1;text-align:center;font-size:12px;cursor:pointer;overflow:hidden}.segment small{display:block;font-size:9px;color:var(--muted);margin-top:5px}.segment label:has(input:checked){border-color:#b99c63;background:#ffdb8e08;color:var(--gold)}.quick-card fieldset:disabled{opacity:.4}.quick-card>.btn{width:100%}.field-note{font-size:11px;color:var(--muted);margin-top:13px;line-height:1.7}.quiet-note{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:10px;margin-top:22px}.quiet-note .icon{color:var(--gold);width:16px}
.play-screen{padding:36px clamp(24px,4vw,60px);background:radial-gradient(ellipse at 30% 20%,#19343c4d,transparent 60%)}.game-layout{display:grid;grid-template-columns:minmax(300px,560px) minmax(200px,300px);gap:clamp(25px,4vw,70px);justify-content:center;max-width:1100px;margin:auto}.game-panel{position:relative;isolation:isolate;padding-bottom:30px}.game-top{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:center;margin-bottom:28px}.game-top .eyebrow{font-size:7px;letter-spacing:1.6px}.game-top h1{font-size:28px;line-height:1.4;margin-top:6px}.game-top .icon-button{width:36px;height:36px;background:none;border:0}.scoreboard{display:flex;align-items:center;gap:12px;margin:0 10px}.score{position:relative;flex:1;display:flex;align-items:center;gap:12px;border:1px solid #f3dba927;border-radius:14px;padding:13px 19px;font-family:var(--serif);font-size:19px;background:#081c2570;transition:border .3s,box-shadow .3s}.score>.icon{width:25px;height:25px}.score strong{font-size:28px;font-weight:400;margin-left:auto;line-height:1}.score.amber{color:var(--gold)}.score.amber.current{border-color:#e7bd6b;box-shadow:inset 0 0 30px #ffcb7106,0 0 18px #ffcb7109}.score.amber>.icon{fill:var(--gold);filter:drop-shadow(0 0 7px #ffd27b50)}.score.teal{color:var(--teal);border-color:#73d8d327}.score.teal>.icon{fill:var(--teal)}.score.teal.current{border-color:#73d8d3;box-shadow:0 0 18px #73d8d310}.score span{color:var(--ink)}.score-vs{font-family:var(--serif);font-size:16px;color:#809799}.turn-row{display:flex;justify-content:space-between;align-items:center;margin:23px 15px 20px;min-height:34px}.turn-pill{padding:8px 19px;background:#ffda8e;color:#263032;border-radius:30px;font-size:12px;font-weight:600;box-shadow:0 0 22px #ffd88816}.turn-pill.pip{background:#1d4247;color:#9de6e3}.moves-left{font-size:10px;color:#9bb0b1}.thinking-dots{display:inline-block;letter-spacing:1px;margin-left:5px;animation:breathe 1s infinite alternate}.board-surround{padding:19px 22px 22px;max-width:540px;margin:auto}.board{position:relative;aspect-ratio:1;isolation:isolate}.board-cell{position:absolute;z-index:0;display:grid;place-items:center;border-radius:5px}.board-cell.claimed{background:radial-gradient(circle,#fed67c19,transparent 70%);animation:light-up .65s ease-out}.board-cell.owner-1{background:radial-gradient(circle,#73d8d314,transparent 70%)}.board-cell .cottage{width:83%;height:83%;filter:drop-shadow(0 0 5px #ffd47b21);pointer-events:none}.board-cell.owner-1 .cottage{filter:drop-shadow(0 0 5px #67cfce24)}.cell-owner{position:absolute;right:10%;top:9%;line-height:0;color:var(--gold)}.cell-owner>.icon{width:13px;height:13px;fill:currentColor;stroke-width:1}.owner-1 .cell-owner{color:var(--teal)}.dot{position:absolute;transform:translate(-50%,-50%);width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff8e4,#ead5a7);box-shadow:0 1px 7px #ffdda720;z-index:5;pointer-events:none}.edge{position:absolute;background:transparent;padding:0;z-index:3;display:flex;align-items:center;justify-content:center;outline-offset:-4px!important}.edge.horizontal{height:38px;transform:translateY(-50%);padding:0 13px}.edge.vertical{width:38px;transform:translateX(-50%);padding:13px 0}.edge span{display:block;border-radius:4px;transition:background .12s,box-shadow .12s;background:#809b994a;pointer-events:none}.edge.horizontal span{width:100%;height:3px;background:repeating-linear-gradient(90deg,#809b994a 0,#809b994a 5px,transparent 5px,transparent 10px)}.edge.vertical span{height:100%;width:3px;background:repeating-linear-gradient(0deg,#809b994a 0,#809b994a 5px,transparent 5px,transparent 10px)}.edge:not(:disabled):hover span,.edge:not(:disabled):focus-visible span{background:var(--gold);box-shadow:0 0 12px #ffdb8e55}.edge.drawn.owner-0 span{background:var(--gold);box-shadow:0 0 7px #ffce7166}.edge.drawn.owner-1 span{background:var(--teal);box-shadow:0 0 7px #73d8d333}.edge.horizontal.drawn span{height:5px}.edge.vertical.drawn span{width:5px}.edge.last-edge span{animation:path-in .3s ease-out}.game-message{font-family:var(--serif);font-size:20px;text-align:center;line-height:1.5;margin:15px 12px 0;min-height:30px}.game-hint{font-size:11px;color:#a3b8b8;text-align:center;margin-top:7px;min-height:18px}.game-controls{display:flex;justify-content:space-around;gap:15px;margin:25px 5px;position:relative;z-index:1}.game-controls .text-button{flex-direction:column;gap:8px;font-size:10px}.game-controls .icon{width:20px;height:20px;color:var(--ink)}.game-scenery{height:140px;background:linear-gradient(0deg,transparent,#0b1c27),url('./assets/hero-village.webp') center 65%/cover;margin:0 -15px -30px;border-radius:0 0 18px 18px;opacity:.75;mask-image:linear-gradient(0deg,black 50%,transparent)}.game-aside{padding-top:68px}.game-aside h2{font-size:33px;line-height:1.4;margin-top:15px}.game-aside>p{font-size:12px;color:var(--muted);margin-top:19px}.village-window{height:225px;background:linear-gradient(0deg,#0b1c2700,#0b1c2700),url('./assets/hero-village.webp') 50% 60%/cover;border-radius:100px 100px 16px 16px;border:1px solid #c6ab712e;margin:30px 0 25px}.aside-tip{display:flex;gap:12px;border-top:1px solid var(--line);padding-top:23px}.aside-tip>.icon{color:var(--gold);width:18px;height:18px;margin-top:4px}.aside-tip p{font-size:11px;color:var(--muted)}.aside-tip strong{display:block;color:var(--ink);font-weight:500;margin-bottom:7px}.aside-progress{display:flex;justify-content:space-between;font-size:10px;margin:30px 0 12px;color:var(--muted)}.aside-progress strong{color:var(--gold);font-weight:400}.result-card{margin:23px 7px 5px;padding:25px;text-align:center;border:1px solid #dcb36b40;border-radius:18px;background:linear-gradient(140deg,#293d37,#162e35);position:relative;z-index:2}.result-symbol>.icon{width:29px;height:29px;color:var(--gold);fill:#ffda8e22}.result-card h2{font-size:28px;margin:10px 0}.result-card p{font-size:11px;color:var(--muted);margin-bottom:15px}.result-card>.stars{margin-bottom:20px}.result-card>.stars .icon{width:22px;height:22px}.result-actions{display:flex;flex-direction:column;align-items:stretch;gap:3px}.result-card+.game-scenery{display:none}.empty-state{padding:60px}.empty-state .btn{margin-top:25px}
dialog{color:var(--ink);background:linear-gradient(145deg,#19343e,#0e242d);border:1px solid #d3bc893b;box-shadow:0 30px 120px #0009;border-radius:24px;padding:37px;max-width:480px;width:calc(100% - 32px);max-height:calc(100svh - 36px);overflow:auto}dialog::backdrop{background:#041117bd;backdrop-filter:blur(7px)}.dialog-close{position:absolute;right:14px;top:14px;width:30px;height:30px;border:0}.dialog-close .icon{width:18px;height:18px}dialog h2{font-size:29px;line-height:1.35;padding-right:16px;margin-bottom:20px}dialog p{font-size:13px;color:#b4c5c4;margin-bottom:16px}dialog .dialog-intro{margin-top:-4px}.dialog-actions{display:flex;flex-direction:column;gap:10px;margin-top:24px}.dialog-actions .btn{width:100%}.help-steps{list-style:none;padding:0;margin:25px 0;display:grid;gap:22px}.help-steps li{display:flex;gap:14px}.help-steps li>span{width:28px;height:28px;border:1px solid #b392583d;display:grid;place-items:center;border-radius:50%;font-family:var(--serif);font-size:16px;color:var(--gold);flex-shrink:0;margin-top:2px}.help-steps strong{font-weight:500;font-size:13px}.help-steps p{font-size:12px;margin:6px 0 0}.help-colours{display:flex;gap:20px;font-size:11px}.help-colours>span{display:flex;gap:8px;align-items:center;color:var(--gold)}.help-colours>span:nth-child(2){color:var(--teal)}.help-colours .icon{width:17px;height:17px;fill:currentColor}.help-colours~.primary{width:100%}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:17px 0;border-bottom:1px solid var(--line)}.setting-row strong{font-size:13px;font-weight:500}.setting-row p{font-size:11px;margin:6px 0 0}.setting-row input{appearance:none;display:block;flex-shrink:0;width:43px;height:26px;border:1px solid #537076;border-radius:30px;background:#263e46;cursor:pointer;position:relative}.setting-row input:after{content:'';display:block;position:absolute;width:18px;height:18px;border-radius:50%;background:#9ab0b3;top:3px;left:3px;transition:transform .2s}.setting-row input:checked{background:var(--gold);border-color:var(--gold)}.setting-row input:checked:after{background:#26383a;transform:translateX(17px)}.settings-footer{display:flex;gap:10px;margin-top:25px}.settings-footer .btn{flex:1;font-size:12px}.unlock-art{height:155px;border-radius:14px;background:linear-gradient(0deg,#19343e00,transparent),url('./assets/hero-village.webp') center 55%/cover;margin:0 0 20px}.unlock-price{font-family:var(--serif);font-size:35px!important;color:var(--gold)!important;margin-bottom:20px!important}.unlock-price span{font-family:var(--sans);font-size:12px;color:var(--muted);display:inline-block;margin-left:6px}.unlock-features{list-style:none;padding:0;display:grid;gap:13px;font-size:12px;margin-bottom:24px}.unlock-features li{display:flex;align-items:center;gap:10px}.unlock-features .icon{width:16px;height:16px;color:var(--gold)}.store-notice{padding:15px 17px;background:#ffffff05;border:1px solid var(--line);border-radius:12px}.store-notice strong{font-size:12px;font-weight:500;color:var(--gold)}.store-notice p{font-size:11px;margin:7px 0 0}.about-links{display:grid;gap:10px;margin-bottom:22px}.toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);z-index:100;background:#f4dfb0;color:#182c32;padding:15px 22px;box-shadow:0 10px 40px #0005;border-radius:13px;font-size:12px;line-height:1.6;max-width:calc(100% - 32px);width:max-content}.toast[hidden]{display:none}.noscript{padding:50px}.noscript h1{font-size:50px}.noscript p{margin-top:20px}.high-contrast{--muted:#d4dfdd;--line:#78949577}.high-contrast .edge.horizontal:not(.drawn) span{background:repeating-linear-gradient(90deg,#b1c5c2 0,#b1c5c2 5px,transparent 5px,transparent 10px)}.high-contrast .edge.vertical:not(.drawn) span{background:repeating-linear-gradient(0deg,#b1c5c2 0,#b1c5c2 5px,transparent 5px,transparent 10px)}.high-contrast .dot{box-shadow:0 0 0 2px #0b1c27}.high-contrast .edge.drawn span{box-shadow:none}.high-contrast .cell-owner>.icon{width:18px;height:18px}.high-contrast .board-cell.claimed{background:#ffdb8e19}.high-contrast .board-cell.owner-1{background:#73d8d31c}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@keyframes arrive{from{opacity:.3;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}@keyframes light-up{from{opacity:.25;filter:brightness(1.7)}to{opacity:1;filter:brightness(1)}}@keyframes path-in{from{opacity:.3}to{opacity:1}}@keyframes breathe{to{opacity:.35}}
@media(min-width:1500px){.welcome-hero{padding-top:90px}.hero-art{background-position:center 55%}.hero-shade{background:linear-gradient(90deg,#071d29c9,transparent 75%),linear-gradient(0deg,#061821,transparent 50%)}.welcome-actions{padding-top:130px}.hero-note{right:8%}}
@media(max-width:1150px){.sidebar{width:210px;padding:30px 18px}.content-wrap{margin-left:210px}.wordmark{font-size:34px}.hero-note{display:none}.welcome-hero{padding-left:8%;padding-right:8%}.welcome-copy h1{font-size:84px}.game-layout{grid-template-columns:minmax(300px,530px)}.game-aside{display:none}.level-grid{gap:11px}.level-card{padding:15px 10px;min-height:200px}.level-name{font-size:15px}.daily-body{padding:30px 24px}.daily-body h2{font-size:28px}.home-bottom{padding:0 25px;gap:12px}.home-bottom>div{font-size:9px}.chapter-banner{padding:25px}.unlock-ribbon{padding:20px;gap:12px}.unlock-ribbon strong{font-size:16px}}
@media(max-width:800px){.sidebar{display:none}.content-wrap{margin-left:0}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:19px 23px;height:72px;position:absolute;top:env(safe-area-inset-top,0);left:0;right:0;z-index:5}.mobile-header .studio{font-size:17px}.mobile-header .brand-mark{font-size:32px}.mobile-header .icon-button{width:35px;height:35px;background:#0b1c274d;border:0;backdrop-filter:blur(10px)}.mobile-header .icon{width:21px;height:21px}.main{min-height:calc(100svh - 74px);padding-bottom:90px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:70px;padding:5px 12px calc(5px + env(safe-area-inset-bottom,0));height:calc(70px + env(safe-area-inset-bottom,0));z-index:20;background:#081c27f2;backdrop-filter:blur(18px);border-top:1px solid var(--line);justify-content:space-around}.mobile-nav .nav-item{padding:7px 13px;min-width:64px;gap:6px;border-radius:10px;flex-direction:column;justify-content:center;text-align:center;font-size:9px}.mobile-nav .nav-item .icon{width:20px;height:20px}.mobile-nav .nav-item i{display:none}.home-screen{padding:0 0 calc(70px + env(safe-area-inset-bottom,0))}.welcome-hero{min-height:calc(100svh - 70px - env(safe-area-inset-bottom,0));padding:95px 28px 25px}.welcome-copy{text-align:center;margin:0 auto}.welcome-copy>.eyebrow{font-size:8px;letter-spacing:1.7px}.welcome-copy h1{font-size:clamp(72px,12vw,100px);letter-spacing:-3px;line-height:1.2;margin:5px 0 12px}.welcome-copy h1 sup{font-size:17px;margin-top:13px}.hero-tagline{font-size:22px;line-height:1.4}.hero-description{display:none}.hero-art{background-position:55% 50%}.hero-shade{background:linear-gradient(0deg,#061924 0%,rgba(6,25,36,.92) 4%,rgba(6,25,36,.04) 43%,rgba(6,25,36,.25) 61%,rgba(6,25,36,.95) 100%)}.welcome-actions{margin:260px auto 0;width:350px;padding-top:0}.hero-kicker{font-size:7px;letter-spacing:1.6px;margin-bottom:13px}.welcome-actions .primary{min-height:58px;font-size:23px;border-radius:17px}.welcome-actions .outline{min-height:49px;font-size:16px;border-radius:15px}.welcome-actions .btn{margin-bottom:10px}.purchase-promise{font-size:10px;margin-top:1px}.home-bottom{display:none}.villages-screen,.daily-screen,.quick-screen{padding:101px 25px 100px}.page-heading{margin-bottom:28px}.page-heading h1{font-size:36px;max-width:550px;line-height:1.3}.page-heading p{font-size:12px}.page-heading .eyebrow{font-size:8px}.level-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.chapter-banner{min-height:207px;padding:24px}.chapter-banner h2{font-size:30px}.chapter-banner>div:first-child{max-width:70%}.chapter-banner p{font-size:11px}.chapter-art{width:65%}.village-tabs{margin-bottom:14px}.village-tab{font-size:10px;padding:10px 13px}.play-screen{padding:22px 22px 0;min-height:100svh}.playing .mobile-header{display:none}.game-layout{grid-template-columns:minmax(0,500px)}.game-top{margin-bottom:22px}.game-top h1{font-size:27px}.game-top .eyebrow{font-size:6px}.game-panel{padding-bottom:env(safe-area-inset-bottom,0)}.game-scenery{margin:0 -22px;height:160px;border-radius:0;background-position:center 70%}.game-top{padding-top:env(safe-area-inset-top,0)}.toast{bottom:95px}.result-card{margin-bottom:35px}.result-card+.game-scenery{display:none}}
@media(max-width:540px){.welcome-hero{padding:90px 25px 24px;min-height:calc(100svh - 70px - env(safe-area-inset-bottom,0))}.welcome-copy>.eyebrow{font-size:6.5px;letter-spacing:1.5px}.welcome-copy h1{font-size:76px;letter-spacing:-3px;margin-top:6px}.hero-tagline{font-size:19px}.mobile-only{display:initial}.welcome-actions{margin-top:auto;padding-top:230px;width:100%}.hero-art{background-position:52% 50%}.hero-shade{background:linear-gradient(0deg,#061924,rgba(6,25,36,.82) 15%,rgba(6,25,36,.03) 44%,rgba(6,25,36,.35) 68%,#081e2eee 100%)}.welcome-actions .primary{min-height:58px}.hero-kicker{font-size:6.5px}.page-heading h1{font-size:32px;letter-spacing:-.6px}.villages-screen,.daily-screen,.quick-screen{padding-left:21px;padding-right:21px}.level-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.level-card{min-height:210px;padding:18px 13px}.level-name{font-size:17px}.level-description{font-size:9px}.level-house{width:75px;height:75px}.chapter-banner{padding:23px 20px;min-height:220px}.chapter-banner>div:first-child{max-width:76%}.chapter-banner h2{font-size:30px}.chapter-banner p{max-width:220px;font-size:11px;text-shadow:0 1px 5px #122c35}.chapter-banner .eyebrow{font-size:7px}.chapter-art{width:68%;opacity:.85;background-position:60% center}.chapter-count{font-size:9px}.unlock-ribbon{flex-direction:column;align-items:stretch;gap:20px;margin-top:27px;padding:23px}.unlock-ribbon strong{font-size:19px}.unlock-ribbon>.btn{width:100%}.chapter-footnote{font-size:10px}.daily-card{grid-template-columns:1fr}.daily-art{height:210px;background:linear-gradient(0deg,#102732,transparent 50%),url('./assets/hero-village.webp') center 58%/cover}.daily-body{padding:5px 25px 28px}.daily-body h2{font-size:30px;margin-top:17px}.daily-body p{font-size:12px}.quick-card{padding:24px 18px}.quick-card legend{font-size:20px}.choice-grid{gap:10px}.choice{padding:21px 7px}.choice strong{font-size:12px}.choice span{font-size:9px}.segment{gap:6px}.segment label{font-size:11px;padding:13px 5px}.field-note{font-size:10px}.play-screen{padding:22px 14px 0}.game-top{gap:8px;margin:0 2px 23px}.game-top h1{font-size:25px}.game-top .eyebrow{font-size:5.8px;letter-spacing:1.2px}.game-top .icon-button{width:33px;height:33px}.scoreboard{margin:0 6px;gap:10px}.score{padding:11px 12px;gap:9px;font-size:18px;border-radius:12px}.score strong{font-size:27px}.score .icon{width:24px;height:24px}.score-vs{font-size:15px}.turn-row{margin:22px 8px 22px}.turn-pill{font-size:11px;padding:8px 17px}.moves-left{font-size:9px}.board-surround{padding:16px 18px 18px}.dot{width:12px;height:12px}.edge.horizontal{padding:0 11px}.edge.vertical{padding:11px 0}.edge.horizontal.drawn span{height:4px}.edge.vertical.drawn span{width:4px}.board-cell .cell-owner .icon{width:11px;height:11px}.game-message{font-size:18px;margin-top:14px}.game-hint{font-size:10px}.game-controls{margin:23px 12px 13px}.game-scenery{margin:0 -14px;height:155px}.result-card{margin:20px 6px 30px;padding:23px}.result-card h2{font-size:27px}.result-card p{font-size:11px}.result-card .btn.primary{font-size:14px}dialog{padding:33px 25px 27px;border-radius:21px}dialog h2{font-size:28px}dialog p{font-size:12px}.settings-footer .btn{font-size:11px;padding:13px}.unlock-price{font-size:34px!important}.unlock-price span{font-size:10px}.toast{font-size:11px}}
@media(max-width:360px){.welcome-copy h1{font-size:65px}.welcome-copy>.eyebrow{font-size:5.6px}.hero-tagline{font-size:17px}.welcome-actions{padding-top:180px}.welcome-actions .outline{font-size:14px}.page-heading h1{font-size:29px}.score{gap:6px;padding:10px}.score strong{font-size:24px}.score span{font-size:16px}.game-top h1{font-size:22px}.game-top .eyebrow{display:none}.game-message{font-size:16px}.game-controls{gap:9px}.level-name{font-size:15px}}
@media(max-height:760px) and (max-width:540px){.welcome-actions{padding-top:170px}.welcome-hero{padding-top:82px}.welcome-copy h1{font-size:68px}.hero-tagline{font-size:17px}.welcome-copy>.eyebrow{display:none}.game-top{margin-bottom:18px}.turn-row{margin-top:18px;margin-bottom:16px}.game-controls{margin-top:19px}.game-scenery{height:110px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* A calm, one-action-at-a-time introduction. */
.home-learn-link{width:100%;justify-content:center;min-height:44px;margin-top:12px;color:var(--ink)}
dialog[data-welcome] h2{max-width:310px;color:var(--gold)}
.welcome-illustration{height:135px;border-radius:14px;margin-bottom:22px;background:linear-gradient(0deg,#142d3644,transparent),url('./assets/hero-village.webp') center 58%/cover;border:1px solid var(--line)}
dialog .welcome-thanks{font-family:var(--serif);font-size:19px;line-height:1.5;color:var(--ink)}
dialog[data-welcome] strong{color:var(--ink);font-weight:500}
.welcome-reassurance{display:block;text-align:center;font-size:11px;line-height:1.6;color:var(--muted);margin-top:15px}
.learn-screen{padding:24px 26px 36px;background:radial-gradient(ellipse at 50% 30%,#29453b44,transparent 65%)}
.tutorial-screen{max-width:540px;margin:auto}
.tutorial-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}
.tutorial-top .text-button{min-height:44px}
.tutorial-top .eyebrow{font-size:8px;letter-spacing:1.6px}
.tutorial-top .icon-button{width:36px;height:36px;background:none;border:0}
.tutorial-heading{text-align:center}
.tutorial-badge{display:inline-flex;align-items:center;gap:7px;color:var(--gold);font-size:11px;line-height:1.6}
.tutorial-badge .icon{width:15px;height:15px}
.tutorial-heading h1{font-size:clamp(27px,3.5vw,37px);line-height:1.25;margin:12px 0;letter-spacing:-.5px;outline:0}
.tutorial-heading p{max-width:455px;margin:auto;font-size:14px;line-height:1.7;color:#c2d0cd;min-height:72px}
.tutorial-progress{display:flex;justify-content:center;gap:7px;margin:17px 0 22px}
.tutorial-progress i{width:23px;height:4px;border-radius:5px;background:#7c9a9740}
.tutorial-progress .done{background:var(--gold)}
.tutorial-progress .current{background:#c5aa71}
.tutorial-scoreboard{display:flex;align-items:center;gap:14px;max-width:430px;margin:0 auto}
.tutorial-scoreboard>span{font-size:10px;line-height:1.5;text-align:center;color:var(--muted);max-width:75px}
.tutorial-score{flex:1;display:flex;align-items:center;gap:9px;border:1px solid #f3dba933;border-radius:12px;padding:11px 13px;background:#081c2560;font-size:14px}
.tutorial-score.amber{color:var(--gold)}
.tutorial-score.teal{color:var(--teal);border-color:#73d8d333}
.tutorial-score .icon{width:18px;height:18px;fill:currentColor}
.tutorial-score span{color:var(--ink)}
.tutorial-score strong{font-family:var(--serif);font-size:24px;font-weight:400;margin-left:auto;line-height:1.2}
.tutorial-board{width:min(100%,310px);margin:21px auto 15px;padding:25px 28px}
.tutorial-board .edge.horizontal{height:48px}
.tutorial-board .edge.vertical{width:48px}
.tutorial-board .edge.tutorial-target{z-index:6;border:1px dashed #ffdb8e77;border-radius:12px;background:#ffdb8e0c}
.tutorial-board .edge.tutorial-target span{background:var(--gold);box-shadow:0 0 18px #ffdb8e99;animation:practice-glow 1.6s ease-in-out infinite alternate}
.tutorial-board .edge.horizontal.tutorial-target span{height:5px}
.tutorial-board .edge.vertical.tutorial-target span{width:5px}
.tap-here{position:absolute;white-space:nowrap;font-size:12px;font-weight:600;line-height:1.3;background:var(--gold);color:#20302d;border-radius:8px;padding:8px 12px;box-shadow:0 4px 20px #030e1777;pointer-events:none}
.horizontal .tap-here{bottom:calc(50% + 12px);left:50%;transform:translateX(-50%)}
.vertical .tap-here{right:calc(50% + 12px);top:50%;transform:translateY(-50%)}
.tap-here:after{content:'';position:absolute;border:5px solid transparent}
.horizontal .tap-here:after{top:100%;left:calc(50% - 5px);border-top-color:var(--gold)}
.vertical .tap-here:after{left:100%;top:calc(50% - 5px);border-left-color:var(--gold)}
.tutorial-bottom{text-align:center;max-width:440px;margin:auto}
.tutorial-bottom>.btn{width:100%;max-width:340px;margin:2px auto 9px}
.tutorial-hint{display:flex;align-items:flex-start;justify-content:center;gap:8px;font-size:12px;line-height:1.65;color:var(--gold);min-height:32px}
.tutorial-hint .icon{width:17px;height:17px;margin-top:2px}
.tutorial-bottom>.text-button{min-height:44px;margin-top:6px}
.tutorial-safe{font-size:10px;line-height:1.6;color:var(--muted)}
.tutorial-takeaway{padding:17px 19px;margin-bottom:18px;border:1px solid #ffdb8e26;border-radius:14px;background:#ffdb8e05}
.tutorial-takeaway strong{font-size:13px;font-weight:500;color:var(--gold);line-height:1.6}
.tutorial-takeaway p{font-size:12px;line-height:1.65;margin-top:8px;color:#c2d0cd}
@keyframes practice-glow{from{box-shadow:0 0 7px #ffdb8e44}to{box-shadow:0 0 21px #ffdb8ebb}}
@media(max-width:760px){.main.learn-screen{padding-bottom:30px}.tutorial-top{margin-bottom:16px}}
@media(max-width:540px){.learn-screen{padding:12px 20px 28px}.tutorial-top{gap:8px;margin-bottom:12px}.tutorial-top .text-button{font-size:11px}.tutorial-top .eyebrow{font-size:7px;letter-spacing:1px}.tutorial-heading h1{font-size:29px;margin:10px 0}.tutorial-heading p{font-size:13px;line-height:1.65;min-height:86px}.tutorial-progress{margin:14px 0 18px}.tutorial-scoreboard{gap:9px}.tutorial-score{padding:10px;gap:7px}.tutorial-scoreboard>span{font-size:9px;max-width:65px}.tutorial-board{width:min(100%,285px);margin:14px auto 12px;padding:24px}.welcome-illustration{height:115px}.tutorial-takeaway{padding:14px}.tutorial-safe{font-size:10px}}
@media(max-width:360px){.learn-screen{padding-left:16px;padding-right:16px}.tutorial-heading h1{font-size:26px}.tutorial-top .eyebrow{display:none}.tutorial-scoreboard{gap:7px}.tutorial-score{font-size:13px;padding:9px;gap:6px}.tutorial-score .icon{width:16px;height:16px}.tutorial-scoreboard>span{font-size:8px;max-width:52px}}

/* The Missing Piece: a village that remembers each completed match. */
.hero-village-link{justify-content:center;width:100%;min-height:44px;color:var(--gold);margin:0 0 8px}
.home-learn-link{display:flex;align-items:center;gap:8px;background:none;font-size:12px}
.home-learn-link .icon{width:17px;height:17px}
.home-journey{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(250px,1fr);align-items:center;gap:40px;padding:48px clamp(25px,6vw,80px);background:#0c222b;border-top:1px solid var(--line)}
.home-journey-scene{border:1px solid #dbc18a26;border-radius:20px;overflow:hidden;box-shadow:0 20px 50px #03151d55}
.home-journey-copy h2{font-size:30px;line-height:1.35;margin:12px 0}
.home-journey-copy p{font-size:13px;line-height:1.8;color:var(--muted)}
.home-journey-copy>span:not(.eyebrow){display:block;color:var(--gold);font-size:11px;margin:15px 0}
.home-journey-copy>.btn{margin-top:3px}
.journey-summary{display:flex;align-items:center;gap:28px;color:var(--muted);font-size:12px;margin:-14px 0 28px}
.journey-summary>span{display:flex;align-items:center;gap:7px}
.journey-summary .icon{width:17px;height:17px;color:var(--gold);margin-right:3px}
.journey-summary strong{color:var(--ink);font-weight:500}
.village-tab .tab-count{font-size:9px;color:var(--muted);padding-left:5px}
.living-village{border:1px solid #d3bc892b;border-radius:24px;overflow:hidden;background:linear-gradient(135deg,#193139,#10262e);box-shadow:0 12px 40px #00101a25}
.village-heading{padding:30px 32px 8px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.village-heading h2{font-size:36px;letter-spacing:-.6px;margin:10px 0 9px;line-height:1.3}
.village-heading p{font-size:13px;color:#b5c8c5;line-height:1.8;max-width:530px}
.village-state-badge{display:inline-flex;align-items:center;gap:7px;color:var(--gold);border:1px solid #ffdb8e29;border-radius:30px;padding:8px 12px;white-space:nowrap;font-size:10px;margin-top:4px}
.village-state-badge .icon{width:13px;height:13px}
.village-panorama{margin:12px 14px 0;border-radius:16px;overflow:hidden;background:#102631}
.village-status{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 32px 27px}
.village-status>div{flex:1;max-width:440px}
.village-lit-count{display:block;font-size:14px;font-weight:500;color:var(--gold);margin-bottom:12px}
.village-status p{font-size:11px;color:var(--muted);line-height:1.6;margin-top:9px}
.village-status>.btn{font-size:12px;flex-shrink:0}
.lane-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin-top:37px}
.lane-section-heading h2{font-size:25px;margin-top:8px;line-height:1.45}
.lane-section-heading>p{font-size:11px;max-width:210px;text-align:right;color:var(--muted)}
.village-levels{margin-top:20px}
.village-levels .level-card{min-height:235px;padding-bottom:20px}
.village-levels .level-house{margin-top:9px;margin-bottom:9px;opacity:.7}
.village-levels .level-card.completed .level-house{opacity:1}
.village-levels .level-card.completed{background:linear-gradient(150deg,#283931,#132b31);border-color:#cfaf6370}
.village-levels .level-card.completed:after{content:'✓';position:absolute;top:12px;right:14px;color:var(--gold);font-size:13px}
.village-levels .level-card.locked{border-style:dashed}
.village-levels .building-name{font-family:var(--serif);font-size:17px;color:var(--ink);line-height:1.4}
.village-levels .level-name{font-family:var(--sans);font-size:10px;color:var(--muted);margin-top:7px}
.village-levels .level-description{font-size:9px;line-height:1.7;margin-top:7px}
.village-levels .level-card .stars{margin-top:auto}
.keepsake-shelf{margin-top:38px;padding:28px 30px 25px;border:1px solid var(--line);border-radius:20px;background:#081d2680}
.keepsake-shelf h2{font-size:28px;margin:9px 0}
.keepsake-shelf p{font-size:12px;color:var(--muted)}
.keepsake-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}
.keepsake{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;padding:14px 6px 10px;background:transparent;border-radius:14px;border:1px solid transparent;min-width:0}
.keepsake:hover{background:#ffffff04;border-color:var(--line)}
.keepsake-medal{position:relative;display:grid;place-items:center;width:56px;height:56px;border:1px dashed #839b9559;border-radius:50%;background:#1a3236;color:#708a88;margin-bottom:5px}
.keepsake-medal .icon{width:26px;height:26px}
.keepsake strong{font-weight:400;font-family:var(--serif);font-size:13px;line-height:1.45;color:var(--muted)}
.keepsake>span:last-child{font-size:9px;color:var(--muted)}
.keepsake.earned .keepsake-medal{color:var(--gold);background:radial-gradient(circle,#ffdb8e23,#193138);border:1px solid #d4ae65;box-shadow:0 0 24px #ffdb8e14}
.keepsake.earned strong,.keepsake.earned>span:last-child{color:var(--gold)}
.keepsake-medal i{position:absolute;right:-1px;bottom:0;display:grid;place-items:center;width:18px;height:18px;background:var(--gold);border-radius:50%;color:#1c322c;font:600 10px var(--sans)}
.match-home-note{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 12px 8px;color:var(--muted);font-size:10px;line-height:1.7;text-align:center}
.match-home-note .icon{width:15px;height:15px;color:var(--gold)}
.match-home-note strong{font-weight:500;color:var(--ink)}
.prepared-board-note{font-size:11px;color:var(--muted);line-height:1.7;margin:11px 12px 7px;padding:11px 14px;background:#ffdb8e06;border:1px solid #ffdb8e18;border-radius:11px}
.prepared-board-note strong{font-weight:500;color:var(--gold);display:block;margin-bottom:3px}
.aside-village{margin:24px -15px;border:1px solid var(--line);border-radius:13px;overflow:hidden}
.game-scenery.has-village{height:auto;background:none;max-height:240px;overflow:hidden;opacity:.85;margin-top:24px;border-radius:15px}
.game-scenery.has-village svg{display:block;width:100%;height:auto}
.game-aside>.btn.text{padding-left:0;font-size:11px}
.village-reward{border-top:1px solid #d5bc8733;margin-top:24px;padding-top:23px}
.village-reward>.eyebrow{font-size:8px;letter-spacing:1.4px}
.village-reward>h3{font-size:24px;line-height:1.35;margin:12px 0 18px;color:var(--ink)}
.reward-scene{margin:0 -9px 12px;border-radius:13px;overflow:hidden;border:1px solid var(--line)}
.village-reward>p{font-size:11px;margin:10px 0 15px}
.village-reward>.btn{width:100%;font-size:13px}
.village-celebration{margin:20px 0;padding:23px 17px;border:1px solid #ebc87959;border-radius:17px;background:radial-gradient(ellipse at top,#ffdb8e14,transparent 75%)}
.celebration-spark{display:inline-block;color:var(--gold);margin-bottom:12px}
.celebration-spark>.icon{width:30px;height:30px;fill:currentColor;filter:drop-shadow(0 0 15px #ffdc8980)}
.village-celebration h3{font-size:26px;color:var(--gold);line-height:1.35;margin-bottom:10px}
.village-celebration p{font-size:12px;line-height:1.75;color:#c8d3ca;margin-bottom:15px}
.village-celebration strong{display:flex;align-items:center;justify-content:center;gap:7px;font-size:11px;line-height:1.7;font-weight:500;color:var(--gold)}
.village-celebration strong .icon{width:15px;height:15px}
.keepsake-dialog-scene{border-radius:13px;overflow:hidden;border:1px solid var(--line);margin-bottom:22px}
.high-contrast .village-levels .level-card.completed{border-color:var(--gold)}
.high-contrast .keepsake strong{color:var(--ink)}
@media(max-width:1100px){.village-heading{flex-direction:column;gap:10px}.village-state-badge{margin:0}.home-journey{gap:26px}.home-journey-copy h2{font-size:25px}.keepsake-grid{gap:7px}}
@media(max-width:760px){.home-journey{grid-template-columns:1fr;padding:30px 24px;gap:25px}.home-journey-copy{max-width:480px}.village-heading{padding:25px 25px 8px}.village-heading h2{font-size:33px}.village-status{padding:22px 25px}.keepsake-shelf{padding:25px}.journey-summary{font-size:11px;gap:20px}.game-scenery.has-village{margin-left:0;margin-right:0;margin-bottom:0;max-height:220px}}
@media(max-width:540px){.villages-screen .page-heading{margin-bottom:26px}.journey-summary{flex-wrap:wrap;gap:10px 20px;font-size:10px;margin:0 0 20px}.journey-summary .icon{width:15px;height:15px}.living-village{border-radius:19px}.village-heading{padding:23px 20px 10px}.village-heading .eyebrow{font-size:7px;letter-spacing:1.2px}.village-heading h2{font-size:31px}.village-heading p{font-size:12px}.village-state-badge{font-size:9px;padding:6px 10px}.village-panorama{margin:7px 0 0;border-radius:0}.village-status{flex-direction:column;align-items:stretch;gap:18px;padding:21px 20px}.village-status>div{max-width:none}.village-lit-count{font-size:13px}.village-status>.btn{width:100%}.lane-section-heading{display:block;margin-top:29px}.lane-section-heading h2{font-size:24px}.lane-section-heading>p{text-align:left;max-width:none;margin-top:10px}.village-levels .level-card{min-height:223px}.village-levels .building-name{font-size:16px}.village-levels .level-description{font-size:8px}.keepsake-shelf{padding:23px 17px;margin-top:28px}.keepsake-shelf h2{font-size:26px}.keepsake-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 6px;margin-top:18px}.keepsake{padding-left:4px;padding-right:4px}.keepsake strong{font-size:12px}.keepsake-medal{width:48px;height:48px}.keepsake-medal .icon{width:23px;height:23px}.village-reward>h3{font-size:23px}.match-home-note{font-size:9px}.prepared-board-note{font-size:10px}.village-celebration h3{font-size:23px}.home-journey-copy h2{font-size:28px}.home-journey-copy .eyebrow{font-size:8px}.home-journey-copy>.btn{width:100%}}
