@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/noto-sans-cyrillic-ext-700-normal.OK-fZO_i.woff2)format("woff2"),url(/_astro/noto-sans-cyrillic-ext-700-normal.D83T7awq.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/noto-sans-cyrillic-700-normal.DYZmzPmX.woff2)format("woff2"),url(/_astro/noto-sans-cyrillic-700-normal.D8UNalU-.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/noto-sans-devanagari-700-normal.DVs0dmkg.woff2)format("woff2"),url(/_astro/noto-sans-devanagari-700-normal.CT12sGlc.woff)format("woff");unicode-range:U+900-97F,U+1CD0-1CF9,U+200C-200D,U+20A8,U+20B9,U+20F0,U+25CC,U+A830-A839,U+A8E0-A8FF,U+11B00-11B09}@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/noto-sans-greek-ext-700-normal.Dq1WA5-1.woff2)format("woff2"),url(/_astro/noto-sans-greek-ext-700-normal.BOmIwFkq.woff)format("woff");unicode-range:U+1F??}@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/noto-sans-greek-700-normal.x3kNWF-0.woff2)format("woff2"),url(/_astro/noto-sans-greek-700-normal.DDNJsN3F.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/noto-sans-vietnamese-700-normal.DayJ0F-f.woff2)format("woff2"),url(/_astro/noto-sans-vietnamese-700-normal.1GL2JyGE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/noto-sans-latin-ext-700-normal.BypTtJma.woff2)format("woff2"),url(/_astro/noto-sans-latin-ext-700-normal.CgsG9aVh.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Noto Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/noto-sans-latin-700-normal.CrvTEWhy.woff2)format("woff2"),url(/_astro/noto-sans-latin-700-normal.ZyrKABVF.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nonograms JP;src:url(/games/nonograms/fonts/NotoSerifJP-nonograms.woff2)format("woff2");font-display:swap}#nonograms-app{--paper:#f6eddd;--card:#fff8ea;--raised:#fffdf7;--ink:#17120e;--muted:#4b4239;--wrong:#a3301f;--vermilion:#a94d38;--gold:#be9138;--indigo:#13283c;--moss:#536b48;--same:#d9e6ee;--thick:#17120e;--thin:#b5a58f;--open:#fffbf2;--filled:#1f1a17;--cross:#8a7a66;--clueband:#f8f0e1;--cluedone:#a89a86;--lacquer:#8c3322;--lacquer2:#6e2518;--crosshair:#f1e0bc;--hintfocus:#d5e5c8;--celebrate:#f4de9e;--gold35:#be913859;--serif:"Noto Serif", "Nonograms JP", Georgia, serif;--sans:"Noto Sans", system-ui, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);background:var(--paper);min-height:100dvh;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;position:relative}#nonograms-app[data-theme=dark]{--paper:#0b1622;--card:#13283c;--raised:#1a3249;--ink:#f3e9d6;--muted:#b9ad99;--wrong:#ff8a73;--vermilion:#d0664c;--gold:#d9b25e;--indigo:#9ccbea;--moss:#9db88e;--same:#285170;--thick:#e8dcc6;--thin:#3e5870;--open:#16293c;--filled:#eadfc8;--cross:#7d93a8;--clueband:#102233;--cluedone:#4f667b;--lacquer:#05101a;--lacquer2:#000;--crosshair:#21405e;--hintfocus:#2e4a2a;--celebrate:#6e5a1e;--gold35:#d9b25e59}@media (prefers-contrast:more){#nonograms-app{--muted:#3a322b;--wrong:#851f10;--thin:#6f6150;--cross:#5b4e40;--cluedone:#7a6c5a;--crosshair:#e7cd98;--hintfocus:#b5d1a3}#nonograms-app[data-theme=dark]{--muted:#dcd2bf;--wrong:#ffb0a0;--thin:#7f97ad;--cross:#a9bccd;--cluedone:#7f97ad;--crosshair:#2a5378;--hintfocus:#3f6639}}:where(#nonograms-app) *{box-sizing:border-box}:where(#nonograms-app) button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}:where(#nonograms-app) button:disabled{cursor:default}#nonograms-app :focus-visible{outline:3px solid var(--gold);outline-offset:2px}#nonograms-app [tabindex="-1"]:focus{outline:none}#nonograms-app [hidden]{display:none!important}:where(#nonograms-app) :is(h1,h2,h3,p,figure){margin:0}#nonograms-app [lang=ja]{font-family:"Nonograms JP", var(--serif)}.ng-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ng-muted{color:var(--muted)}.ng-center{text-align:center}.ng-serif{font-family:var(--serif)}.ng-note{color:var(--muted);font-size:13.5px;line-height:1.45}#nonograms-app:before{content:"";pointer-events:none;opacity:.55;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cg stroke='%23BE9138' stroke-opacity='.18' stroke-width='.6'%3E%3Cpath d='M12 30l22 9M80 12l16 20M150 40l-20 12M190 90l18-6M30 120l24 4M100 100l10 22M160 150l-26 8M60 190l20-14M200 200l-14-18M120 60l18 3'/%3E%3C/g%3E%3C/svg%3E");position:fixed;inset:0}.ng-screen{width:min(100%,560px);margin:0 auto;transition:opacity .24s,transform .3s;position:relative}.ng-screen.is-entering{opacity:0;transform:translateY(8px)}.ng-screen.is-leaving{opacity:0;pointer-events:none;position:absolute;top:0;left:0;right:0}.ng-reduce .ng-screen{transition:opacity .15s;transform:none!important}.ng-card{background:var(--card);border:1px solid var(--gold35);border-radius:18px;padding:16px}.ng-btn{background:var(--card);border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:1px;width:100%;min-height:50px;padding:0 16px;font-weight:600;transition:transform .12s,filter .12s;display:flex;border:1px solid var(--gold35)!important}.ng-btn:active{filter:brightness(.96);transform:scale(.96)}.ng-btn.primary{background:var(--vermilion);color:var(--card);border-color:#0000!important}.ng-btn.danger{color:#fff8ea;background:#a3301f;border-color:#0000!important}.ng-btn.big{min-height:54px;font-size:17px}.ng-btn.pill{border-radius:999px;width:auto;min-height:44px;padding:0 18px;display:inline-flex}.ng-btn small{opacity:.85;font-size:12px;font-weight:400}.ng-btn:disabled{opacity:.4}.ng-btn.is-ready{box-shadow:0 0 0 2.5px var(--gold)}.ng-link{color:var(--vermilion);min-height:44px;padding:0 10px;font-weight:600}.ng-chip{background:var(--same);color:var(--indigo);white-space:nowrap;border-radius:999px;padding:5px 10px;font-size:13.5px;font-weight:600}.ng-eyebrow{letter-spacing:.25em;color:var(--vermilion);font-size:12px;font-weight:700}.ng-eyebrow a{color:inherit;text-decoration:none}.ng-bubble{background:var(--raised);font-family:var(--serif);border:1px solid #be913880;border-radius:16px;padding:12px 14px;font-size:15.5px;line-height:1.4;position:relative}.ng-bubble:before{content:"";border:7px solid #0000;border-right:10px solid var(--raised);border-left:0;position:absolute;top:22px;left:-9px}.ng-mini{border:3px solid var(--lacquer);width:56px;height:56px;box-shadow:inset 0 0 0 1px var(--gold);object-fit:cover;background:var(--raised);border-radius:14px;flex:none}.ng-row{gap:10px;display:flex}.ng-row>*{flex:1}.ng-seal{color:#fff8ea;background:#b23a26;border-radius:6px;flex-direction:column;flex:none;justify-content:center;align-items:center;width:44px;height:44px;font:900 15px Nonograms JP,serif;display:inline-flex;box-shadow:inset 0 0 0 4px #b23a26,inset 0 0 0 5.2px #fff8ead9}.ng-seal.tilt{transform:rotate(-6deg)}.ng-pixel,.ng-blank{width:100%;height:100%;display:block}.ng-blank rect{fill:var(--raised)}.ng-blank path{stroke:var(--thin);stroke-width:.6px;fill:none;opacity:.8}.ng-blank.is-locked path{opacity:.4}.ng-ring{width:100%;height:100%}.ng-ring .bg{fill:var(--card)}.ng-ring .track{fill:none;stroke:var(--thin);stroke-opacity:.5;stroke-width:3px}.ng-ring .val{fill:none;stroke:var(--vermilion);stroke-width:3px;stroke-linecap:round}.ng-ring text{font:700 10px var(--sans);fill:var(--ink)}.ng-plate{background:#fff8ea;border-radius:10px;padding:8px;position:relative;box-shadow:0 4px 16px #0000002e}.ng-plate>img{aspect-ratio:1;object-fit:cover;border-radius:6px;width:100%;display:block}.ng-plate__stamp{width:var(--stamp);height:var(--stamp);background:#fff8ea;border:2.5px solid #b23a26;border-radius:4px;padding:5px;transition:transform .28s cubic-bezier(.3,1.6,.5,1),opacity .18s;position:absolute;bottom:-14px;right:-12px;transform:rotate(-7deg);box-shadow:0 2px 6px #00000026}.ng-plate__stamp.is-up{opacity:0;transform:rotate(-7deg)scale(1.7)}.ng-plate__stamp.is-pressing{animation:.45s cubic-bezier(.3,1.5,.5,1) .8s both ng-press}@keyframes ng-press{0%{opacity:0;transform:rotate(-7deg)scale(1.7)}to{opacity:1;transform:rotate(-7deg)scale(1)}}.ng-reduce .ng-plate__stamp{transition:none;animation:none}.ng-platewrap{width:min(270px,70vw);margin:4px auto 14px}.ng-caption{font:15.5px/1.5 var(--serif);text-align:center;padding:0 8px}.ng-splash{cursor:pointer;flex-direction:column;justify-content:space-between;align-items:center;min-height:100dvh;display:flex;overflow:hidden}.ng-splash__top{margin-top:calc(var(--safe-t) + 7vh);text-align:center;opacity:0;transition:opacity .45s,transform .45s;transform:scale(.94)}.ng-splash.is-on .ng-splash__top{opacity:1;transform:none}.ng-moon{aspect-ratio:1;width:min(56vw,250px);margin:0 auto 16px;position:relative}.ng-moonsvg{width:100%;display:block;overflow:visible}.ng-splashgrid{width:50%;height:50%;position:absolute;top:21.5%;left:25%;overflow:visible}.ng-splashgrid .paper{fill:#fff8ea;opacity:.92;transition:opacity .35s .92s}.ng-splashgrid .lines{stroke:#13283c;stroke-opacity:.55;stroke-width:1px;fill:none;transition:opacity .35s .92s}.ng-splashgrid .edge{fill:none;stroke:#13283c;stroke-width:2px;transition:opacity .35s .92s}.ng-splashgrid rect[style]{fill:#1f1a17;opacity:0}.ng-splash.is-on .ng-splashgrid rect[style]{animation:ng-ink 80ms calc(.2s + var(--k) * 45ms) both, ng-bloom .35s .92s forwards}.ng-splash.is-on .ng-splashgrid .paper{opacity:.08}.ng-splash.is-on .ng-splashgrid :is(.lines,.edge){opacity:0}@keyframes ng-ink{to{opacity:1}}@keyframes ng-bloom{to{fill:#c0392b}}.ng-splashseal{opacity:0;width:58px;height:58px;font-size:21px;transition:transform .22s cubic-bezier(.3,1.6,.5,1),opacity .15s;position:absolute;bottom:8%;right:2%;transform:rotate(-7deg)scale(1.9)}.ng-splash.is-stamped .ng-splashseal{opacity:1;transform:rotate(-7deg)scale(1)}.ng-splash__title{opacity:0;transition:opacity .4s,transform .4s;transform:translateY(8px)}.ng-splash.is-titled .ng-splash__title{opacity:1;transform:none}.ng-splash h1{font:600 clamp(40px, 13vw, 58px)/1.05 var(--serif)}.ng-splash__cast{width:100%;height:41vh;margin-bottom:max(12px, var(--safe-b));position:relative}.ng-splash__cast img{height:100%;transition:transform .6s cubic-bezier(.2,.9,.3,1.05);position:absolute;bottom:0}.ng-splash__cast .k{left:6px;transform:translate(-80vw)}.ng-splash__cast .d{height:97%;right:6px;transform:translate(80vw)}.ng-splash.is-stamped .ng-splash__cast img{transform:none}.ng-splash.is-reduced *{transition-duration:.35s!important;transition-delay:0s!important;animation-duration:1ms!important;animation-delay:0s!important}.ng-home .ng-scroll{padding:calc(var(--safe-t) + 16px) 18px calc(var(--safe-b) + 28px);flex-direction:column;gap:20px;display:flex}.ng-hero h1{font:600 34px/1.15 var(--serif)}.ng-hero .ng-muted{font-family:var(--serif);font-size:15px}.ng-welcome{align-items:center;gap:14px;display:flex}.ng-welcome img{object-fit:contain;flex:none;width:92px;height:170px}.ng-invite{align-items:flex-start;gap:12px;display:flex}.ng-invite h2{font-size:17px}.ng-invite p{margin-top:6px;font-size:15px}.ng-cardhead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.ng-cardhead h2{font:600 22px var(--serif)}.ng-daily,.ng-collection{flex-direction:column;gap:14px;display:flex}.ng-teaser{text-align:left;align-items:center;gap:14px;display:flex}.ng-teaser__art{object-fit:cover;border:1px solid #be913866;border-radius:8px;flex:none;place-items:center;width:96px;height:96px;display:grid;position:relative;overflow:hidden}.ng-teaser__art>svg:first-child{position:absolute;inset:0}.ng-teaser>span:last-child{flex-direction:column;gap:4px;display:flex}.ng-teaser b{font-size:17px}.ng-teaser small{color:var(--muted);font-size:14px;line-height:1.4}.ng-teaser em{color:var(--moss);font-size:14px;font-style:normal;font-weight:600}.ng-card__ring{width:36px;height:36px;position:relative}.ng-streak{color:var(--vermilion);font-size:15px;font-weight:600}.ng-week{margin:0;padding:0;list-style:none;display:flex}.ng-week li{flex-direction:column;flex:1;align-items:center;gap:3px;display:flex}.ng-week span{border:1px solid color-mix(in srgb, var(--muted) 50%, transparent);width:26px;height:26px;color:var(--card);border-radius:50%;place-items:center;font-size:12px;font-weight:900;display:grid}.ng-week .future span{border-color:color-mix(in srgb, var(--muted) 25%, transparent)}.ng-week .done span{background:var(--vermilion)}.ng-week .today span{border:2.5px solid var(--gold)}.ng-week b{color:var(--muted);font-size:11px;font-weight:400}.ng-week .today b{font-weight:700}.ng-continue{text-align:left;background:var(--raised);border-radius:14px;align-items:center;gap:12px;min-height:60px;padding:12px 14px;display:flex;border:1.5px solid color-mix(in srgb, var(--vermilion) 50%, transparent)!important}.ng-continue__ring{flex:none;width:44px;height:44px}.ng-continue>span:nth-child(2){flex-direction:column;flex:1;display:flex}.ng-continue small{color:var(--muted);font-size:12.5px}.ng-continue i{color:var(--muted);font-size:22px;font-style:normal}.ng-shelf{flex-direction:column;gap:8px;display:flex}.ng-shelfhead{justify-content:space-between;align-items:baseline;display:flex}.ng-shelfhead h3{font-size:16px}.ng-shelfhead h3 span{color:var(--vermilion);margin-left:4px;font-size:14px}.ng-shelfhead>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.ng-shelfrow{scrollbar-width:none;scroll-snap-type:x proximity;gap:10px;margin:0 -2px;padding:2px 2px 6px;display:flex;overflow-x:auto}.ng-shelfrow::-webkit-scrollbar{display:none}.ng-shelfrow .ng-pcard{scroll-snap-align:start;flex:0 0 78px}.ng-pcard{text-align:center;flex-direction:column;gap:5px;min-width:0;transition:transform .12s;display:flex}.ng-pcard:active{transform:scale(.95)}.ng-pcard__art{aspect-ratio:1;border:1px solid var(--gold35);background:var(--raised);border-radius:8px;place-items:center;display:grid;position:relative;overflow:hidden}.ng-pcard.is-collected .ng-pcard__art{border-color:#be9138b3}.ng-pcard__art>img,.ng-pcard__art>.ng-blank{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ng-card__stamp{background:#fff8ea;border:1.5px solid #b23a26;width:30px;height:30px;padding:2px;position:absolute;bottom:5px;right:5px}.ng-card__lock{opacity:.55;font-size:18px;position:relative}.ng-pcard>b{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.ng-pcard>small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:-4px;font-size:10.5px;overflow:hidden}.ng-pcard:disabled{opacity:.8}.ng-footer{padding:0}.ng-footer>*{text-align:left;width:100%;min-height:56px;color:inherit;align-items:center;gap:14px;padding:0 16px;text-decoration:none;display:flex}.ng-footer>*+*{border-top:1px solid #be91384d}.ng-footer span{text-align:center;width:26px;font-size:19px}.ng-footer b{flex:1;font-weight:600}.ng-footer small{color:var(--muted);font-size:14px}.ng-footer i{color:var(--muted);font-style:normal;font-weight:700}.ng-play,.ng-lesson{height:100dvh;padding-bottom:calc(var(--safe-b) + 8px);flex-direction:column;gap:8px;display:flex;overflow:hidden}.ng-topbar{padding:calc(var(--safe-t) + 8px) 16px 0;align-items:center;gap:12px;transition:opacity .4s;display:flex;position:relative}.ng-round{border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid;background:var(--card)!important}.ng-round svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.ng-round svg circle{fill:currentColor;stroke:none}.ng-titles{flex:1;min-width:0}.ng-titles h1{font:600 17px var(--serif);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.ng-titles p{color:var(--muted);font-variant-numeric:tabular-nums;font-size:15px}.ng-clock{margin-left:8px}.ng-boardwrap{flex:auto;place-items:center;min-height:0;padding:0 8px;display:grid;position:relative}.ng-tray{background:var(--raised);box-shadow:0 5px 20px #0003, inset 0 0 0 5px var(--lacquer);border-radius:9px;padding:8px;position:relative}.ng-tray:after{content:"";pointer-events:none;border:.8px solid #be9138bf;border-radius:6px;position:absolute;inset:5.5px}.ng-kana{pointer-events:none;z-index:1;width:24px;height:24px;position:absolute}.ng-kana svg{width:100%;height:100%;display:block}.ng-kana.tl{top:0;left:0}.ng-kana.tr{top:0;right:0;transform:scaleX(-1)}.ng-kana.bl{bottom:0;left:0;transform:scaleY(-1)}.ng-kana.br{bottom:0;right:0;transform:scale(-1)}.ng-board{touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .9s ease-in-out .35s;position:relative}.ng-board:focus-visible{outline-offset:6px}.ng-reduce .ng-board{transition:none}.ng-canvas{display:block}.ng-loupe{pointer-events:none;z-index:3;box-shadow:0 0 0 3px var(--lacquer), 0 0 0 4px var(--gold), 0 6px 16px #00000040;border-radius:50%;position:absolute;top:0;left:0}.ng-play.is-revealing .ng-topbar{opacity:.4}.ng-play.is-revealing :is(.ng-controls,.ng-companion){opacity:0;pointer-events:none;transition:opacity .4s}.ng-companion{align-items:center;gap:12px;min-height:62px;padding:0 14px;display:flex}.ng-cameo img{border:3px solid var(--lacquer);width:56px;height:56px;box-shadow:inset 0 0 0 1px var(--gold), 0 2px 6px #00000026;object-fit:cover;background:var(--raised);border-radius:14px;animation:4.8s ease-in-out infinite ng-breathe;display:block}@keyframes ng-breathe{50%{transform:translateY(-1.5px)}}.ng-reduce .ng-cameo img{animation:none}.ng-cbubble{font:15px/1.4 var(--serif);flex:1}.ng-cbubble.is-line{color:var(--ink);background:var(--raised);transform-origin:0;border:1px solid #be913880;border-radius:16px;padding:10px 13px;animation:.35s cubic-bezier(.3,1.4,.5,1) ng-in;position:relative}@keyframes ng-in{0%{opacity:0;transform:scale(.85)}}.ng-controls{gap:8px;padding:0 12px;display:flex}.ng-controls.is-covered{visibility:hidden}.ng-tool{border-radius:14px;flex-direction:column;flex:0 0 70px;justify-content:center;align-items:center;gap:3px;min-height:62px;font-size:12px;font-weight:600;display:flex;background:var(--card)!important;border:1px solid #be913866!important}.ng-tool svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.ng-tool:disabled{opacity:.45}.ng-mode{background:var(--card);border:1px solid #be913866;border-radius:16px;flex:1;padding:4px;display:flex}.ng-mode button{border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;min-height:54px;font-size:17px;font-weight:600;transition:background .15s,color .15s;display:flex}.ng-mode button.is-on{background:var(--indigo);color:var(--card)}.ng-fillglyph{background:currentColor;border-radius:3px;width:16px;height:16px;display:inline-block}.ng-crossglyph{width:16px;height:16px;display:inline-block;position:relative}.ng-crossglyph:before,.ng-crossglyph:after{content:"";background:currentColor;border-radius:2px;height:2.5px;position:absolute;top:7px;left:-1px;right:-1px;transform:rotate(45deg)}.ng-crossglyph:after{transform:rotate(-45deg)}.ng-hintslot{left:12px;right:12px;bottom:calc(var(--safe-b) + 8px);z-index:5;position:absolute}.ng-hintcard{border-color:#be913880;flex-direction:column;gap:12px;padding:14px;animation:.35s cubic-bezier(.2,.9,.3,1.05) ng-up;display:flex;box-shadow:0 8px 28px #00000024}@keyframes ng-up{0%{opacity:0;transform:translateY(40px)}}.ng-hinthead{align-items:flex-start;gap:12px;display:flex}.ng-hinthead img{border:2.5px solid var(--lacquer);object-fit:cover;border-radius:12px;flex:none;width:48px;height:48px}.ng-hinthead>div{flex-direction:column;flex:1;gap:4px;display:flex}.ng-hinthead p{font-size:14px;font-weight:600}.ng-hinthead h2{font:600 17px var(--serif)}.ng-why{font-size:15px;line-height:1.45;animation:.3s ng-fade}@keyframes ng-fade{0%{opacity:0}}.ng-x{width:36px;height:36px;color:var(--muted);flex:none;font-size:16px;font-weight:700}.ng-hintbtns{gap:10px;display:flex}.ng-completion{z-index:20;background:var(--paper);opacity:0;flex-direction:column;transition:opacity .4s,transform .5s cubic-bezier(.2,.9,.3,1);display:flex;position:fixed;inset:0;transform:scale(.97)}.ng-completion.is-on{opacity:1;transform:none}.ng-completion__inner{width:min(100%,520px);padding:calc(var(--safe-t) + 20px) 24px 20px;text-align:center;flex-direction:column;flex:1;gap:12px;margin:0 auto;display:flex;overflow-y:auto}.ng-completion h1{font:600 34px/1.15 var(--serif);margin-top:2px}.ng-completion .ng-platewrap{animation:.5s ease-out both ng-rise}.ng-cheer{text-align:left;align-items:flex-end;gap:6px;padding:0 4px;display:flex}.ng-cheer img{flex:none;height:110px;animation:.4s ease-out .45s both ng-rise}.ng-cheer .ng-bubble{margin-bottom:36px;animation:.4s ease-out .45s both ng-rise}@keyframes ng-rise{0%{opacity:0;transform:translateY(26px)}}.ng-reduce :is(.ng-cheer img,.ng-cheer .ng-bubble,.ng-completion .ng-platewrap){animation:none}.ng-stats{padding:10px 8px;display:flex}.ng-stats div{flex-direction:column;flex:1;gap:2px;display:flex}.ng-stats b{font-variant-numeric:tabular-nums;font-size:20px}.ng-stats span{color:var(--muted);font-size:12px}.ng-completion__actions{width:min(100%,520px);padding:12px 24px calc(var(--safe-b) + 12px);border-top:.5px solid #be91384d;flex-direction:column;gap:10px;margin:0 auto;display:flex}.ng-sheet{z-index:30;opacity:0;background:#0a080666;justify-content:center;align-items:flex-end;transition:opacity .18s;display:flex;position:fixed;inset:0}.ng-sheet.is-on{opacity:1}.ng-sheet__panel{background:var(--paper);width:min(100%,560px);max-height:92dvh;padding-bottom:var(--safe-b);border-radius:18px 18px 0 0;flex-direction:column;transition:transform .24s cubic-bezier(.2,.9,.3,1);display:flex;transform:translateY(30px)}.ng-sheet.is-tall .ng-sheet__panel{height:92dvh}.ng-sheet.is-on .ng-sheet__panel{transform:none}.ng-sheet header{justify-content:space-between;align-items:center;padding:10px 8px 6px 20px;display:flex}.ng-sheet header h2{font:600 22px var(--serif)}.ng-sheet__body{flex-direction:column;gap:12px;padding:4px 20px 28px;display:flex;overflow-y:auto}.ng-sheet__body h3{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:8px;font-size:13px}.ng-toggle,.ng-select{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.ng-toggle span{flex-direction:column;display:flex}.ng-toggle b,.ng-select b{font-weight:500}.ng-toggle small{color:var(--muted);font-size:12.5px}.ng-toggle input{opacity:0;pointer-events:none;position:absolute}.ng-toggle i{background:color-mix(in srgb, var(--muted) 35%, transparent);border-radius:999px;flex:none;width:51px;height:31px;transition:background .15s;position:relative}.ng-toggle i:after{content:"";background:#fff;border-radius:50%;width:27px;height:27px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.ng-toggle input:checked+i{background:var(--vermilion)}.ng-toggle input:checked+i:after{transform:translate(20px)}.ng-toggle input:focus-visible+i{outline:3px solid var(--gold);outline-offset:2px}.ng-select select{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--gold35);border-radius:10px;padding:8px 10px}.ng-collsum{justify-content:space-between;align-items:center;gap:12px;display:flex}.ng-collsum b{font-size:19px}.ng-shelfsec{flex-direction:column;gap:8px;margin-top:14px;display:flex}.ng-shelfsec h3{font:600 21px var(--serif)!important;text-transform:none!important;letter-spacing:0!important;color:var(--ink)!important;margin:0!important}.ng-cardgrid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px 12px;margin-top:4px;display:grid}.ng-detail{text-align:center;flex-direction:column;align-items:center;gap:14px;display:flex}.ng-detail .ng-btn{width:auto;min-width:220px}.ng-menu{z-index:25;background:var(--raised);border:1px solid var(--gold35);border-radius:14px;min-width:260px;position:absolute;overflow:hidden;box-shadow:0 10px 30px #0003}.ng-menu button{text-align:left;width:100%;min-height:46px;padding:13px 16px;display:block}.ng-menu button+button{border-top:1px solid #be913833}.ng-menu button:hover{background:var(--card)}.ng-menu .danger{color:var(--wrong)}.ng-lesson{gap:12px}.ng-lesson .ng-titles p{font-size:12.5px}.ng-step{white-space:nowrap;text-align:right;min-width:44px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px}.ng-lessonplate{z-index:2;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.ng-lessonplate .ng-plate{width:min(250px,62vw);animation:.5s cubic-bezier(.3,1.4,.5,1) ng-pop}@keyframes ng-pop{0%{opacity:0;transform:scale(.9)}}.ng-demotools{gap:8px;padding:0 12px;animation:.35s ng-up;display:flex}.ng-demotools span{background:var(--card);border:1px solid #be913866;border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-height:48px;font-size:17px;transition:background .2s,color .2s,transform .2s;display:flex}.ng-demotools span b{font-size:12px}.ng-demotools svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.ng-demotools .ng-fillglyph,.ng-demotools .ng-crossglyph{width:14px;height:14px}.ng-demotools .ng-crossglyph:before,.ng-demotools .ng-crossglyph:after{top:6px}.ng-demotools span:first-child,.ng-demotools span:last-child{flex:0 0 64px}.ng-demotools span.is-on{background:var(--indigo);color:var(--card);transform:scale(1.04)}.ng-lessonline{align-items:flex-start;gap:12px;min-height:96px;padding:0 14px;display:flex}.ng-lessonline img{border-radius:16px;width:68px;height:68px;animation:4.8s ease-in-out infinite ng-breathe}.ng-lessonline p{flex:1;font-size:16px;line-height:1.45}.ng-lessonbtns{flex-direction:column;gap:10px;padding:0 14px;display:flex}.ng-lessonrow .ng-btn.small{flex:0 0 78px;min-height:54px;font-size:18px}.ng-lessonrow .ng-btn.small small{opacity:1;font-size:12px;font-weight:600}@media (width>=900px) and (aspect-ratio>=5/4){.ng-play{grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-columns:minmax(0,1fr) 360px;column-gap:28px;width:min(100%,1180px);padding:0 24px 20px;display:grid}.ng-play .ng-topbar{grid-column:1/-1;padding-left:0;padding-right:0}.ng-play .ng-boardwrap{grid-area:2/1/5}.ng-play .ng-companion{grid-area:2/2;align-self:end}.ng-play .ng-controls{grid-area:3/2;padding:0}.ng-play .ng-hintslot{width:360px;left:auto;right:24px}.ng-lesson{width:min(100%,720px)}}
