.sn{--lamp:min(24vw, 96px);--c-green:#1fbf6a;--c-orange:#ffa31a;--c-red:#f0384a;grid-template-columns:minmax(0,1fr);grid-template-areas:"head""stage""panel";gap:20px;margin:8px 0 56px;display:grid}@media (width>=900px){.sn{--lamp:clamp(72px, calc((100svh - 400px) / 3.6), 132px);grid-template:"stage head""stage panel"1fr/minmax(0,1.3fr) minmax(300px,1fr);align-items:start;column-gap:32px}.sn-stage{top:calc(var(--head-h) + 12px);position:sticky}}.sn-head{grid-area:head}.sn-head h1{letter-spacing:-.01em;font-size:clamp(1.8rem,4.2vw,2.5rem)}.sn-head p{color:var(--ink-2);margin-top:10px}.sn-stage{border:2px solid var(--line);border-radius:var(--r-xl);background:var(--surface);--o:55%;--r:75%;--word:var(--ink-3);grid-area:stage;justify-items:center;gap:16px;padding:22px 18px 16px;transition:background-color .4s,border-color .4s;display:grid}.sn-stage[data-zone=green]{--word:#0b7746;background:#e6f7ed;border-color:#bfe9d0}.sn-stage[data-zone=orange]{--word:#9a4a00;background:#fff2dc;border-color:#fbd7a0}.sn-stage[data-zone=red]{--word:#c22a3a;background:#ffe6e9;border-color:#f7bcc3}.sn-show{justify-content:center;align-items:center;gap:16px calc(var(--lamp) * .2);grid-template-columns:auto auto;grid-template-areas:"light gauge""read read";width:100%;display:grid}@media (width>=560px){.sn-show{gap:calc(var(--lamp) * .24);grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"light gauge read"}}.sn-light{gap:calc(var(--lamp) * .14);padding:calc(var(--lamp) * .16);border-radius:calc(var(--lamp) * .42);background:linear-gradient(160deg, #0a3d6b, var(--ink) 55%);box-shadow:0 calc(var(--lamp) * .06) 0 #021c34, 0 18px 34px -18px #03315b99;grid-area:light;display:grid}.sn-lamp{--c:var(--c-green);width:var(--lamp);aspect-ratio:1;background:color-mix(in srgb, var(--c) 28%, #1a2430);box-shadow:inset 0 calc(var(--lamp) * .05) calc(var(--lamp) * .1) #00000059;border-radius:50%;transition:background .25s,box-shadow .25s;display:block}.sn-lamp--red{--c:var(--c-red)}.sn-lamp--orange{--c:var(--c-orange)}[data-zone=green] .sn-lamp--green,[data-zone=orange] .sn-lamp--orange,[data-zone=red] .sn-lamp--red{background:radial-gradient(circle at 36% 32%, #ffffffb3, transparent 34%), var(--c);box-shadow:0 0 0 calc(var(--lamp) * .04) color-mix(in srgb, var(--c) 45%, transparent), 0 0 calc(var(--lamp) * .45) color-mix(in srgb, var(--c) 75%, transparent)}[data-zone=red] .sn-lamp--red{animation:1.4s ease-in-out infinite sn-glow}@keyframes sn-glow{50%{box-shadow:0 0 0 calc(var(--lamp) * .06) color-mix(in srgb, var(--c) 45%, transparent), 0 0 calc(var(--lamp) * .7) var(--c)}}.sn-gauge{width:max(18px, calc(var(--lamp) * .24));margin:calc(var(--lamp) * .16) 0;background:linear-gradient(to top, #cdeedb 0 var(--o), #ffe2b3 var(--o) var(--r), #ffc9cf var(--r) 100%);border-radius:999px;grid-area:gauge;align-self:stretch;position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #03315b1a}.sn-gauge__fill{background:var(--c-green);transform-origin:bottom;transition:transform .1s linear,background-color .2s;position:absolute;inset:0;transform:scaleY(0)}.sn-gauge__fill[data-zone=orange]{background:var(--c-orange)}.sn-gauge__fill[data-zone=red]{background:var(--c-red)}.sn-gauge__mark{background:var(--ink);opacity:.55;height:3px;position:absolute;left:0;right:0;translate:0 50%}.sn-gauge__mark--orange{bottom:var(--o)}.sn-gauge__mark--red{bottom:var(--r)}.sn-readout{text-align:center;grid-area:read;justify-items:center;gap:6px;min-width:0;display:grid}.sn-word{font:700 clamp(2.2rem, calc(var(--lamp) * .56), 4.6rem)/1 var(--display);letter-spacing:-.01em;color:var(--word);overflow-wrap:anywhere}.sn-stage[data-zone=off] .sn-word{font-size:clamp(1.8rem, calc(var(--lamp) * .4), 3rem)}.sn-sub{color:var(--ink-2);font-size:clamp(.98rem, calc(var(--lamp) * .14), 1.25rem);font-weight:600}.sn-calm{align-items:baseline;justify-content:inherit;color:var(--ink-2);background:#ffffffbf;border-radius:999px;flex-wrap:wrap;gap:2px 10px;margin-top:8px;padding:6px 14px;font-weight:600;display:flex}.sn-calm[hidden]{display:none}.sn-calm strong{font:700 1.35rem/1.2 var(--display);color:var(--ink);font-variant-numeric:tabular-nums}.sn-calm .link-btn{min-height:32px;font-size:.85rem}.sn-controls{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.btn--lg{min-height:56px;padding:0 22px;font-size:1.06rem}.sn-start{min-width:220px}.sn-stage:not([data-zone=off]) .btn--quiet:hover{background:#fff9}.sn-msg{border-radius:var(--r-md);background:var(--ko-soft);max-width:560px;color:var(--ko-t);text-align:center;padding:12px 16px;font-weight:600}.sn-msg[hidden]{display:none}.sn-privacy{max-width:520px;color:var(--ink-2);text-align:left;align-items:center;gap:8px;font-size:.9rem;font-weight:600;display:flex}.sn-privacy svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;flex:none;width:18px;height:18px}.sn-keys{color:var(--ink-3);text-align:center;margin-top:-8px;font-size:.86rem}@media (hover:none){.sn-keys{display:none}}.sn-stage:fullscreen{--lamp:min(calc((100vh - 200px) / 3.6), 20vw);border:0;border-radius:0;align-content:center;gap:24px;padding:24px 32px}.sn-stage:fullscreen .sn-show{gap:calc(var(--lamp) * .3);width:auto}.sn-stage:fullscreen .sn-word{font-size:clamp(3rem, calc(var(--lamp) * .8), 10rem)}.sn-stage:fullscreen .sn-stage[data-zone=off] .sn-word{font-size:clamp(1.8rem, calc(var(--lamp) * .4), 3rem)}.sn-sub{font-size:clamp(1.1rem, calc(var(--lamp) * .17), 2rem)}.sn-stage:fullscreen .sn-calm strong{font-size:clamp(1.4rem, calc(var(--lamp) * .22), 2.6rem)}.sn-stage:fullscreen .sn-privacy,.sn-stage:fullscreen .sn-keys{display:none}.sn-panel{grid-area:panel;grid-template-columns:minmax(0,1fr);gap:16px;padding:18px 20px 8px;display:grid}.sn-now{border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);justify-content:space-between;align-items:baseline;gap:12px;padding:10px 14px;font-weight:600;display:flex}.sn-now strong{font:700 1.5rem/1 var(--display);color:var(--ink);font-variant-numeric:tabular-nums}.sn-range{gap:4px;display:grid}.sn-range__head{color:var(--ink-2);justify-content:space-between;align-items:baseline;gap:12px;font-size:.95rem;font-weight:700;display:flex}.sn-range output{background:var(--surface-2);min-width:3ch;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 10px;font-weight:800}.sn-range input{--fill:var(--tone);cursor:pointer;-webkit-appearance:none;appearance:none;background:0 0;width:100%;height:36px;margin:0}.sn-range--orange input{--fill:#e58a00}.sn-range--red input{--fill:#e0303f}.sn-range input::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--fill) var(--pct,50%), var(--surface-2) var(--pct,50%));border-radius:99px;height:10px;box-shadow:inset 0 0 0 1px #03315b14}.sn-range input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border:4px solid var(--fill);background:#fff;border-radius:50%;width:26px;height:26px;margin-top:-8px;box-shadow:0 2px #03315b2e}.sn-range input::-moz-range-track{background:var(--surface-2);border-radius:99px;height:10px}.sn-range input::-moz-range-progress{background:var(--fill);border-radius:99px;height:10px}.sn-range input::-moz-range-thumb{border:4px solid var(--fill);background:#fff;border-radius:50%;width:18px;height:18px;box-shadow:0 2px #03315b2e}.sn-range input:focus-visible{outline:none}.sn-range input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--accent-soft), 0 0 0 6px var(--accent)}.sn-range input:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px var(--accent-soft), 0 0 0 6px var(--accent)}.sn-range--orange output{background:#ffe9c4}.sn-range--red output{background:#ffd9dd}.sn-range small{color:var(--ink-3);font-size:.86rem;font-weight:500}.sn-panel__foot{border-top:2px solid var(--surface-2);padding:4px 0}@media (prefers-reduced-motion:reduce){.sn-stage,.sn-lamp,.sn-gauge__fill{transition:none}[data-zone=red] .sn-lamp--red{animation:none}}.sn-tabs{margin-top:16px}.sn-tabs button{align-items:center;gap:6px;min-height:40px;display:inline-flex}.sn-tabs svg{width:15px;height:15px;fill:var(--sun);stroke:#c98a14;stroke-width:1.2px}.sn-stage[hidden],.sn-panel[hidden],.df[hidden],.df-setup[hidden],.df-class[hidden],.df-overlay[hidden]{display:none!important}.df-flash[hidden]{visibility:hidden;display:block}.sn.is-defi{grid-template:"head""defi"/minmax(0,1fr)}.sn.is-defi .sn-head p{max-width:70ch}.sn.is-running .sn-head{display:none}.df{grid-area:defi;min-width:0}.df-setup{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;display:grid}@media (width>=900px){.df-setup{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);column-gap:32px}}.df-pitch{gap:14px;display:grid}.df-pitch h2{font-size:clamp(1.4rem,3vw,1.8rem)}.df-pitch>p{color:var(--ink-2)}.df-pitch>p strong{color:var(--ink)}.df-steps{counter-reset:step;gap:10px;margin:0;padding:0;list-style:none;display:grid}.df-steps li{border-radius:var(--r-md);background:var(--surface);border:2px solid var(--line);counter-increment:step;grid-template-columns:36px minmax(0,1fr);gap:2px 12px;padding:12px 14px;display:grid}.df-steps li:before{content:counter(step);background:var(--tone);width:36px;height:36px;color:var(--on-tone);font:700 1.1rem/1 var(--display);border-radius:50%;grid-row:span 2;place-items:center;display:grid}.df-steps strong{font-family:var(--display)}.df-steps span{color:var(--ink-2);font-size:.94rem}.df-form{padding:18px 20px 20px}.df-fields{border:0;gap:18px;min-width:0;margin:0;padding:0;display:grid}.is-locked .df-fields{opacity:.5;filter:grayscale(.6);cursor:not-allowed}.is-locked .df-fields *{cursor:not-allowed}.df-group{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.df-label{color:var(--ink-2);padding:0;font-size:.88rem;font-weight:700}.df-label small{color:var(--ink-3);font-weight:500}.df-classlist{flex-wrap:wrap;gap:8px;display:flex}.df-chip{border:2px solid var(--line);border-radius:var(--r-sm);background:var(--surface);min-height:52px;color:var(--ink);text-align:left;gap:2px;padding:6px 14px;display:grid}.df-chip strong{font-size:.98rem}.df-chip span{color:var(--ink-2);align-items:center;gap:4px;font-size:.84rem;font-weight:700;display:inline-flex}.df-chip .df-heart{width:14px;height:14px}.df-chip:hover:not(:disabled){border-color:var(--tone)}.df-chip[aria-pressed=true]{border-color:var(--tone);background:color-mix(in srgb, var(--tone) 10%, #fff);box-shadow:0 3px 0 var(--tone-deep)}.df-chip--add{color:var(--ink-2);border-style:dashed;align-content:center;font-weight:700}.df-classedit{flex-wrap:wrap;align-items:end;gap:4px 14px;margin-top:6px;display:flex}.df-classedit .field{flex:200px}.df-modes{grid-template-columns:repeat(3,minmax(0,1fr))}.df-modes legend{grid-column:1/-1;margin-bottom:8px}@media (width<=520px){.df-modes{grid-template-columns:minmax(0,1fr)}}.df-mode{display:grid;position:relative}.df-mode input{opacity:0;pointer-events:none;position:absolute}.df-mode>span{border:2px solid var(--line);border-radius:var(--r-sm);background:var(--surface);cursor:pointer;align-content:start;gap:2px;height:100%;padding:10px 12px;display:grid}.df-mode strong{font-family:var(--display);font-size:1.05rem}.df-mode small{color:var(--ink-3);font-size:.84rem;font-weight:600;line-height:1.3}.df-mode:hover>span{border-color:var(--tone)}.df-mode input:checked+span{border-color:var(--tone);background:color-mix(in srgb, var(--tone) 10%, #fff);box-shadow:0 3px 0 var(--tone-deep)}.df-mode input:checked+span strong{color:var(--tone-deep)}.df-mode input:focus-visible+span{outline:3px solid var(--accent);outline-offset:3px}.df-row{flex-wrap:wrap;gap:16px 28px;display:flex}.df-row--goal{grid-template-columns:minmax(0,1fr);display:grid}@media (width>=480px){.df-row--goal{grid-template-columns:auto minmax(0,1fr)}}.df-goal__in{color:var(--ink-2);align-items:center;gap:8px;font-weight:700;display:flex}.df-goal__in .input{text-align:center;width:88px}.df-fields .opt{padding-bottom:0}.df-now{border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink-2);padding:10px 14px}.df-now strong{color:var(--ink)}.df-now .link-btn{min-height:0;padding:0}.df-launch{justify-self:start;min-width:240px}@media (width<=520px){.df-launch{justify-self:stretch}}.df-unlock{margin-top:4px}.df-class{border:2px solid var(--line);border-radius:var(--r-xl);background:var(--surface);--heart:#e5325a;flex-direction:column;gap:14px;padding:16px 18px 12px;transition:background-color .4s,border-color .4s;display:flex;position:relative}@media (width>=900px){.df-class{min-height:clamp(400px,100svh - 190px,860px);padding:18px 26px 12px}}.df-class[data-zone=calme]{background:#e9f8ef;border-color:#bfe9d0}.df-class[data-zone=attention]{background:#fff4e0;border-color:#fbd7a0}.df-class[data-zone=fort]{background:#ffe9ec;border-color:#f7bcc3}.df-class[data-zone=pause]{border-color:var(--line-strong);background:#eef2f6}.df-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 20px;display:flex}.df-top__name{font:700 clamp(1.4rem, 3vw, 2.2rem)/1.1 var(--display);overflow-wrap:anywhere}.df-top__reward{color:var(--ink-2);overflow-wrap:anywhere;font-size:clamp(.95rem,1.6vw,1.25rem);font-weight:700}.df-body{flex:1;grid-template-columns:clamp(92px,15vw,200px) minmax(0,1fr);gap:clamp(16px,3vw,44px);min-height:0;display:grid}.df-gauge{border-radius:24px;min-height:180px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 3px #03315b1f,0 10px 24px -16px #03315b80}.df-gauge__bands,.df-gauge__lit{grid-template-rows:repeat(3,minmax(0,1fr));display:grid;position:absolute;inset:0}.df-gauge__lit{clip-path:inset(100% 0 0);transition:clip-path .15s linear}.df-zone{text-align:center;font:700 clamp(.8rem, 1.5vw, 1.25rem)/1.1 var(--display);flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:4px;display:flex}.df-zone svg{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;width:clamp(30px,5vw,64px);height:auto}.df-gauge__bands .df-zone--fort{color:#d97884;background:#fde1e4}.df-gauge__bands .df-zone--attention{color:#c99a52;background:#fff0d6}.df-gauge__bands .df-zone--calme{color:#6db58b;background:#dcf3e5}.df-gauge__lit .df-zone--fort{background:var(--c-red);color:#fff}.df-gauge__lit .df-zone--attention{background:var(--c-orange);color:var(--ink)}.df-gauge__lit .df-zone--calme{background:var(--c-green);color:var(--ink)}.df-gauge__needle{background:var(--ink);height:5px;transition:bottom .15s linear;position:absolute;bottom:0;left:0;right:0;translate:0 50%;box-shadow:0 0 0 2px #fffc}[data-zone=calib] .df-gauge__needle{opacity:0}.df-main{align-content:center;gap:clamp(12px,3vh,32px);min-width:0;display:grid;position:relative}.df-hearts{flex-wrap:wrap;align-items:center;gap:4px 6px;display:flex}.df-heart{fill:none;width:clamp(32px,4.6vw,58px);height:auto;stroke:var(--heart,#e5325a);stroke-width:2px;stroke-linejoin:round;flex:none}.df-heart.is-on{fill:var(--heart,#e5325a)}.df-hearts[data-size=m] .df-heart{width:clamp(24px,3vw,40px)}.df-hearts[data-size=s] .df-heart{width:clamp(18px,2.2vw,28px)}.df-heart.is-new{animation:.7s cubic-bezier(.3,1.6,.5,1) df-pop}@keyframes df-pop{0%{scale:.3}60%{scale:1.45}to{scale:1}}.df-hearts__count{font:700 clamp(1.1rem, 2.2vw, 1.8rem)/1 var(--display);color:var(--ink-2);font-variant-numeric:tabular-nums;margin-left:8px}.df-cycle{gap:10px;display:grid}.df-cycle__head{font:700 clamp(1.05rem, 2vw, 1.6rem)/1.2 var(--display);flex-wrap:wrap;justify-content:space-between;gap:4px 16px;display:flex}.df-cycle__head span:last-child{color:var(--ink-2);font-variant-numeric:tabular-nums}.df-bar{background:#fff;border-radius:999px;height:clamp(38px,8vh,72px);position:relative;overflow:hidden;box-shadow:inset 0 0 0 3px #03315b24}.df-bar__fill{background:var(--tone);transform-origin:0;transition:transform 1s linear,background-color .3s;position:absolute;inset:0;transform:scaleX(0)}.df-bar__fill.is-enough{background:var(--ok)}[data-zone=fort] .df-bar__fill{background:repeating-linear-gradient(-45deg,#98adbf 0 14px,#b3c4d3 14px 28px)}[data-zone=pause] .df-bar__fill{background:#a9b9c8}.df-bar__goal{background:var(--ink);width:5px;position:absolute;top:0;bottom:0;translate:-50%}.df-cycle__hint{color:var(--ink-2);font-size:clamp(.9rem,1.5vw,1.1rem);font-weight:600}.df-status{font:700 clamp(1.25rem, 2.8vw, 2.2rem)/1.2 var(--display);color:var(--ink)}[data-zone=calme] .df-status{color:#0b7746}[data-zone=attention] .df-status{color:#9a4a00}[data-zone=fort] .df-status{color:#c22a3a}[data-zone=pause] .df-status{color:var(--ink-2)}.df-controls{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.df-pause{min-width:210px;font-size:1.2rem}@media (width<=899px){.df-gauge{min-height:300px}}@media (width<=600px){.df-pause{flex:100%}.df-controls .btn--quiet{min-height:44px;padding:0 10px;font-size:.95rem}}.df-class .btn--quiet:hover{background:#fff9}.df-privacy{color:var(--ink-2);text-align:center;justify-content:center;align-items:center;gap:8px;font-size:.88rem;font-weight:600;display:flex}.df-privacy svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;flex:none;width:17px;height:17px}@media (hover:none){.df-keys{display:none}}.df-overlay{z-index:5;border-radius:inherit;backdrop-filter:blur(3px);background:#f5f8fae6;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.df-card{border:2px solid var(--line);border-radius:var(--r-xl);background:var(--surface);max-width:560px;box-shadow:var(--lift-lg);text-align:center;justify-items:center;gap:10px;padding:28px 32px;animation:.3s pop-in;display:grid}.df-card h2{font-size:clamp(1.5rem,3.4vw,2.4rem)}.df-card p{color:var(--ink-2);font-weight:600}.df-card__big{font:700 clamp(3.4rem, 12vh, 7rem)/1 var(--display);color:var(--tone);font-variant-numeric:tabular-nums}.df-card--win{max-width:640px}.df-card__hearts{gap:6px;display:flex}.df-card__hearts .df-heart{width:clamp(40px,6vw,64px)}.df-card__reward{font-size:clamp(1.15rem,2.6vw,1.9rem);line-height:1.3}.df-card__reward strong{color:var(--ink)}.df-card__actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.df-flash{background:var(--ink);color:#fff;text-align:center;width:max-content;max-width:100%;min-height:44px;box-shadow:var(--lift);border-radius:999px;justify-self:start;padding:10px 20px;font-weight:700;line-height:24px;animation:.3s pop-in}.df-flash.is-good{background:#0b7746}.df-class:fullscreen{border:0;border-radius:0;height:100vh;padding:3vh 3vw 2vh}.df-class:fullscreen .df-body{grid-template-columns:clamp(120px,17vw,300px) minmax(0,1fr)}.df-class:fullscreen .df-status{font-size:clamp(1.6rem,3.4vw,3rem)}@media (prefers-reduced-motion:reduce){.df-class,.df-gauge__lit,.df-gauge__needle,.df-bar__fill{transition:none}.df-heart.is-new,.df-card,.df-flash{animation:none}}
