/* Folio's desk: card-like parchment tiles; the playing surface stays flat. */
body[data-game=number-worm]{--nw-paper:#eee3ca;--nw-ink:#253e36;--nw-green:#70b58a;--nw-line:#d9b570;background:radial-gradient(ellipse at 20% 38%,#23413880,transparent 60%),var(--bg,#111720)}
.nw-nav{max-width:1240px;margin:auto;padding:16px 24px;display:flex;align-items:center;gap:20px}.nw-nav>a{font-weight:700}.nw-nav>span{flex:1;color:var(--muted,#aca99e);font-size:13px}.nw-nav button{min-height:40px}
.nw-intro{max-width:1140px;margin:22px auto 16px;display:flex;align-items:center;justify-content:space-between;padding:0 20px}.nw-intro h1{font-size:clamp(30px,4vw,48px);line-height:1.12;margin:5px 0}.nw-intro p{margin:7px 0;color:var(--muted,#b4b7b1)}.nw-intro>a{font-size:14px}
.nw-layout{max-width:1120px;margin:0 auto 50px;display:grid;grid-template-columns:380px minmax(0,620px);gap:42px;align-items:center;padding:0 20px}.nw-desk{background:linear-gradient(145deg,#20332d,#162521);border:1px solid #d9b57065;border-radius:24px;padding:24px;box-shadow:0 18px 45px #0004,inset 0 1px #fff1;min-width:0}.nw-menu-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.nw-menu-heading h2{font-size:30px;margin:8px 0}.nw-menu-heading .eyebrow{font-size:10px;letter-spacing:.13em}#streak{font-size:12px;color:#d8bc80;white-space:nowrap}.nw-date,.nw-reset{color:#bac5b9;font-size:13px}.nw-dailies{display:grid;gap:10px;margin:18px 0 12px}.nw-daily{width:100%;display:flex;gap:16px;text-align:left;align-items:center;min-height:80px;background:#f6ead810;border:1px solid #d2b98940;border-radius:14px;padding:12px 16px}.nw-daily:hover{border-color:#d9b570;transform:translateY(-1px)}.nw-daily strong{display:block;font-size:20px;color:#f0e5ce}.nw-daily small{display:block;color:#c0c9ba;margin-top:4px}.nw-daily .nw-badge{margin-left:auto;font-size:12px;color:#efd79b}.nw-mini{width:44px;height:44px;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;flex-shrink:0}.nw-mini i{border-radius:2px;background:#e5d6b321}.nw-mini i.on{background:#bba56c}.nw-daily:nth-child(2) .nw-mini i.on{background:#8cad95}.nw-daily:nth-child(3) .nw-mini i.on{background:#b49bc9}.nw-level-card{display:flex;align-items:center;gap:15px;border-top:1px solid #d9b57040;padding-top:20px;margin-top:20px}.nw-level-card>div{flex:1}.nw-level-card h3{margin:8px 0;font-size:23px}.nw-level-card p{font-size:13px;color:#bac5b9;margin:5px 0}.nw-menu-tools{display:flex;gap:10px;margin-top:15px}.nw-soft-note{font-size:12px;color:#a9b8a7;margin-bottom:0}.nw-play-heading{display:flex;gap:10px;align-items:center;justify-content:space-between;font-size:12px}.nw-play-heading button{font-size:12px;padding:7px 10px}.nw-play-heading strong{text-align:center}.nw-play-heading #timer{font-variant-numeric:tabular-nums;min-width:38px}.nw-totals{display:flex;align-items:center;justify-content:center;gap:28px;padding:17px 0}.nw-totals small{display:block;font-size:11px;color:#bac5b9;text-transform:uppercase;letter-spacing:.1em}.nw-totals strong{display:block;font-size:36px;line-height:1.2;color:#eee0b9;font-variant-numeric:tabular-nums}#current-total{color:#9bd1a9}.nw-feature-count{max-width:105px;font-size:12px;color:#cfccac}.number-board{position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:7px;max-width:440px;margin:auto;touch-action:none;user-select:none;isolation:isolate}.nw-tile{position:relative;aspect-ratio:1;min-width:0;min-height:0;border:1px solid #c9b58c;border-radius:9px;padding:0;background:linear-gradient(145deg,#fcf3df,#e0d1b2);color:var(--nw-ink);box-shadow:0 3px 0 #8b7956,0 6px 9px #0003;font:700 25px Georgia,serif;display:grid;place-items:center;transition:box-shadow .16s,background .16s,transform .16s;z-index:1}.nw-tile>span{position:relative;z-index:3;pointer-events:none}.nw-tile>small{position:absolute;bottom:4px;font:700 8px system-ui;letter-spacing:.02em;z-index:3;pointer-events:none}.nw-tile>i{position:absolute;right:4px;top:2px;font:700 13px system-ui;font-style:normal;z-index:3;pointer-events:none}.nw-tile.wall{background:linear-gradient(150deg,#34453c,#202e28);color:#708073;border-color:#65735a40;box-shadow:inset 0 3px 8px #0005;font-size:25px}.nw-tile.neg{color:#245486}.nw-tile.mul{color:#885812;background:linear-gradient(145deg,#fff0b9,#d6b974)}.nw-tile.start,.nw-tile.end{border:2px solid #dcb775}.nw-tile.visited{background:linear-gradient(135deg,#d8e8c6,#9ac69f);box-shadow:0 2px 0 #52794a,0 0 0 1px #b5d895}.nw-tile.head{box-shadow:0 0 0 3px #e5c87d,0 4px 12px #0004;transform:translateY(-2px)}.nw-tile.hint{outline:3px dashed #ecc875;outline-offset:2px}.nw-tile:focus-visible{outline:3px solid #f3ca76;outline-offset:3px;z-index:4}.number-board svg{position:absolute;width:100%;height:100%;inset:0;z-index:2;pointer-events:none;overflow:visible}.nw-path-message{min-height:34px;font-size:13px;color:#d9dbc9;text-align:center;margin:15px 0 5px}.nw-actions{display:grid;grid-template-columns:1fr 1.25fr 1.4fr;gap:8px}.nw-actions button{min-height:43px}.nw-actions small{font-size:10px;opacity:.85}.nw-subactions{display:flex;justify-content:space-between;margin-top:10px;gap:8px}.nw-subactions button{border:0;background:none;font-size:12px;padding:5px}.nw-notice{font-size:12px;color:#ead29b;margin:6px 0 0;text-align:center}.nw-notice:empty{display:none}#challenge-note{font-size:12px;color:#ecd598;text-align:center;margin:8px 0 0}.folio-scene{position:relative;height:490px;pointer-events:none;--px:0px;--py:0px}.folio-halo{position:absolute;inset:0;background:radial-gradient(ellipse,#d1b57828,transparent 66%);transform:translate(calc(var(--px)*-.3),0)}.folio-books,.folio-character{position:absolute;inset:25px -10px 75px;background:url('assets/world/folio.webp') center/contain no-repeat;filter:drop-shadow(0 12px 12px #0004)}.folio-books{clip-path:inset(68% 0 0);transform:translate(calc(var(--px)*.4),0)}.folio-character{clip-path:inset(0 0 31%);transform-origin:50% 72%;animation:folio-breathe 6s ease-in-out infinite;translate:var(--px) var(--py)}.folio-bookmark{position:absolute;left:63%;top:73%;width:9px;height:33px;background:linear-gradient(90deg,#bf9872,#8d3444);clip-path:polygon(0 0,100% 0,100% 100%,50% 85%,0 100%);transform-origin:top;animation:folio-bookmark 5s ease-in-out infinite;opacity:.9}.folio-caption{position:absolute;bottom:0;left:8%;right:8%;text-align:center}.folio-caption p{font:italic 19px Georgia,serif;color:#dbcaa5}.folio-scene.celebrate .folio-character{animation:folio-cheer .8s ease-in-out 2}.nw-rules{max-width:1100px;margin:50px auto;display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:30px 24px;border-top:1px solid #cbae6b40}.nw-rules p,.nw-rules li{font-size:15px;line-height:1.75;color:var(--muted,#b8beb6)}.nw-rules h2{font-size:27px}.nw-rules h3{margin-top:25px}.nw-footer{text-align:center;padding:20px;font-size:13px}body[data-game=number-worm] dialog{max-width:min(480px,calc(100vw - 28px));width:100%;border:1px solid #c9a66a;border-radius:20px;background:#1e302b;color:#f3e8d1;padding:26px;box-shadow:0 25px 70px #0008}body[data-game=number-worm] dialog::backdrop{background:#08110ed9}body[data-game=number-worm] dialog label{display:block;margin:15px 0}body[data-game=number-worm] dialog input[type=number]{width:100%;margin-top:8px;padding:12px;border:1px solid #b69b62;border-radius:8px}body[data-game=number-worm] dialog button{margin:6px 4px 2px 0;min-height:42px}body[data-game=number-worm] dialog textarea{width:100%;resize:vertical;box-sizing:border-box;padding:12px;background:#13241d;color:#f0e3c4;border:1px solid #c3a367;border-radius:10px;font:14px/1.5 system-ui}body[data-game=number-worm] :is(button,a,input,textarea,select):focus-visible{outline:3px solid #e5bd72;outline-offset:3px}.nw-result-stars{font-size:40px;color:#e8be69;letter-spacing:8px}#stats-content p{display:flex;justify-content:space-between;gap:20px}#settings-dialog select{margin-left:10px}.nw-rules a{color:inherit}.nw-static .folio-character,.nw-static .folio-bookmark,.nw-hidden .folio-character,.nw-hidden .folio-bookmark{animation:none!important;translate:none!important}.nw-static .nw-tile{transition:none}.nw-hidden *{animation-play-state:paused!important}.nw-result-actions{display:flex;flex-wrap:wrap;gap:5px}
@keyframes folio-breathe{0%,100%{transform:scale(1) rotate(-.4deg)}50%{transform:scale(1.012) rotate(.5deg)}}@keyframes folio-bookmark{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(5deg)}}@keyframes folio-cheer{50%{transform:translateY(-10px) rotate(3deg)}}
[data-theme=light] body[data-game=number-worm]{background:radial-gradient(ellipse at 20% 38%,#bfcfb985,transparent 60%),#f5eddd;color:#263b30}[data-theme=light] .nw-desk{background:linear-gradient(140deg,#f6eedb,#dfdbc1)}[data-theme=light] :is(.nw-daily strong,.nw-level-card h3,.nw-totals strong){color:#2c4639}[data-theme=light] :is(.nw-daily small,.nw-date,.nw-reset,.nw-soft-note,.nw-level-card p,.nw-path-message,.nw-feature-count,.nw-totals small){color:#51634d}[data-theme=light] .nw-daily{background:#fff8e7;border-color:#bda773}[data-theme=light] :is(.nw-daily .nw-badge,#streak,.nw-notice){color:#765829}[data-theme=light] .folio-caption p{color:#62563b}[data-theme=light] body[data-game=number-worm] dialog{background:#f4ecd9;color:#283e31}[data-theme=light] body[data-game=number-worm] dialog textarea{background:#fffaf0;color:#253b2d}[data-theme=light] #current-total{color:#386a40}[data-theme=light] #challenge-note{color:#67522a}
@media(max-width:800px){.nw-layout{grid-template-columns:minmax(0,600px);max-width:640px;gap:0;position:relative}.folio-scene{position:absolute;right:25px;top:-67px;width:60px;height:65px;z-index:2}.folio-books,.folio-character{inset:0}.folio-caption,.folio-bookmark,.folio-halo{display:none}.nw-intro{margin:10px auto 18px;max-width:640px;padding-right:95px}.nw-intro h1{font-size:28px}.nw-intro p{font-size:12px}.nw-intro>a{font-size:12px}.nw-nav{padding:10px 14px;gap:10px}.nw-nav>span{font-size:10px}.nw-nav button{padding:7px 10px;font-size:12px}.nw-desk{padding:18px}.nw-rules{gap:20px;grid-template-columns:1fr}.nw-layout{margin-bottom:20px}.nw-menu-heading h2{font-size:25px}.nw-play-heading strong{font-size:11px}.number-board{max-width:400px}.nw-tile{font-size:23px}}
@media(max-width:450px){.nw-layout{padding:0 10px}.nw-desk{padding:14px 12px;border-radius:18px}.nw-intro{padding-left:15px;margin:6px 0 12px}.nw-intro>a{display:none}.nw-intro p{margin-bottom:2px}.nw-nav>span{max-width:150px}.folio-scene{right:20px;top:-62px}.nw-menu-heading .eyebrow{font-size:9px}.nw-daily{min-height:73px}.nw-totals{padding:12px 0;gap:20px}.nw-totals strong{font-size:31px}.nw-feature-count{max-width:82px;font-size:10px}.number-board{gap:6px}.nw-tile{border-radius:6px;font-size:22px}.nw-tile>small{font-size:7px;bottom:2px}.nw-tile>i{font-size:11px;right:2px;top:1px}.nw-actions button{padding:8px 4px;font-size:12px;min-height:42px}.nw-path-message{font-size:12px;margin-top:10px;min-height:30px}.nw-subactions{margin-top:5px}.nw-play-heading{gap:6px}.nw-reset{font-size:11px}.nw-rules{margin-top:35px}.nw-menu-tools button{font-size:12px}.nw-tile.end>span,.nw-tile.start>span{transform:translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.folio-character,.folio-bookmark{animation:none!important;translate:none!important}.nw-tile{transition:none}}
/* Keep the full path and every turn control inside the viewport. */
.nw-nav{padding-block:9px}.nw-playing .nw-intro{margin-block:10px}.nw-playing .nw-intro h1{font-size:30px}.nw-playing .nw-intro p{display:none}.nw-playing .nw-intro .eyebrow{font-size:10px}.nw-playing .nw-desk{padding:18px 22px}.nw-playing .nw-totals{padding-block:9px}.nw-playing .number-board{width:min(100%,calc(100svh - 420px),380px)}.nw-playing .nw-play-heading button{min-height:36px}.nw-playing .folio-scene{height:430px}.nw-playing .nw-path-message{margin-top:12px}.nw-playing .nw-layout{margin-bottom:20px}
@media(max-width:800px){.nw-playing .folio-scene{height:60px;top:-62px}.nw-playing .nw-intro h1{font-size:26px}.nw-playing .nw-intro{margin:8px 0 14px}.nw-playing .nw-desk{padding:12px}.nw-playing .number-board{width:min(100%,calc(100svh - 365px),380px)}.nw-playing .nw-tile{font-size:22px}.nw-playing .nw-layout{margin-bottom:15px}}
.nw-tile[aria-pressed=true]{color:#214330;border-color:#88a975}.nw-daily .nw-badge{white-space:nowrap;flex-shrink:0}.nw-tile>i svg{position:static;width:12px;height:12px;display:block;stroke:currentColor;stroke-width:1.8;fill:none;overflow:visible}.nw-tile>i svg *{vector-effect:non-scaling-stroke}
