/* Shared Nordify dark palette (same values in every Nordify app) */
html.dark{--nf-bg:#101513;--nf-card:#161d1a;--nf-card-2:#1b2320;--nf-text:#f3f0e8;--nf-muted:#a7b0aa;--nf-line:#2c3531;--nf-ember:#ff7a52;color-scheme:dark}
html.dark body::before{mix-blend-mode:screen;opacity:.16}
/* Nordify theme toggle button (same look in every Nordify app) */
.nf-theme{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:999px;border:1px solid var(--line);background:transparent;color:inherit;cursor:pointer;padding:0;transition:border-color .2s,background .2s;flex:none}
.nf-theme:hover{border-color:currentColor}
.nf-theme svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.nf-theme svg path:only-child{fill:none}

/* Pull cord (theme.js) */
.nf-has-rope .nf-theme{display:none!important}
.nf-rope{position:fixed;top:0;left:max(4px,env(safe-area-inset-left));width:80px;height:200px;margin-left:-32px;z-index:90;pointer-events:none}
.nf-rope-svg{position:absolute;inset:0;width:80px;height:200px;overflow:visible}
.nf-rope-cord{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;opacity:.75}
html{--nf-rope-color:#101513}
html.dark{--nf-rope-color:#f3f0e8}
.nf-rope{color:var(--nf-rope-color)}
.nf-rope-handle{position:absolute;left:28px;top:44px;width:24px;height:34px;padding:0;border:0;background:none;cursor:grab;pointer-events:auto;touch-action:none;transform-origin:12px 0;display:grid;place-items:start center;-webkit-tap-highlight-color:transparent}
.nf-rope-handle:active{cursor:grabbing}
.nf-rope-handle:focus-visible{outline:2px solid var(--nf-ember,#e2552d);outline-offset:3px;border-radius:12px}
.nf-rope-bead{display:block;width:10px;height:22px;margin-top:4px;border-radius:6px;background:linear-gradient(180deg,color-mix(in oklab,var(--nf-rope-color) 85%,#fff) 0,var(--nf-rope-color) 100%);box-shadow:0 0 0 2px color-mix(in oklab,#e2552d 0%,transparent),0 4px 10px -4px #0006;transition:box-shadow .2s}
.nf-rope-handle::after{content:"";position:absolute;left:50%;top:0;width:5px;height:6px;margin-left:-2.5px;border-radius:2px;background:#e2552d}
.nf-rope-handle.is-armed .nf-rope-bead{box-shadow:0 0 0 3px #e2552d,0 6px 14px -4px #0008}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal}
@media (prefers-reduced-motion:reduce){.nf-rope-bead{transition:none}}
/* nordify.is in dark mode: the paper/ink variables swap; panels that are dark on purpose stay dark panels */
html.dark{--paper:var(--nf-bg);--paper-2:var(--nf-card-2);--ink:var(--nf-text);--ink-2:#e2ddd2;--muted:var(--nf-muted);--line:var(--nf-line);--line-dark:#2c3531;--accent:var(--nf-ember);--accent-soft:#3a1f16}
html.dark .pack,html.dark .ticker,html.dark .auth-art,html.dark .pack-panel{background:var(--nf-card);color:var(--nf-text);border-color:var(--nf-line)}
html.dark .ticker{border-block-color:var(--nf-line)}
html.dark .price-card{background:var(--nf-bg)}
html.dark .btn-paper{background:var(--nf-text);color:#101513}
html.dark .redeem input{background:var(--nf-bg)}
html.dark #toast{background:var(--nf-text);color:#101513}
html.dark .overlay{background:#000a}
html.dark .top.scrolled{background:color-mix(in oklab,var(--nf-bg) 86%,transparent)}
html.dark img[src*="wordmark"]{filter:none}
/* Inside the panels that stay dark, "paper" keeps meaning the light colour (the $ sign, light buttons) */
html.dark :is(.pack,.ticker,.auth-art,.pack-panel,.price-card){--paper:var(--nf-text)}
/* generated by nordify-theme/gen-dark.mjs from site.css: do not edit by hand */
html.dark .tool{background:color-mix(in oklab, #faf8f3 9%, var(--nf-card))}
html.dark .tool-demo{background:radial-gradient(120% 90% at 70% 10%,color-mix(in oklab, #efe6ff 9%, var(--nf-card)) 0,color-mix(in oklab, #e7defa 9%, var(--nf-card)) 40%,color-mix(in oklab, #ddd2f6 9%, var(--nf-card)) 100%)}
html.dark .demo-card{background:color-mix(in oklab, #fff 9%, var(--nf-card))}
html.dark .demo-hi{color:color-mix(in oklab, #24183f 40%, var(--nf-text))}
html.dark .demo-stars{background:color-mix(in oklab, #fff6d6 9%, var(--nf-card));color:color-mix(in oklab, #6b4a00 40%, var(--nf-text))}
html.dark .demo-tasks li{background:color-mix(in oklab, #f6f3fd 9%, var(--nf-card));color:color-mix(in oklab, #24183f 40%, var(--nf-text))}
html.dark .demo-tasks li em{color:color-mix(in oklab, #8a5a00 40%, var(--nf-text))}
html.dark .demo-tasks li.done{background:color-mix(in oklab, #eaf8f0 9%, var(--nf-card))}
html.dark .demo-tasks li.done span{color:color-mix(in oklab, #4b6b58 40%, var(--nf-text))}
html.dark .box{border:2px solid var(--nf-line);background:color-mix(in oklab, #fff 9%, var(--nf-card))}
html.dark .demo-goal{color:color-mix(in oklab, #6f6787 40%, var(--nf-text))}
html.dark .bar{background:color-mix(in oklab, #f0edf8 9%, var(--nf-card))}
html.dark .bar i{background:linear-gradient(90deg,color-mix(in oklab, #ffc531 9%, var(--nf-card)),#ff9d2e)}
html.dark .tool-demo-a{background:radial-gradient(120% 90% at 30% 10%,color-mix(in oklab, #e3f0e6 9%, var(--nf-card)) 0,color-mix(in oklab, #d6e9db 9%, var(--nf-card)) 45%,color-mix(in oklab, #c7dfcd 9%, var(--nf-card)) 100%)}
html.dark .ad-card{background:color-mix(in oklab, #fff 9%, var(--nf-card))}
html.dark .ad-rows .bar{background:color-mix(in oklab, #efeae0 9%, var(--nf-card))}
html.dark .ad-flag{background:color-mix(in oklab, #d6e9db 9%, var(--nf-card));color:color-mix(in oklab, #1f6444 40%, var(--nf-text))}
/* generated by nordify-theme/gen-dark.mjs from account.css: do not edit by hand */
html.dark .field input{background:color-mix(in oklab, #fbfaf6 9%, var(--nf-card))}
html.dark .err{color:color-mix(in oklab, #b2361a 40%, var(--nf-text))}
html.dark .tool-card{background:color-mix(in oklab, #faf8f3 9%, var(--nf-card))}
html.dark .chip.inpack{background:color-mix(in oklab, #fbe6dd 9%, var(--nf-card));color:color-mix(in oklab, #8c2c12 40%, var(--nf-text))}
html.dark .btn-danger{color:color-mix(in oklab, #b2361a 40%, var(--nf-text));border-color:var(--nf-line)}
html.dark .btn-danger:hover{background:color-mix(in oklab, #fbe9e3 9%, var(--nf-card))}
html.dark .panel{background:color-mix(in oklab, #faf8f3 9%, var(--nf-card))}
html.dark .field select{background:color-mix(in oklab, #fbfaf6 9%, var(--nf-card))}

/* toggle placement */
.top-in .nf-theme{margin-left:4px}
.atop-in .nf-theme{margin-left:14px}
