@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght,SOFT,WONK@9..144,400,40,1;9..144,500,40,1&display=swap');
:root{--paper:#f7f5ed;--ink:#283f34;--muted:#738072;--green:#345846;--light:#e8eddf;--accent:#b97c60;--line:#dde1d3;--serif:'Fraunces',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button{border:0}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible{outline:3px solid #be9256;outline-offset:4px}button svg,[data-icon] svg{width:22px;height:22px;display:block}a{color:inherit;text-decoration:none}button:hover:not(:disabled){filter:brightness(.97)}[hidden]{display:none!important}.site-header{max-width:1440px;margin:auto;padding:25px 50px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:13px;font:24px var(--serif);white-space:nowrap}.brand em{font-size:20px;color:#84917c}.brand small{display:block;font:8px var(--sans);letter-spacing:2px;margin-top:6px;color:var(--muted)}.brand-mark{background:var(--green);color:#ece7ce;border-radius:12px;width:45px;height:49px;display:grid;place-items:center;font-size:37px;line-height:1;position:relative;padding-bottom:6px;box-shadow:0 3px 0 #233f30}.brand-mark span{font-size:16px;position:absolute;right:4px;top:3px;color:#dfca92}nav{display:flex;gap:31px;align-items:center}.nav-link{background:transparent;color:var(--muted);font-size:13px;padding:10px 0;position:relative;min-height:44px}.nav-link.active{color:var(--ink)}.nav-link.active:after{content:'';position:absolute;width:4px;height:4px;background:var(--green);border-radius:50%;left:50%;bottom:0}.nav-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#9cab88;vertical-align:top;margin:3px 0 0 3px}.soon{font-size:8px;letter-spacing:.8px;background:#e8e9df;padding:3px 5px;border-radius:3px;margin-left:5px}.icon-button{width:40px;height:40px;display:grid;place-items:center;background:transparent;border:1px solid var(--line);border-radius:50%;flex-shrink:0}.icon-button svg{width:18px;height:18px}.app-shell{max-width:1440px;padding:40px 50px 24px;margin:auto;display:grid;grid-template-columns:minmax(190px,1fr) minmax(350px,560px) minmax(200px,1fr);gap:38px;align-items:start}.left-panel{padding-top:29px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:600;color:var(--muted)}h1{font:46px/1.17 var(--serif);letter-spacing:-1.5px;font-weight:400;margin:23px 0 22px}h1 em{color:#819177;font-weight:400}.intro p{font-size:13px;color:var(--muted);line-height:1.9}.mode-picker{margin-top:39px;display:grid;gap:10px}.mode{display:flex;gap:12px;align-items:center;padding:15px 10px;background:transparent;text-align:left;border-radius:10px;border:1px solid transparent;font-size:13px;min-height:72px}.mode.active{background:#e8ecdf;border-color:#dde4d2}.mode-icon{color:#6b8062}.mode-icon svg{width:20px}.mode small{display:block;font-size:10px;color:var(--muted);line-height:1.6;margin-top:4px}.mode-check{margin-left:auto;font-size:10px;opacity:0;color:#72876c}.mode.active .mode-check{opacity:1}.small-note{display:flex;align-items:center;gap:12px;margin-top:36px;color:#84917b}.tiny-sprig{font-size:29px}.small-note p{font-size:11px;line-height:1.8}.game-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:12px}.game-heading h2{font:27px var(--serif);font-weight:400;letter-spacing:-.6px;margin:7px 0 0}.game-toggles{display:flex;gap:8px}.board-surround{padding:22px 24px 18px;border-radius:16px;background:#e6ebdf;position:relative;border:1px solid #dce3d3;box-shadow:0 12px 35px -30px #526847}.scorebar{display:flex;align-items:center;justify-content:space-between;padding:0 2px 12px}.stat-label{display:block;letter-spacing:1.3px;font-size:8px;color:#75816d;margin-bottom:7px}.scorebar strong{font-size:22px;font-weight:500;font-variant-numeric:tabular-nums}.scorebar small{font-size:13px;color:#84907c}.timer{text-align:right}.board-flower{color:#abb89b;font-size:28px}.board-wrap{position:relative}.board{width:100%;aspect-ratio:1/1.08;position:relative;isolation:isolate;outline:none;margin:6px 0 5px;background-image:radial-gradient(#a7b79a60 .7px,transparent .7px);background-size:17px 17px;border-radius:6px}.tile{position:absolute;width:15.1%;height:14.95%;left:calc(1% + var(--x)*15.85% + var(--z)*1.3%);top:calc(3% + var(--y)*15.7% - var(--z)*1.3%);z-index:calc(1 + var(--z)*10);display:flex;align-items:center;justify-content:center;border:1px solid #e7e1cd;border-radius:7px;background:linear-gradient(150deg,#fffdf2,#f4efdc);box-shadow:0 4px 0 #c8c2a9,0 5px 0 1px #b6b7a1,0 7px 5px #53664825;padding:7px;transition:background .15s,box-shadow .15s,transform .15s;color:#58765b}.tile.free:hover{transform:translateY(-2px);box-shadow:0 6px 0 #c8c2a9,0 7px 0 1px #b6b7a1,0 9px 6px #53664825}.tile-art{width:100%;height:100%;pointer-events:none}.tile.blocked{background:linear-gradient(150deg,#e5e4d4,#dedfcc);border-color:#d9daca;box-shadow:0 4px 0 #b8bea8,0 5px 0 1px #aeb49c,0 6px 3px #53664820}.tile.blocked .tile-art{opacity:.37}.tile[data-face=moon],.tile[data-face=rain],.tile[data-face=pebble]{color:#6c8491}.tile[data-face=lotus],.tile[data-face=blossom],.tile[data-face=sun]{color:#bd8064}.tile.selected{background:#eaf1d8;outline:3px solid #72905b;outline-offset:-2px;transform:translateY(-3px);box-shadow:0 7px 0 #acb991,0 8px 0 1px #7e916b,0 10px 8px #53664830}.tile.hinted{outline:3px solid #c09a51;outline-offset:-3px;animation:glow 1.3s ease-in-out 2}.board-bottom{min-height:33px;text-align:center;padding-top:8px;font-size:10px;color:#63745d;line-height:1.7}.board-bottom #available{display:block;font-size:9px;color:#7d8975}.game-tools{display:flex;align-items:center;justify-content:center;margin:20px 0 16px;gap:8px}.tool-button{display:flex;gap:7px;align-items:center;justify-content:center;border-radius:8px;background:#efeee5;padding:12px 14px;font-size:11px;min-height:44px;white-space:nowrap}.tool-button svg{width:17px;height:17px}.tool-button kbd{font:8px var(--sans);color:#929987;margin-left:3px;border:1px solid #d8ddce;border-radius:3px;padding:2px 4px}.tool-divider{height:22px;width:1px;background:var(--line);margin:0 4px}.new-game{background:transparent;padding:12px 7px}.play-tip{font-size:10px;text-align:center;line-height:1.7;color:var(--muted);margin:0}.free-example{width:8px;height:11px;display:inline-block;border:1px solid #9fac8d;border-radius:2px;margin-right:5px;vertical-align:middle}.right-panel{padding-top:76px}.garden-card{border:1px solid #e0e2d4;border-radius:12px;padding:21px 19px;background:#f2f2e8}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:5px}.card-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.card-heading svg{width:16px;height:16px;color:#91a180}.garden-card h3{font:24px/1.3 var(--serif);letter-spacing:-.5px;margin:16px 0 0}.garden-art{display:block;width:100%;height:auto}.garden-progress-label{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:10px;margin:5px 0 10px;color:#63745d}.garden-progress-label span:last-child{color:#8b9582}progress{appearance:none;height:4px;width:100%;border:0;border-radius:8px;overflow:hidden;display:block;background:#dfe4d5}progress::-webkit-progress-bar{background:#dfe4d5}progress::-webkit-progress-value{background:#8d9f78;border-radius:8px}progress::-moz-progress-bar{background:#8d9f78}.garden-card p{font-size:10px;line-height:1.8;color:var(--muted);margin:13px 0 18px}.text-button{background:none;padding:0;min-height:32px;display:flex;align-items:center;gap:9px;font-size:11px}.text-button svg{width:16px;height:16px}.ritual-card{margin-top:25px;padding:3px 6px}.ritual-card h3{font:23px var(--serif);margin:11px 0}.ritual-card p{font-size:11px;line-height:1.9;color:var(--muted)}.ritual-card .text-button{color:#7d8967}.session-stat{display:flex;align-items:center;gap:12px;margin-top:26px;border-top:1px solid var(--line);padding:23px 6px 0}.session-stat .outline-moon{font-size:30px;color:#adb490}.session-stat strong{font-size:11px;font-weight:500}.session-stat small{display:block;font-size:10px;color:#8a9481;margin-top:4px}footer{max-width:1340px;margin:10px auto 0;padding:23px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;color:#8a9481;font-size:10px}footer>span:last-child{font-size:8px;letter-spacing:1.2px}footer button{background:transparent;padding:0;font-size:9px;letter-spacing:0;color:#78856f}.footer-dot{padding:0 8px}.pause-cover{position:absolute;inset:0;z-index:40;background:#e6ebdff5;backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:8px}.pause-cover>span{font-size:49px;color:#879b72}.pause-cover h3{font:28px var(--serif);margin:14px 0 4px}.pause-cover p{color:var(--muted);font-size:12px;margin:10px 0 26px}.primary-button{background:var(--green);color:#f7f5ea;display:flex;align-items:center;justify-content:center;gap:12px;border-radius:8px;padding:14px 22px;min-height:46px;font-size:12px}.primary-button svg{width:16px;height:16px}dialog{border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);max-width:460px;width:calc(100% - 32px);padding:38px;box-shadow:0 30px 100px #233f3030;max-height:90dvh;overflow:auto}dialog::backdrop{background:#263c3460;backdrop-filter:blur(5px)}.modal-close{position:absolute;right:14px;top:14px;width:32px;height:32px}.modal-icon{font-size:35px;color:#8da079;display:block;margin:7px 0 15px}dialog h2{font:32px/1.15 var(--serif);letter-spacing:-.8px;margin:12px 0 16px}dialog p{font-size:13px;line-height:1.8;color:var(--muted)}dialog .primary-button{width:100%;margin-top:23px}dialog .secondary-button{background:#e9ecdf;border-radius:8px;min-height:44px;padding:12px 18px;width:100%;margin-top:10px;font-size:12px}.rules{padding:0;list-style:none;counter-reset:rules}.rules li{counter-increment:rules;margin:20px 0;display:flex;gap:13px;font-size:12px;line-height:1.8}.rules li:before{content:counter(rules);background:#e5eadb;border-radius:50%;flex-shrink:0;width:26px;height:26px;text-align:center;line-height:26px;font-size:10px;margin-top:2px}.rules strong{display:block;font-weight:600}.rules span{color:#71816c}.win-stats{display:flex;gap:20px;background:#e9eddf;border-radius:9px;padding:18px;margin:23px 0}.win-stats>span{flex:1}.win-stats small{display:block;font-size:9px;color:var(--muted);margin-bottom:5px}.win-stats strong{font-size:23px;font-weight:500}.milestones{list-style:none;padding:0;margin-top:24px}.milestones li{display:flex;gap:12px;align-items:center;margin:13px 0;font-size:12px}.milestones li>span:first-child{width:25px;height:25px;border-radius:50%;background:#e3e8d8;display:grid;place-items:center}.milestones .locked{opacity:.5}.milestones svg{width:14px;height:14px}.club-list{font-size:13px;line-height:2.2;padding-left:18px;color:#64765e}.fine-print{font-size:10px!important;line-height:1.7!important}.empty-board{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#839574;font:24px var(--serif)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#345846;color:#f7f5ed;padding:13px 20px;border-radius:9px;box-shadow:0 6px 24px #243d3030;font-size:12px;z-index:100;max-width:calc(100% - 32px);text-align:center;min-width:200px}@keyframes glow{50%{box-shadow:0 4px 0 #c8c2a9,0 0 16px #c09a5190}}@media(min-width:1440px){.app-shell{padding-top:55px;gap:55px}.left-panel{padding-top:35px}h1{font-size:52px}.right-panel{padding-top:76px}}@media(max-width:1200px){.site-header{padding:22px 30px}.app-shell{padding:30px;gap:23px;grid-template-columns:190px minmax(320px,1fr) 200px}h1{font-size:39px}.mode{padding:12px 7px;gap:8px}.mode small{font-size:9px}.garden-card{padding:17px 14px}.garden-card h3{font-size:21px}.board-surround{padding:20px 18px 16px}.tool-button{padding:11px 9px}.tool-button kbd{display:none}footer{margin:10px 30px 0}}@media(max-width:1000px){.app-shell{grid-template-columns:190px minmax(320px,1fr);max-width:900px;gap:30px}.right-panel{display:none}.game-panel{max-width:530px;width:100%;justify-self:end}.site-header nav{gap:22px}.board-surround{padding:20px 24px 16px}}@media(max-width:650px){.site-header{padding:17px 19px;gap:10px}.brand{font-size:20px;gap:10px}.brand-mark{width:35px;height:39px;font-size:30px;border-radius:9px}.brand-mark span{font-size:12px}.brand small{font-size:6px;letter-spacing:1.4px}.site-header nav{margin-left:auto;gap:13px}.nav-link{font-size:11px}.nav-link.active,.nav-link .soon,.nav-dot{display:none}#club-nav{display:none}.site-header>.icon-button{width:34px;height:34px}.app-shell{display:flex;flex-direction:column;gap:20px;padding:20px 16px 12px;max-width:520px}.left-panel{padding:0;width:100%}.intro,.small-note{display:none}.mode-picker{display:flex;margin:0;gap:8px}.mode{flex:1;min-height:58px;padding:10px;gap:9px;background:#eeeee4}.mode-icon svg{width:18px}.mode small{font-size:9px;margin-top:3px}.mode-check{display:none}.mode span:nth-child(2){font-size:12px}.game-panel{max-width:none}.game-heading{margin:0 2px 15px}.game-heading h2{font-size:25px}.game-heading .eyebrow{font-size:8px;letter-spacing:1.3px}.game-toggles .icon-button{width:35px;height:35px}.board-surround{padding:17px 12px 13px;border-radius:13px}.scorebar{padding:0 6px 10px}.scorebar strong{font-size:20px}.tile{border-radius:6px;padding:5px}.board-bottom{font-size:10px}.board-bottom #available{font-size:9px}.game-tools{gap:7px;margin:16px 0}.tool-button{flex:1;padding:11px 8px;gap:6px}.tool-divider{margin:0}.new-game{flex:0}.new-game>span:last-child{display:none}.play-tip{font-size:10px;padding:0 15px;max-width:360px;margin:auto}footer{margin:13px 16px 0;padding:18px 0;align-items:center;flex-direction:column;font-size:9px}footer>span:last-child{font-size:7px}dialog{padding:30px 25px}.board{margin-top:2px}}@media(max-width:360px){.app-shell{padding-inline:10px}.board-surround{padding-inline:8px}.mode small{font-size:8px}.site-header{padding-inline:13px}.tile{padding:4px}.mode{gap:7px}.tool-button{font-size:10px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(pointer:coarse){.icon-button,.game-toggles .icon-button,.site-header>.icon-button{min-width:44px;min-height:44px}.text-button{min-height:44px}}
