:root{--primary-color: #fff;--primary-color-rgb: 255, 255, 255;--secondary-color: #1e232b;--secondary-color-rgb: 30, 35, 43;--accent-color: #0c4f86;--accent-on-dark: #9ed2f8;--accent-color-rgb: 12, 79, 134;--accent-color-light: rgb(16.1917808219, 106.595890411, 180.8082191781);--highlight-color: #BF3978;--highlight-color-rgb: 191, 57, 120;--initial-color: #999;--initial-color-rgb: 153, 153, 153}*{margin:0;padding:0;box-sizing:border-box}html{font-size:17px}@font-face{font-family:"Open Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/open-sans-latin-400.woff2?v=101974376232") format("woff2")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/open-sans-latin-600.woff2?v=101974376232") format("woff2")}@font-face{font-family:"Open Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/open-sans-latin-700.woff2?v=101974376232") format("woff2")}body{font-family:"Open Sans",sans-serif;font-size:1rem;line-height:1.5;color:#1e232b;background:#f4f6f8}h1,h2,h3,h4,h5,h6{font-family:"Open Sans",sans-serif}h1{font-size:3.052rem;line-height:1.1;margin-bottom:.5rem}h2{font-size:2.441rem;line-height:1.2;margin-bottom:.5rem}h3{font-size:1.953rem;margin-bottom:.4rem}h4{font-size:1.563rem;margin-bottom:.3rem}h5{font-size:1.25rem;margin-bottom:.25rem}h6{font-size:.875rem;margin-bottom:.15rem}p{font-size:1rem;margin-bottom:1rem}.app-update{position:fixed;z-index:2500;left:max(.75rem,env(safe-area-inset-left));right:max(.75rem,env(safe-area-inset-right));bottom:max(.75rem,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;border-radius:.75rem;background:#1e232b;color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.18)}.app-update[hidden]{display:none}.app-update p{margin:0;font-size:1rem;font-weight:700}.app-update button{min-height:44px;padding:0 .9rem;border:0;border-radius:.5rem;background:#f4f6f8;color:#1e232b;font:inherit;font-size:1rem;font-weight:800;cursor:pointer}.site-header{background:hsla(0,0%,100%,.95);box-shadow:0 2px 4px rgba(0,0,0,.1);position:sticky;top:0;z-index:1000}.site-header .container{max-width:1200px;margin:0 auto;padding:0 1rem}.site-header .main-navigation{display:flex;align-items:center;justify-content:space-between;padding:1rem 0}.site-header .nav-brand .site-logo{font-size:1.5rem;font-weight:bold;color:#1e232b;text-decoration:none;font-family:"Open Sans",sans-serif}.site-header .nav-brand .site-logo:hover{color:#0c4f86}.site-header .mobile-menu-toggle{display:none;flex-direction:column;gap:4px;background:rgba(0,0,0,0);border:none;cursor:pointer;padding:.5rem}.site-header .mobile-menu-toggle span{display:block;width:25px;height:3px;background:#1e232b;transition:all .3s ease}.site-header .mobile-menu-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px, 5px)}.site-header .mobile-menu-toggle.active span:nth-child(2){opacity:0}.site-header .mobile-menu-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(7px, -6px)}.site-header .nav-menu .nav-primary{display:flex;list-style:none;margin:0;padding:0;gap:2rem}.site-header .nav-menu .nav-primary .menu-item{position:relative}.site-header .nav-menu .nav-primary .menu-item>a{color:#333;text-decoration:none;font-weight:500;padding:.5rem 0;display:block;transition:color .3s ease}.site-header .nav-menu .nav-primary .menu-item>a:hover{color:#0c4f86}.site-header .nav-menu .nav-primary .menu-item.has-dropdown .dropdown-toggle{display:flex;align-items:center;gap:.25rem;cursor:pointer}.site-header .nav-menu .nav-primary .menu-item.has-dropdown .dropdown-toggle .arrow{font-size:.75rem;transition:transform .3s ease}.site-header .nav-menu .nav-primary .menu-item.has-dropdown:hover .dropdown-toggle .arrow{transform:rotate(180deg)}.site-header .nav-menu .nav-primary .menu-item.has-dropdown:hover .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.site-header .nav-menu .nav-primary .menu-item .dropdown-menu{position:absolute;top:100%;left:0;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.15);border-radius:4px;min-width:180px;padding:.5rem 0;list-style:none;margin:0;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .3s ease}.site-header .nav-menu .nav-primary .menu-item .dropdown-menu li a{display:block;padding:.75rem 1.5rem;color:#333;text-decoration:none;transition:background-color .2s ease}.site-header .nav-menu .nav-primary .menu-item .dropdown-menu li a:hover{background:#f5f5f5;color:#0c4f86}@media(max-width: 768px){.site-header .main-navigation{padding:.55rem 0}.site-header .nav-brand .site-logo{font-size:1.15rem}.site-header .mobile-menu-toggle{display:flex;min-width:44px;min-height:44px;align-items:center;justify-content:center}.site-header .nav-menu{position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.15);max-height:0;overflow:hidden;transition:max-height .3s ease}.site-header .nav-menu.active{max-height:500px}.site-header .nav-menu .nav-primary{flex-direction:column;gap:0;padding:1rem}.site-header .nav-menu .nav-primary .menu-item{border-bottom:1px solid #f5f5f5}.site-header .nav-menu .nav-primary .menu-item:last-child{border-bottom:none}.site-header .nav-menu .nav-primary .menu-item>a{padding:1rem 0}.site-header .nav-menu .nav-primary .menu-item.has-dropdown .dropdown-menu{position:static;box-shadow:none;opacity:1;visibility:visible;transform:none;background:#f5f5f5;margin-top:.5rem;max-height:0;overflow:hidden;transition:max-height .3s ease}.site-header .nav-menu .nav-primary .menu-item.has-dropdown:hover .dropdown-menu,.site-header .nav-menu .nav-primary .menu-item.has-dropdown.active .dropdown-menu{max-height:300px}}.site-header .header-content{text-align:center;display:flex;flex-direction:column;gap:1rem;padding-top:2rem}.site-header .header-tagline{font-size:1rem;color:#333;font-family:"Open Sans",sans-serif}.site-nav{position:sticky;top:0;width:100%;background:rgba(31,28,44,.95);backdrop-filter:blur(5px);z-index:1000;padding:15px 0;box-shadow:0 2px 4px rgba(0,0,0,.1)}.site-nav .container{display:flex;flex-direction:column;max-width:1200px;margin:0 auto;padding:0 35px}.site-nav .nav-content{display:flex;align-items:center;justify-content:flex-start;gap:2rem}.site-nav .nav-content .nav-title{margin:0;font-size:1.5rem;font-weight:bold;color:var(--primary-color)}.site-nav .nav-content .nav-links{list-style:none;display:flex;gap:1.5rem;margin:0}.site-nav .nav-content .nav-links li a{color:var(--primary-color);text-decoration:none;font-size:1rem;font-family:"Roboto",sans-serif;transition:color .3s ease}.site-nav .nav-content .nav-links li a:hover{color:var(--accent-color-light)}@media(max-width: 767px){.site-nav{padding:10px 0}.site-nav .nav-content{flex-direction:column;align-items:flex-start;gap:1rem}.site-nav .nav-content .nav-title{font-size:1.25rem}.site-nav .nav-content .nav-links{flex-direction:column;gap:.75rem}}.site-footer{background:#1c232c;color:#fff;padding:2rem 0;text-align:center;font-size:.9rem;margin-top:4rem}.site-footer .container{max-width:1200px;margin:0 auto;padding:0 1rem}.site-footer .footer-nav{margin-bottom:1.5rem}.site-footer .footer-nav .footer-links{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem}.site-footer .footer-nav .footer-links li a,.site-footer .footer-nav .footer-links li .privacy-choices{color:#fff;text-decoration:none;transition:color .3s ease;font-size:.95rem}.site-footer .footer-nav .footer-links li a:hover,.site-footer .footer-nav .footer-links li .privacy-choices:hover{color:#bf3978}.site-footer .footer-nav .footer-links li .privacy-choices{background:none;border:0;font:inherit;font-size:.95rem;cursor:pointer;min-height:44px;padding:.35rem 0}.site-footer .copyright{margin:0;color:hsla(0,0%,100%,.7);font-size:.85rem}.site-footer .privacy-choices-note{margin:.75rem auto 0;max-width:36rem;color:hsla(0,0%,100%,.8)}@media(max-width: 768px){.site-footer{padding:1.5rem 0}.site-footer .footer-nav{margin-bottom:1rem}.site-footer .footer-nav .footer-links{gap:1rem;font-size:.9rem}.site-footer .copyright{font-size:.8rem}}.background-animation{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-2;pointer-events:none}.animated-squares{display:block;width:100%;height:100%}html[data-theme=dark] body{background:#121416;color:#e6e9ed}html[data-theme=dark] .site-header{background:#1a1e24;box-shadow:none}html[data-theme=dark] .site-header .site-logo,html[data-theme=dark] .site-header .nav-primary a,html[data-theme=dark] .site-header .dropdown-menu a{color:#e6e9ed}html[data-theme=dark] .site-header .dropdown-menu{background:#242a32}html[data-theme=dark] .site-header .mobile-menu-toggle span{background:#e6e9ed}html[data-theme=dark] .site-footer{background:#0e1012;color:#e6e9ed}html[data-theme=dark] .site-footer a{color:#e6e9ed}html[data-theme=dark] .standard-page,html[data-theme=dark] .technique-page,html[data-theme=dark] .articles-page,html[data-theme=dark] .article-single-page{background:#121416;color:#e6e9ed}html[data-theme=dark] .standard-page a,html[data-theme=dark] .technique-page a,html[data-theme=dark] .articles-page a,html[data-theme=dark] .article-single-page a{color:var(--accent-on-dark)}html[data-theme=dark] .standard-page .page-content,html[data-theme=dark] .standard-page .article-card,html[data-theme=dark] .standard-page .article-content,html[data-theme=dark] .technique-page .page-content,html[data-theme=dark] .technique-page .article-card,html[data-theme=dark] .technique-page .article-content,html[data-theme=dark] .articles-page .page-content,html[data-theme=dark] .articles-page .article-card,html[data-theme=dark] .articles-page .article-content,html[data-theme=dark] .article-single-page .page-content,html[data-theme=dark] .article-single-page .article-card,html[data-theme=dark] .article-single-page .article-content{background:#22262c;color:#e6e9ed}html[data-theme=dark] .standard-page h1,html[data-theme=dark] .standard-page h2,html[data-theme=dark] .standard-page h3,html[data-theme=dark] .standard-page .page-title,html[data-theme=dark] .standard-page .article-title,html[data-theme=dark] .standard-page .article-title a,html[data-theme=dark] .technique-page h1,html[data-theme=dark] .technique-page h2,html[data-theme=dark] .technique-page h3,html[data-theme=dark] .technique-page .page-title,html[data-theme=dark] .technique-page .article-title,html[data-theme=dark] .technique-page .article-title a,html[data-theme=dark] .articles-page h1,html[data-theme=dark] .articles-page h2,html[data-theme=dark] .articles-page h3,html[data-theme=dark] .articles-page .page-title,html[data-theme=dark] .articles-page .article-title,html[data-theme=dark] .articles-page .article-title a,html[data-theme=dark] .article-single-page h1,html[data-theme=dark] .article-single-page h2,html[data-theme=dark] .article-single-page h3,html[data-theme=dark] .article-single-page .page-title,html[data-theme=dark] .article-single-page .article-title,html[data-theme=dark] .article-single-page .article-title a{color:#e6e9ed}html[data-theme=dark] .standard-page p,html[data-theme=dark] .standard-page li,html[data-theme=dark] .standard-page figcaption,html[data-theme=dark] .technique-page p,html[data-theme=dark] .technique-page li,html[data-theme=dark] .technique-page figcaption,html[data-theme=dark] .articles-page p,html[data-theme=dark] .articles-page li,html[data-theme=dark] .articles-page figcaption,html[data-theme=dark] .article-single-page p,html[data-theme=dark] .article-single-page li,html[data-theme=dark] .article-single-page figcaption{color:#c5ced6}.cta-button{display:inline-block;font-size:1rem;padding:10px 20px;background-color:var(--accent-color);border:1px solid hsla(0,0%,100%,.5);color:#fff;border-radius:7px;text-decoration:none;font-family:"Open Sans",sans-serif;transition:background-color .3s ease}.cta-button.sm{font-size:.83rem;padding:7px 15px}.cta-button i{margin-left:.5rem;transition:transform .3s ease-in-out}.cta-button:hover{background-color:var(--accent-color-light);border:1px solid hsla(0,0%,100%,.95)}.cta-button:hover i{transform:translateX(5px)}#color-controls{display:none;flex-wrap:wrap;gap:1rem;padding:1rem 0;background:rgba(0,0,0,.05);border:1px solid rgba(0,0,0,.1);border-radius:8px}#color-controls label{display:flex;align-items:center;gap:.5rem;font-size:1rem;color:var(--primary-color)}#color-controls label input[type=color]{border:none;background:rgba(0,0,0,0);width:1.5rem;height:1.5rem;padding:0;cursor:pointer;-webkit-appearance:none;border:1px solid #ccc;border-radius:4px}#color-controls label input[type=color]::-webkit-color-swatch-wrapper{padding:0}#color-controls label input[type=color]::-webkit-color-swatch{border:none}@media screen and (min-width: 1024px){#color-controls{display:flex}}.wpcf7{margin:2rem 0}.wpcf7 .wpcf7-form{background:#fff;padding:0}.wpcf7 p{margin-bottom:1.5rem}.wpcf7 label{display:block;font-weight:600;color:#333;margin-bottom:.5rem;font-size:.95rem}.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 input[type=url],.wpcf7 textarea{width:100%;padding:.75rem 1rem;border:2px solid #ddd;border-radius:4px;font-size:1rem;font-family:"Open Sans",sans-serif;transition:border-color .3s ease,box-shadow .3s ease;background:#fff}.wpcf7 input[type=text]:focus,.wpcf7 input[type=email]:focus,.wpcf7 input[type=tel]:focus,.wpcf7 input[type=url]:focus,.wpcf7 textarea:focus{outline:none;border-color:#0c4f86;box-shadow:0 0 0 3px rgba(69,116,140,.1)}.wpcf7 input[type=text]::placeholder,.wpcf7 input[type=email]::placeholder,.wpcf7 input[type=tel]::placeholder,.wpcf7 input[type=url]::placeholder,.wpcf7 textarea::placeholder{color:#999}.wpcf7 textarea{min-height:150px;resize:vertical}.wpcf7 select{width:100%;padding:.75rem 1rem;border:2px solid #ddd;border-radius:4px;font-size:1rem;font-family:"Open Sans",sans-serif;background:#fff;cursor:pointer;transition:border-color .3s ease}.wpcf7 select:focus{outline:none;border-color:#0c4f86}.wpcf7 input[type=checkbox],.wpcf7 input[type=radio]{margin-right:.5rem}.wpcf7 input[type=submit],.wpcf7 button[type=submit]{background:#0c4f86;color:#fff;padding:.875rem 2rem;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:"Open Sans",sans-serif}.wpcf7 input[type=submit]:hover,.wpcf7 button[type=submit]:hover{background:#bf3978;transform:translateY(-2px);box-shadow:0 4px 12px rgb(var(--accent-color-rgb)/0.3)}.wpcf7 input[type=submit]:active,.wpcf7 button[type=submit]:active{transform:translateY(0)}.wpcf7 input[type=submit]:disabled,.wpcf7 button[type=submit]:disabled{background:#ccc;cursor:not-allowed;transform:none}.wpcf7 .wpcf7-not-valid-tip{color:#d32f2f;font-size:.85rem;margin-top:.25rem;display:block}.wpcf7 .wpcf7-form-control-wrap{position:relative;display:block}.wpcf7 .wpcf7-response-output{margin:1.5rem 0;padding:1rem 1.25rem;border-radius:4px;font-size:.95rem;border-left:4px solid}.wpcf7 .wpcf7-response-output.wpcf7-validation-errors{background:#fff3cd;border-color:#ffc107;color:#856404}.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ok{background:#d4edda;border-color:#28a745;color:#155724}.wpcf7 .wpcf7-response-output.wpcf7-mail-sent-ng{background:#f8d7da;border-color:#dc3545;color:#721c24}.wpcf7 .wpcf7-response-output.wpcf7-spam-blocked{background:#f8d7da;border-color:#dc3545;color:#721c24}.wpcf7 .wpcf7-spinner{margin-left:1rem;vertical-align:middle}.wpcf7 .ajax-loader{display:inline-block;margin-left:1rem}.wpcf7-acceptance{margin:1rem 0}.wpcf7-acceptance label{display:flex;align-items:flex-start;font-weight:normal;cursor:pointer}.wpcf7-acceptance label input{margin-top:.25rem;flex-shrink:0}.wpcf7-acceptance label .wpcf7-list-item-label{margin-left:.5rem}.wpcf7-quiz,.wpcf7-captcha{margin:1.5rem 0}.wpcf7-quiz label,.wpcf7-captcha label{font-weight:600}.wpcf7-file{padding:.5rem;border:2px dashed #ddd;border-radius:4px;cursor:pointer;transition:border-color .3s ease}.wpcf7-file:hover{border-color:#0c4f86}@media(max-width: 768px){.wpcf7 input[type=submit],.wpcf7 button[type=submit]{width:100%;padding:1rem}}.contact-form{display:grid;gap:.9rem;margin:1.5rem 0 .5rem;position:relative}.contact-form label{display:grid;gap:.35rem;font-weight:600;color:#1e232b}.contact-form input,.contact-form textarea{width:100%;min-height:44px;padding:.65rem .75rem;border:2px solid #ddd;border-radius:4px;font:inherit;font-size:1rem;color:#222;background:#fff;touch-action:manipulation}.contact-form textarea{min-height:8rem;resize:vertical}.contact-form button[type=submit]{min-height:44px;padding:.65rem 1.1rem;border:0;border-radius:4px;background:#0c4f86;color:#fff;font:inherit;font-size:1rem;font-weight:700;cursor:pointer;touch-action:manipulation;justify-self:start}.contact-form button[type=submit]:disabled{opacity:.55;cursor:not-allowed}.contact-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-status{margin:0;padding:.75rem .9rem;border-radius:4px;background:#eef1f5;color:var(--accent-color)}.contact-status[data-state=error]{background:#fde8e6;color:#7a241c}.contact-status[data-state=success]{background:#e5f4ec;color:#145c32}#turnstile-slot.is-ready{min-height:65px}@media(max-width: 768px){.contact-form button[type=submit]{width:100%}}.grecaptcha-badge{display:none}#home{max-width:1300px;margin:0 auto;position:relative}#home .hero{position:relative;overflow:hidden;color:#fff;text-align:center;padding:100px 0 50px}@media screen and (max-width: 768px){#home .hero{padding:3.5rem 0 2rem}}#home .hero .container{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:0 2rem}#home .hero h1{font-size:3rem;margin-bottom:1rem;font-family:"Open Sans",sans-serif;text-shadow:2px 2px 4px rgba(0,0,0,.3)}@media screen and (max-width: 768px){#home .hero h1{font-size:2rem}}#home .hero p{font-size:1.25rem;margin-bottom:2rem;color:#ccc}@media screen and (max-width: 768px){#home .hero p{font-size:1rem}}.sudoku-page,.technique-page{--board-bg: #ffffff;--cell-bg: #ffffff;--given-bg: #ffffff;--ink: #1e232b;--user-ink: var(--accent-color);--line: #1c232c;--thin: #d5dbe2;--selected: #c0dcf1;--selected-ink: var(--ink);--same: #d4e8f7;--peer: #e7f2fb;--given-peer: #e7f2fb;--hover: #e7f2fb;--slash: #b00016;--slash-on-selected: #b00016;--dot: #b00016;--pad: #eef1f4;--pad-ink: #1e232b;--pad-border: #d5dbe2;--map-empty: #d5dbe2;--map-fill: var(--same);--muted: #5c6670;--count-ink: #4a5560;--auto-ink: #4a5560;--note-ink: var(--accent-color);--ghost-ink: #2c4558;--auto-on-selected: #4a5560;--note-on-selected: var(--accent-color);--ghost-on-selected: #2c4558;--card: #ffffff;--page: #f4f6f8;--accent-btn: var(--accent-color);--accent-on: #ffffff;--focus: var(--accent-color);--danger: #b00016;--hint-pattern: #0b6e5f;--hint-eliminate: #b42318;--hint-place: #0b6e5f;--hint-place-bg: #d7f3ec;--hint-region: #e7f6f2;background:var(--page);color:var(--ink);padding:1.25rem 1rem 3rem}.sudoku-page h1,.technique-page h1{font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 .25rem;color:var(--ink)}html[data-theme=dark] .sudoku-page,html[data-theme=dark] .technique-page{--board-bg: #1c2026;--cell-bg: #1c2026;--given-bg: #1c2026;--ink: #e6e9ed;--user-ink: var(--accent-on-dark);--line: #e6e9ed;--thin: #3e4650;--selected: #355068;--selected-ink: var(--ink);--same: #2c4256;--peer: #24303a;--given-peer: #24303a;--hover: #2a3844;--slash: #ffb4b4;--slash-on-selected: #ffb4b4;--dot: #ffb4b4;--pad: #2a3036;--pad-ink: #e6e9ed;--pad-border: #3e4650;--map-empty: #3c444e;--map-fill: var(--same);--muted: #b7c0c8;--count-ink: #c5ced6;--auto-ink: #c5ced6;--note-ink: var(--accent-on-dark);--ghost-ink: #d4ebfa;--auto-on-selected: #c5ced6;--note-on-selected: var(--accent-on-dark);--ghost-on-selected: #d4ebfa;--card: #22262c;--page: #121416;--accent-btn: var(--accent-on-dark);--accent-on: #121416;--focus: var(--accent-on-dark);--danger: #ffb4b4;--hint-pattern: #7ddec8;--hint-eliminate: #ff8b80;--hint-place: #7ddec8;--hint-place-bg: #1a3c34;--hint-region: #1e3330}.sudoku-shell{display:block;max-width:none;margin:0 auto}.play-column{min-width:0;height:100svh;height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);overflow:hidden;background:var(--page)}body:has(.sudoku-page){background:#f4f6f8}html[data-theme=dark] body:has(.sudoku-page){background:#121416}body:has(.sudoku-page) .site-header{display:none}.sudoku-page{padding:0}.game-intro,#community-line,.key-help{display:none}.play-chrome{position:relative;z-index:6;flex:0 0 auto}.icon-row{display:flex;align-items:center;min-height:44px;gap:0}.icon-spacer{flex:1 1 auto}.icon-btn,.play-home{width:44px;min-width:44px;height:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:0;background:rgba(0,0,0,0);color:var(--ink);padding:0;text-decoration:none;border-radius:.45rem}.icon-btn svg,.play-home svg{width:22px;height:22px;display:block}.help-btn{font-size:1.35rem;font-weight:750;line-height:1}.icon-pause,.icon-resume{width:18px;height:18px}#pause-btn{width:44px;min-width:44px;justify-content:flex-start;padding-left:2px}#pause-btn svg{width:14px;height:14px}#pause-btn .icon-resume{display:none}#pause-btn[data-state=paused] .icon-pause{display:none}#pause-btn[data-state=paused] .icon-resume{display:block}.difficulty-tabs{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:8;flex-direction:column;gap:.2rem;width:max-content;max-width:min(18rem,100vw - 16px);margin:0;padding:.35rem;background:var(--card);border:1px solid var(--pad-border);border-radius:.7rem;box-shadow:0 10px 28px rgba(0,0,0,.14)}.difficulty-tabs.is-open{display:flex}.difficulty-tabs button{min-height:44px;width:100%;text-align:left;border:0;background:rgba(0,0,0,0);color:var(--ink);border-radius:.45rem;padding:0 .85rem;font:inherit;font-weight:650;cursor:pointer}.difficulty-tabs button[aria-selected=true]{background:var(--accent-btn);color:var(--accent-on);border-color:var(--accent-btn)}.community-line,.solved-community{margin:-0.15rem 0 .75rem;color:var(--muted);font-size:.92rem}.solved-community{margin:.35rem 0 0}.settings-card label span{min-width:0}.status-bar{display:grid;grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);align-items:center;gap:.35rem;min-height:40px;margin:0}.timer-group,.status-actions,.mistake-counter{display:flex;align-items:center;gap:.4rem}.timer{font-variant-numeric:tabular-nums;font-weight:700}.puzzle-label{justify-self:start;margin:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:0;background:rgba(0,0,0,0);color:var(--ink);font:inherit;font-size:1.2rem;font-weight:800;line-height:1;min-height:44px;padding:0;cursor:pointer}.timer-group{justify-self:center;gap:0}.mistake-counter{justify-self:end;white-space:nowrap}.mistake-label{font-size:1rem;font-weight:650;color:var(--ink)}.dots{display:flex;gap:.3rem}.dots i{width:.7rem;height:.7rem;border-radius:50%;border:2px solid var(--muted);display:block}.dots i.used{background:var(--danger);border-color:var(--danger)}.mistake-counter.is-hidden,.timer-group.is-hidden .timer{display:none}.text-btn,.pad-wide,.mode-toggle button,.number-pad button,.primary-btn,.secondary-btn,.icon-close{font:inherit;cursor:pointer;min-height:44px}.text-btn{border:0;background:rgba(0,0,0,0);color:var(--ink);font-weight:700;padding:0 .4rem}.more{position:relative}.more-btn{font-size:1.4rem;line-height:1;min-width:44px}.more-menu{position:absolute;right:0;top:calc(100% + .25rem);z-index:5;min-width:11rem;background:var(--card);color:var(--ink);border:1px solid var(--pad-border);border-radius:.6rem;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:.35rem;display:flex;flex-direction:column}.more-menu[hidden]{display:none}.more-menu button{text-align:left;border:0;background:rgba(0,0,0,0);color:inherit;min-height:44px;padding:0 .75rem;border-radius:.4rem;font:inherit;cursor:pointer}.more-menu button:hover,.more-menu button:focus-visible{background:var(--peer)}.play-surface{display:flex;flex-direction:column;flex-wrap:nowrap;gap:clamp(2px,.7dvh,10px);align-items:stretch;width:100%;min-height:0;flex:1 1 auto}.board-column{flex:1 1 auto;min-width:0;min-height:0;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;container-type:size}.board-wrap{position:relative;width:min(100cqi,100cqb);max-width:100%;container-type:inline-size}.sudoku-grid{width:100%;aspect-ratio:1;display:flex;flex-direction:column;border:4px solid var(--line);background:var(--board-bg);user-select:none;touch-action:manipulation;overscroll-behavior:none}.grid-row{display:grid;grid-template-columns:repeat(9, minmax(0, 1fr));flex:1 1 0;min-height:0}.grid-row:last-child .cell{border-bottom:0}.cell{position:relative;border:0;border-right:1px solid var(--thin);border-bottom:1px solid var(--thin);background:var(--cell-bg);background-clip:padding-box;color:var(--user-ink);font:inherit;font-weight:700;font-size:clamp(1.15rem,8cqi,2.4rem);line-height:1;min-width:0;min-height:0;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;outline:none}.cell.border-right{border-right:2px solid var(--line)}.cell.border-bottom{border-bottom:2px solid var(--line)}.cell:last-child{border-right:0}.cell.given{background:var(--given-bg);color:var(--ink)}.cell.peer{background:var(--peer)}.cell.given.peer{background:var(--given-peer)}.cell.same{background:var(--same)}.cell.selected,.cell.given.selected{background:var(--selected)}@media(hover: hover)and (pointer: fine){.cell:hover:not(.selected):not(.same):not(.given){background:color-mix(in srgb, var(--selected) 36%, var(--cell-bg))}.cell.given:hover:not(.selected):not(.same){background:color-mix(in srgb, var(--selected) 36%, var(--given-bg))}}.cell.hint-region{background:var(--hint-region)}.cell.hint-pattern{box-shadow:inset 0 0 0 3px var(--hint-pattern);z-index:2}.cell.hint-pattern::before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--hint-pattern);pointer-events:none}.cell.hint-eliminate{box-shadow:inset 0 0 0 3px var(--hint-eliminate);z-index:2}.cell.hint-place{box-shadow:inset 0 0 0 3px var(--hint-place);background:var(--hint-place-bg);z-index:3}.cell.wrong{color:var(--slash)}.cell.selected.wrong,.cell.given.selected.wrong{color:var(--slash-on-selected)}.cell.wrong::after{content:"";position:absolute;inset:16% 8%;background:linear-gradient(to top right, transparent calc(50% - 1.5px), var(--slash) calc(50% - 1.5px), var(--slash) calc(50% + 1.5px), transparent calc(50% + 1.5px));pointer-events:none}.conflict-dot{position:absolute;top:4px;left:4px;width:7px;height:7px;border-radius:50%;background:var(--dot);pointer-events:none}.marks{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3, 1fr);grid-template-rows:repeat(3, 1fr);padding:1px;box-sizing:border-box;font-size:clamp(11px,3.2cqi,15px);font-weight:650;line-height:1;color:var(--muted);pointer-events:none}.marks span{display:flex;align-items:center;justify-content:center;min-width:0;min-height:0;overflow:hidden;visibility:hidden}.marks span.user-note{overflow:visible}.marks span.on{visibility:visible}.marks span.auto{color:var(--auto-ink);font-weight:500;font-style:normal;text-decoration:none;opacity:1}.marks span.user-note{color:var(--note-ink);font-weight:800;font-style:normal;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:0;opacity:1}.marks span.ghost{overflow:visible;visibility:visible;color:var(--ghost-ink);font-weight:500;font-style:italic;text-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:1px;opacity:1}.cell.selected .marks{pointer-events:auto}.cell.selected .marks span{pointer-events:auto;visibility:visible;width:100%;height:100%}.cell.selected .marks span:not(.on):not(.ghost){color:rgba(0,0,0,0)}.cell.selected .marks span.auto{color:var(--auto-on-selected);font-weight:500;font-style:normal;text-decoration:none;opacity:1}.cell.selected .marks span.user-note{color:var(--note-on-selected);font-weight:800;font-style:normal;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:0;opacity:1}.cell.selected .marks span.ghost{visibility:visible;color:var(--ghost-on-selected);font-weight:500;font-style:italic;text-decoration:underline dotted;text-decoration-thickness:1px;opacity:1}.cell.selected .marks span.hint-note{visibility:visible;color:var(--selected-ink);font-weight:800;opacity:1}.cell.selected .marks span.struck{visibility:visible;color:var(--slash-on-selected);font-weight:800;opacity:1;text-decoration:line-through}.cell.hint-pattern .marks,.cell.hint-eliminate .marks,.cell.hint-place .marks{font-size:clamp(.68rem,2.8cqi,.9rem)}.board-cover{position:absolute;inset:0;background:var(--page);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;z-index:2}.board-cover[hidden]{display:none}.board-cover p{margin:0;font-size:1.4rem;font-weight:700}.board-wrap.is-paused .sudoku-grid{visibility:hidden}.controls{width:100%;flex:0 0 auto;min-height:0;display:flex;flex-direction:column;gap:clamp(8px,1dvh,14px);max-width:none}.tool-row,.aux-row{flex:0 0 auto;display:flex;align-items:center;gap:.4rem;min-height:44px}.tool-row .mode-toggle{flex:1 1 auto;min-width:0}.hint-icon{flex:0 0 44px;color:var(--ink)}.hint-icon svg{width:20px;height:20px}.undo-btn{flex:0 0 auto;min-width:4.6rem;min-height:44px;border:0;border-radius:.6rem;background:var(--pad);color:var(--ink);font:inherit;font-weight:750;padding:0 .85rem;cursor:pointer}.undo-btn:disabled{opacity:.35;color:var(--muted)}.pad-cluster{flex:0 0 auto;min-height:0;display:grid;grid-template-columns:repeat(5, minmax(0, 1fr));grid-template-rows:auto auto;align-items:start;gap:clamp(4px,.8dvh,10px)}.mode-toggle kbd{margin-left:.2rem}.mode-toggle{display:grid;grid-template-columns:1fr 1fr;background:var(--pad);border:0;border-radius:.7rem;padding:.18rem;min-height:44px}.mode-toggle button{border:0;background:rgba(0,0,0,0);color:var(--pad-ink);border-radius:.55rem;font-weight:750;font-size:.95rem;white-space:nowrap;min-height:44px}.mode-toggle button[aria-pressed=true]{background:var(--accent-btn);color:var(--accent-on)}kbd{font:inherit;font-size:.75em;border:1px solid currentColor;border-radius:.25rem;padding:0 .25rem}.number-pad{display:contents;touch-action:manipulation}.number-pad button{position:relative;border:0;background:var(--pad);color:var(--pad-ink);border-radius:.7rem;font-weight:750;min-width:0;min-height:0;width:100%;height:auto;aspect-ratio:1;padding:0;container-type:inline-size}.number-pad button.complete{opacity:.38}.number-pad .box-map{position:absolute;inset:3px;display:grid;grid-template-columns:repeat(3, 1fr);grid-template-rows:repeat(3, 1fr);gap:2px;pointer-events:none}.number-pad .box-map i{display:block;border-radius:1px;background:var(--map-empty);font-style:normal}.number-pad .box-map i.on{background:var(--map-fill)}.number-pad .pad-digit{position:absolute;inset:3px;display:grid;grid-template-columns:repeat(3, 1fr);grid-template-rows:repeat(3, 1fr);pointer-events:none;z-index:1}.number-pad .pad-digit span{grid-area:2/2;display:flex;align-items:center;justify-content:center;font-size:clamp(1.15rem,42cqi,1.85rem);line-height:1}.number-pad.map-off .box-map{display:none}.number-pad.map-off .pad-digit{inset:0;display:flex;align-items:center;justify-content:center}.number-pad.map-off .pad-digit span{font-size:clamp(1.35rem,42cqi,2rem)}.pad-left{position:absolute;right:.35rem;bottom:.28rem;z-index:2;font-size:.68rem;font-weight:700;line-height:1;color:var(--count-ink);pointer-events:none}.erase-key{display:flex;align-items:center;justify-content:center;align-self:start;justify-self:stretch;border:0;background:color-mix(in srgb, var(--pad-ink) 10%, var(--pad));color:var(--pad-ink);border-radius:.7rem;min-width:0;min-height:0;width:100%;height:auto;aspect-ratio:1;padding:0;cursor:pointer}.erase-word{display:none}.erase-mark{font-size:1.7rem;font-weight:500;line-height:1}.hint-launch{width:100%}.pad-actions{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.hint-sheet{position:fixed;left:0;right:0;bottom:0;z-index:40;width:auto;max-width:none;margin:0;max-height:min(46dvh,22rem);overflow:auto;background:var(--card);color:var(--ink);border:1px solid var(--pad-border);border-radius:.9rem .9rem 0 0;padding:.2rem .85rem calc(.6rem + env(safe-area-inset-bottom));box-shadow:0 -8px 28px rgba(0,0,0,.16);touch-action:none}.hint-sheet[hidden]{display:none}.hint-grab{width:2.4rem;height:4px;border-radius:999px;background:var(--thin);margin:.05rem auto .25rem}.hint-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:44px}.hint-kicker{margin:0;font-size:.8rem;font-weight:800;letter-spacing:.01em;color:var(--user-ink)}.hint-text{margin:0 0 .35rem;font-size:1rem;line-height:1.3}.hint-actions{display:flex;flex-direction:column;align-items:stretch;gap:.15rem}.hint-next,.hint-learn,.hint-dismiss{touch-action:manipulation}.hint-next{width:100%}.hint-learn{font-size:1rem;font-weight:700;min-height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--user-ink)}.hint-dismiss{min-height:44px;min-width:44px;flex:0 0 auto}.sudoku-page input,.sudoku-page select,.sudoku-page textarea,.technique-page input,.technique-page select,.technique-page textarea{font-size:1rem}.technique-board{width:100%;max-width:100%;margin:.5rem 0 .75rem;touch-action:manipulation}.technique-step-label{margin:.75rem 0 .15rem;font-size:.8rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--user-ink, var(--accent-color))}.technique-controls{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.35rem 0 1rem}.technique-controls button{min-height:48px;font-size:1.05rem;font-weight:800;border-radius:.6rem;border:1px solid var(--pad-border, #d3d9e0);background:var(--pad, #eef1f5);color:var(--pad-ink, #1e232b);touch-action:manipulation;cursor:pointer}.technique-controls button:disabled{opacity:.45}.play-technique,.related-techniques a{font-weight:800}.play-technique{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1rem;border-radius:.6rem;background:var(--accent-btn, var(--accent-color));color:var(--accent-on, #fff);text-decoration:none}.technique-index{list-style:decimal;padding-left:1.2rem}.technique-index li{margin:0 0 .85rem}.technique-index a{font-weight:800}.technique-index span{display:block;margin-top:.15rem}.technique-level{margin:0 0 .35rem;font-size:.95rem;font-weight:700}.pad-wide,.primary-btn,.secondary-btn{border-radius:.5rem;font-weight:700;padding:0 .75rem}.pad-wide,.secondary-btn{background:var(--pad);color:var(--pad-ink);border:1px solid var(--pad-border)}.primary-btn,#resume-btn{background:var(--accent-btn);color:var(--accent-on);border:0;min-height:44px;border-radius:.5rem;padding:0 1rem;font:inherit;font-weight:700;cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}.auto-toggle{display:flex;align-items:center;gap:.5rem;min-height:44px;font-size:1rem;color:var(--ink)}.key-help{margin:0;color:var(--muted);font-size:.8rem;line-height:1.4}.sudoku-copy{max-width:40rem;margin:0 auto;padding:1.5rem 1rem 2.5rem;color:var(--ink);min-width:0;min-height:150px;font-size:1rem;font-weight:400;line-height:1.6}.sudoku-copy h2,.sudoku-copy h3,.sudoku-copy p{overflow-wrap:anywhere}.sudoku-copy h2{font-size:1.35rem;font-weight:700;line-height:1.3;margin:0 0 .75rem;color:var(--ink)}.sudoku-copy p{margin:0 0 1rem;font-size:1rem;font-weight:400;line-height:1.6}.sudoku-copy p:last-child{margin-bottom:0}.sudoku-copy a{color:var(--user-ink)}@media(min-width: 721px){.sudoku-copy h2{font-size:1.5rem}}.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:3000;background:rgba(16,12,20,.55);display:flex;align-items:center;justify-content:center;padding:1rem}.modal-card{position:relative;width:min(100%,28rem);background:var(--card);color:var(--ink);border-radius:.8rem;padding:1.25rem 1.25rem 1.4rem;box-shadow:0 16px 40px rgba(0,0,0,.2);overflow:auto;max-height:calc(100dvh - 2rem)}.modal-card h2{margin:0 0 .5rem;font-size:1.5rem}.modal-card p{margin:0 0 .75rem}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.icon-close{border:0;background:rgba(0,0,0,0);color:var(--ink);font-size:1.6rem;line-height:1;min-width:44px}.modal-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.share-actions{display:flex;flex-direction:column;gap:.5rem;margin:.35rem 0 .85rem}.share-actions button{width:100%;min-height:52px;font-size:1.05rem}.share-toast{margin:0;text-align:center;font-weight:800;color:var(--user-ink)}.settings-card fieldset,.stats-card{border:0;margin:.5rem 0 0;padding:0}.settings-card legend{font-weight:700;margin-bottom:.35rem}.settings-card label{display:flex;align-items:center;gap:.5rem;min-height:44px}.stats-table{width:100%;border-collapse:collapse;font-size:.92rem}.stats-table th,.stats-table td{text-align:left;padding:.4rem .3rem;border-bottom:1px solid var(--pad-border)}.streak-line{margin-top:.75rem;font-weight:700}.celebrate .confetti span{position:absolute;top:-10px;width:8px;height:14px;opacity:.9;animation:confetti-fall 1.1s ease-in forwards}@keyframes confetti-fall{to{transform:translateY(220px) rotate(180deg);opacity:0}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.sudoku-page button:focus-visible,.sudoku-page input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sudoku-page .cell:focus,.sudoku-page .cell:focus-visible{outline:none;outline-offset:0}.sudoku-page .cell:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}@media(hover: none),(pointer: coarse){.sudoku-page .cell:focus-visible{box-shadow:none}}@media(max-width: 860px){.game-intro .supporting-text{font-size:.85rem}}@media(max-width: 720px){.play-chrome,.controls{padding-left:max(6px,env(safe-area-inset-left));padding-right:max(6px,env(safe-area-inset-right))}.mode-toggle kbd{display:none}.sudoku-copy h2{font-size:1.35rem}}@media(min-width: 721px){.play-column{width:100%;max-width:1180px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.play-surface{flex-direction:row;align-items:flex-start;justify-content:center;gap:clamp(16px,2vw,32px);padding-bottom:12px}.board-column{flex:1 1 0;width:auto;max-width:540px;height:auto;min-height:0;align-self:flex-start;align-items:stretch;justify-content:flex-start;container-type:normal}.board-wrap{width:min(100%,540px,100dvh - 108px);max-width:540px}.controls{flex:0 0 220px;width:220px;max-width:220px;height:auto;align-self:flex-start;gap:.6rem}.tool-row{flex-wrap:wrap}.tool-row .mode-toggle{flex:1 1 100%}.pad-cluster{display:flex;flex-direction:column;flex:0 0 auto;width:220px;aspect-ratio:auto;gap:.6rem}.number-pad{display:grid;width:100%;grid-template-columns:repeat(3, minmax(0, 1fr));gap:.4rem}.number-pad button{aspect-ratio:1;width:100%;height:auto;min-width:0;min-height:0}.number-pad .pad-digit span{font-size:clamp(1rem,30cqi,1.45rem)}.number-pad.map-off .pad-digit span{font-size:1.35rem}.erase-key{width:100%;height:44px;min-height:44px;aspect-ratio:auto}.erase-word{display:inline;font-size:1rem;font-weight:750}.erase-mark{display:none}.sudoku-copy{margin-top:0;padding-top:2.5rem}.sudoku-copy h2{font-size:1.5rem}}.install-prompt{margin-top:.9rem;padding-top:.85rem;border-top:1px solid var(--thin)}.install-prompt[hidden]{display:none}.install-title{margin:0 0 .2rem;font-size:1rem;font-weight:800}.install-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .75rem}.install-actions .text-btn{min-height:44px;font-size:1rem}@media(display-mode: standalone){html{background:#f4f6f8;overscroll-behavior:none}html body{background:#f4f6f8;overscroll-behavior:none;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}html[data-theme=dark]{background:#121416}html[data-theme=dark] body{background:#121416}html .site-header,html .site-footer{display:none}html .sudoku-page{padding-top:.35rem}html .game-intro{margin-bottom:.25rem}html .game-intro .supporting-text{display:none}html .game-intro h1{font-size:1.35rem}html .sudoku-grid,html .board-wrap,html .play-surface{overscroll-behavior:none}html:has(.sudoku-page) body{padding:0}}html.is-standalone{background:#f4f6f8;overscroll-behavior:none}html.is-standalone body{background:#f4f6f8;overscroll-behavior:none;padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left)}html.is-standalone[data-theme=dark]{background:#121416}html.is-standalone[data-theme=dark] body{background:#121416}html.is-standalone .site-header,html.is-standalone .site-footer{display:none}html.is-standalone .sudoku-page{padding-top:.35rem}html.is-standalone .game-intro{margin-bottom:.25rem}html.is-standalone .game-intro .supporting-text{display:none}html.is-standalone .game-intro h1{font-size:1.35rem}html.is-standalone .sudoku-grid,html.is-standalone .board-wrap,html.is-standalone .play-surface{overscroll-behavior:none}html.is-standalone:has(.sudoku-page) body{padding:0}@media(prefers-reduced-motion: reduce){.celebrate .confetti span{animation:none;display:none}}.articles-page{padding:4rem 0;background:#f4f6f8}.articles-page .container{max-width:1200px;margin:0 auto;padding:0 1rem}.articles-page .page-header{text-align:center;margin-bottom:3rem}.articles-page .page-header h1{font-size:2.5rem;color:#1e232b;margin-bottom:1rem}.articles-page .page-header .page-description{font-size:1.2rem;color:#333}.articles-page .articles-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(320px, 1fr));gap:2rem;margin-bottom:3rem}.articles-page .article-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(0,0,0,.1);transition:transform .3s ease,box-shadow .3s ease}.articles-page .article-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px rgba(0,0,0,.15)}.articles-page .article-card .article-thumbnail img{width:100%;height:200px;object-fit:cover;display:block}.articles-page .article-card .article-content{padding:1.5rem}.articles-page .article-card .article-meta{display:flex;justify-content:space-between;font-size:.85rem;color:#666;margin-bottom:.75rem}.articles-page .article-card .article-title{font-size:1.5rem;margin-bottom:1rem}.articles-page .article-card .article-title a{color:#333;text-decoration:none;transition:color .3s ease}.articles-page .article-card .article-title a:hover{color:#0c4f86}.articles-page .article-card .article-excerpt{color:#666;line-height:1.6;margin-bottom:1rem}.articles-page .article-card .read-more{color:#0c4f86;text-decoration:none;font-weight:600;transition:color .3s ease}.articles-page .article-card .read-more:hover{color:#bf3978}.articles-page .no-articles{text-align:center;padding:3rem;font-size:1.2rem;color:#666}.articles-page .pagination{display:flex;justify-content:center;gap:.5rem;margin-top:3rem}.articles-page .pagination a,.articles-page .pagination span{padding:.5rem 1rem;border:1px solid #ddd;border-radius:4px;text-decoration:none;color:#333;transition:all .3s ease}.articles-page .pagination a.current,.articles-page .pagination span.current{background:#0c4f86;color:#fff;border-color:#0c4f86}.articles-page .pagination a:hover:not(.current),.articles-page .pagination span:hover:not(.current){background:#f5f5f5;border-color:#0c4f86}.article-single-page{padding:4rem 0;background:#f4f6f8}.article-single-page .container{max-width:800px;margin:0 auto;padding:0 1rem}.article-single-page .article-content{background:#fff;border-radius:8px;padding:3rem;box-shadow:0 2px 8px rgba(0,0,0,.1)}.article-single-page .article-header{margin-bottom:2rem}.article-single-page .article-header .article-meta{display:flex;gap:1rem;font-size:.9rem;color:#666;margin-bottom:1rem}.article-single-page .article-header .article-title{font-size:2.5rem;color:#333;line-height:1.2;margin-bottom:2rem}.article-single-page .article-header .article-featured-image{margin-bottom:2rem;border-radius:8px;overflow:hidden}.article-single-page .article-header .article-featured-image img{width:100%;height:auto;display:block}.article-single-page .article-body{line-height:1.8;color:#333;font-size:1.1rem}.article-single-page .article-body h2{font-size:2rem;color:#1e232b;margin-top:2rem;margin-bottom:1rem}.article-single-page .article-body h3{font-size:1.5rem;color:#333;margin-top:1.5rem;margin-bottom:.75rem}.article-single-page .article-body p{margin-bottom:1.5rem}.article-single-page .article-body ul,.article-single-page .article-body ol{margin-bottom:1.5rem;padding-left:2rem}.article-single-page .article-body ul li,.article-single-page .article-body ol li{margin-bottom:.5rem}.article-single-page .article-body blockquote{border-left:4px solid #0c4f86;padding-left:1.5rem;margin:2rem 0;font-style:italic;color:#666}.article-single-page .article-body code{background:#f5f5f5;padding:.2rem .4rem;border-radius:3px;font-family:"Courier New",monospace}.article-single-page .article-body pre{background:#f5f5f5;padding:1rem;border-radius:4px;overflow-x:auto;margin-bottom:1.5rem}.article-single-page .article-body pre code{background:none;padding:0}.article-single-page .article-body img{max-width:100%;height:auto;border-radius:8px;margin:2rem 0}.article-single-page .article-body a{color:#0c4f86;text-decoration:underline}.article-single-page .article-body a:hover{color:#bf3978}.article-single-page .article-footer{margin-top:3rem;padding-top:2rem;border-top:2px solid #eee}.article-single-page .article-footer .article-tags{margin-bottom:2rem}.article-single-page .article-footer .article-tags .tags-label{font-weight:bold;margin-right:.5rem}.article-single-page .article-footer .article-tags a{display:inline-block;padding:.25rem .75rem;background:#f5f5f5;color:#333;text-decoration:none;border-radius:20px;margin-right:.5rem;margin-bottom:.5rem;font-size:.9rem;transition:background .3s ease}.article-single-page .article-footer .article-tags a:hover{background:rgb(219.5,219.5,219.5)}.article-single-page .article-footer .article-navigation{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:1rem;margin-bottom:2rem}.article-single-page .article-footer .article-navigation a{display:flex;flex-direction:column;padding:1rem;background:#f5f5f5;border-radius:8px;text-decoration:none;transition:background .3s ease}.article-single-page .article-footer .article-navigation a:hover{background:hsl(0,0%,91.0784313725%)}.article-single-page .article-footer .article-navigation a .nav-label{font-size:.85rem;color:#666;margin-bottom:.5rem}.article-single-page .article-footer .article-navigation a .nav-title{color:#0c4f86;font-weight:600}.article-single-page .article-footer .back-to-articles{text-align:center}.article-single-page .article-footer .external-resources{margin-top:2rem;padding-top:2rem;border-top:1px solid #e0e0e0}.article-single-page .article-footer .external-resources h2{font-size:1.1rem;color:#777;font-weight:600;margin-bottom:.75rem}.article-single-page .article-footer .external-resources p{font-size:.9rem;color:#888;margin-bottom:1rem}.article-single-page .article-footer .external-resources ul{list-style:none;padding-left:0;margin-bottom:0}.article-single-page .article-footer .external-resources ul li{margin-bottom:.5rem;font-size:.9rem}.article-single-page .article-footer .external-resources ul li a{color:#666;text-decoration:none;display:inline-block;transition:color .3s ease}.article-single-page .article-footer .external-resources ul li a:hover{color:#0c4f86;text-decoration:underline}@media(max-width: 768px){.articles-page{padding:2rem 0}.articles-page .articles-grid{grid-template-columns:1fr}.articles-page .page-header h1{font-size:2rem}.article-single-page{padding:1.5rem 0}.article-single-page .article-content{padding:1.5rem 1.1rem}.article-single-page .article-header .article-title{font-size:2rem}.article-single-page .article-body{font-size:1rem}.article-single-page .article-body h2{font-size:1.75rem}.article-single-page .article-body h3{font-size:1.35rem}}.compare-chart{margin:1.25rem 0 1.5rem}.compare-title{margin:.85rem 0 .35rem;font-weight:800}.compare-row{display:grid;grid-template-columns:4.5rem minmax(0, 1fr);gap:.4rem;align-items:center;margin:.3rem 0}.compare-name{font-weight:700}.compare-track{background:#e7ebf0;border-radius:999px;overflow:hidden;min-height:1.7rem}.compare-fill{display:flex;align-items:center;min-height:1.7rem;padding:0 .55rem;background:var(--accent-color);color:#fff;font-weight:800;font-size:.9rem;white-space:nowrap}.compare-fill.is-hard{background:color-mix(in srgb, var(--accent-color) 72%, #000);color:#fff}.article-single-page .container,.article-single-page .article-content,.article-body{min-width:0}.article-body{overflow-x:clip;max-width:100%}.article-byline{margin:0 0 1.5rem;font-size:1.05rem;line-height:1.4}.article-byline a{color:inherit;font-weight:700;text-decoration:none}.article-byline a:hover{text-decoration:underline}.article-byline time{display:block;margin-top:.2rem;color:#666;font-size:.95rem}.article-header .article-title:has(+.article-byline){margin-bottom:.55rem}.author-box{margin-top:2.5rem;padding:1.15rem 1.15rem .15rem;background:#eef1f5;border-radius:8px}.author-box p{font-size:1.02rem;line-height:1.6}.author-box-name{margin-bottom:.35rem;font-weight:800}.author-box-name a{color:#333;text-decoration:none}.author-box-name a:hover{text-decoration:underline}.related-articles{margin-top:2rem}.related-articles h2{font-size:1.35rem;margin-bottom:.75rem}.related-articles ul{list-style:none;padding-left:0;margin:0}.related-articles li{margin-bottom:1rem}.related-articles a{color:#0c4f86;font-weight:700}.related-articles p{margin:.25rem 0 0;color:#555;font-size:.98rem}.puzzle-grid,.puzzle-strip-cells{--grid-line: #d5dbe2;--grid-thick: #1e232b;background:#fff;color:#1e232b;font-weight:700;font-variant-numeric:tabular-nums;line-height:1}.puzzle-grid,.puzzle-strip{width:min(100%,22.5rem);max-width:100%;margin:.4rem 0 1.4rem}.puzzle-grid{display:grid;grid-template-columns:repeat(9, minmax(0, 1fr));aspect-ratio:1;border:2px solid var(--grid-thick)}.puzzle-strip-label{display:block;margin:0 0 .25rem;font-family:ui-monospace,"Courier New",Courier,monospace;font-size:.85rem;font-weight:700}.puzzle-strip-row+.puzzle-strip-row .puzzle-strip-label{margin-top:.55rem}.puzzle-strip-cells{display:grid;grid-template-columns:repeat(9, minmax(0, 1fr));width:100%;aspect-ratio:9/1;border:2px solid var(--grid-thick)}.puzzle-strip-cells .puzzle-cell{border-bottom:0;font-size:clamp(.8rem,3.4vw,1.1rem)}.puzzle-cell{display:flex;align-items:center;justify-content:center;border-right:1px solid var(--grid-line);border-bottom:1px solid var(--grid-line);font-size:clamp(.95rem,4.2vw,1.25rem);min-width:0}.puzzle-cell:nth-child(9n){border-right:0}.puzzle-cell:nth-child(n+73){border-bottom:0}.puzzle-cell:nth-child(3n):not(:nth-child(9n)){border-right-width:2px;border-right-color:var(--grid-thick)}.puzzle-cell:nth-child(n+19):nth-child(-n+27),.puzzle-cell:nth-child(n+46):nth-child(-n+54){border-bottom-width:2px;border-bottom-color:var(--grid-thick)}.table-scroll{overflow-x:auto;max-width:100%;margin:0 0 1.5rem;-webkit-overflow-scrolling:touch}.article-body .table-scroll table{width:max-content;min-width:100%;margin:0}.article-body p code{overflow-wrap:anywhere}.article-body table{width:100%;border-collapse:collapse;font-size:.92rem;margin:1rem 0 1.25rem}.article-body table th,.article-body table td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid #ddd;vertical-align:top}html[data-theme=dark] .compare-track{background:#2a3036}html[data-theme=dark] .article-body table th,html[data-theme=dark] .article-body table td{border-bottom-color:#3e4650}html[data-theme=dark] .article-byline,html[data-theme=dark] .article-byline time,html[data-theme=dark] .related-articles p{color:#c5ced6}html[data-theme=dark] .author-box{background:#22262c}html[data-theme=dark] .author-box-name a{color:#e6e9ed}html[data-theme=dark] .puzzle-grid,html[data-theme=dark] .puzzle-strip-cells{--grid-line: #3e4650;--grid-thick: #e6e9ed;background:#22262c;color:#e6e9ed}html[data-theme=dark] .puzzle-strip-label{color:#e6e9ed}html[data-theme=dark] .article-body code,html[data-theme=dark] .article-body pre{background:#22262c;color:#e6e9ed}.standard-page{padding:4rem 0;background:#f4f6f8;min-height:60vh}.standard-page .container{max-width:900px;margin:0 auto;padding:0 1rem}.standard-page .page-content{background:#fff;border-radius:8px;padding:3rem;box-shadow:0 2px 8px rgba(0,0,0,.1)}.standard-page .page-header{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:3px solid #0c4f86}.standard-page .page-header .page-title{font-size:2.5rem;color:#1e232b;line-height:1.2;margin:0}.standard-page .page-body{line-height:1.8;color:#333;font-size:1.1rem}.standard-page .page-body h2{font-size:1.75rem;color:#1e232b;margin-top:2.5rem;margin-bottom:1rem;padding-top:.5rem}.standard-page .page-body h3{font-size:1.35rem;color:#333;margin-top:2rem;margin-bottom:.75rem}.standard-page .page-body p{margin-bottom:1.5rem}.standard-page .page-body ul,.standard-page .page-body ol{margin-bottom:1.5rem;padding-left:2rem}.standard-page .page-body ul li,.standard-page .page-body ol li{margin-bottom:.75rem}.standard-page .page-body a{color:#0c4f86;text-decoration:underline;transition:color .3s ease}.standard-page .page-body a:hover{color:#bf3978}.standard-page .page-body strong{font-weight:600;color:#1e232b}.standard-page .page-body em{font-style:italic}.standard-page .page-body hr{border:none;border-top:1px solid #e0e0e0;margin:2rem 0}.standard-page .page-body blockquote{border-left:4px solid #0c4f86;padding-left:1.5rem;margin:2rem 0;font-style:italic;color:#666}.standard-page .page-body img{max-width:100%;height:auto;border-radius:8px;margin:2rem 0}.standard-page .page-body .teddy-figure{margin:0 0 1.5rem;max-width:16rem}.standard-page .page-body .teddy-figure picture,.standard-page .page-body .teddy-figure img{display:block;width:256px;max-width:100%;height:auto;aspect-ratio:1/1;margin:0;border-radius:1.5rem}.standard-page .page-body .teddy-figure figcaption{margin-top:.5rem;font-size:.95rem;line-height:1.4;color:#555}@media(max-width: 768px){.standard-page{padding:2rem 0}.standard-page .page-content{padding:2rem 1.5rem}.standard-page .page-header .page-title{font-size:2rem}.standard-page .page-body{font-size:1rem}.standard-page .page-body h2{font-size:1.5rem}.standard-page .page-body h3{font-size:1.25rem}.technique-page.standard-page{padding:.75rem 0 1.5rem}.technique-page.standard-page .container{padding:0 .55rem}.technique-page.standard-page .page-content{padding:.9rem .65rem 1.1rem}.technique-page.standard-page .page-header{margin-bottom:.8rem;padding-bottom:.7rem}.technique-page.standard-page .page-header .page-title{font-size:1.65rem}}.skills-page{--ink: #1e232b;--muted: #5c6670;--card: #ffffff;--page: #f4f6f8;--line: #d5dbe2;--accent: var(--accent-color);--accent-ink: #ffffff;--pad: #eef1f4;--pad-ink: #1e232b;--learning: #1e232b;--learning-bg: #e7ebf0;--comfort: #0b6e5f;--comfort-bg: #d7f3ec;--master: var(--accent-color);--master-bg: color-mix(in srgb, var(--accent-color) 16%, #ffffff);--locked: #5c6670;--locked-bg: #e7ebf0;--next: color-mix(in srgb, var(--accent-color) 8%, #ffffff);background:var(--page);color:var(--ink);padding:1rem 1rem 3rem;touch-action:manipulation}.skills-page h1{font-size:clamp(1.6rem,4vw,2.1rem);margin:0 0 .35rem}.skills-page h2{font-size:1.25rem;margin:1.5rem 0 .4rem}.skills-page h3{font-size:1.05rem;margin:1.1rem 0 .4rem}.skills-page a{color:var(--accent)}html[data-theme=dark] .skills-page{--ink: #e6e9ed;--muted: #b7c0c8;--card: #22262c;--page: #121416;--line: #3e4650;--accent: var(--accent-on-dark);--accent-ink: #121416;--pad: #2a3036;--pad-ink: #e6e9ed;--learning: #e6e9ed;--learning-bg: #2a3036;--comfort: #7ddec8;--comfort-bg: #1a3c34;--master: var(--accent-on-dark);--master-bg: color-mix(in srgb, var(--accent-on-dark) 16%, #1c2026);--locked: #b7c0c8;--locked-bg: #2a3036;--next: color-mix(in srgb, var(--accent-on-dark) 10%, #1c2026)}.skills-wrap{max-width:40rem;margin:0 auto;min-width:0}.skills-back a{display:inline-flex;align-items:center;min-height:44px;font-size:1rem;font-weight:700;text-decoration:none}.skills-lead,.skills-note{color:var(--muted);font-size:1rem;line-height:1.45;margin:0 0 .75rem}.next-card{background:var(--next);border:1px solid var(--line);border-radius:.85rem;padding:.9rem .9rem 1rem;margin-top:.5rem}.next-card h2{margin:.1rem 0 .35rem}.next-card p{margin:0 0 .55rem;font-size:1rem}.eyebrow{margin:0;font-size:.95rem;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--accent)}.next-actions,.transfer-actions{display:flex;flex-wrap:wrap;gap:.5rem}.next-actions a,.transfer-actions button,.transfer-actions .file-btn,.skills-page .secondary-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-size:1rem;text-decoration:none;cursor:pointer}.skills-page .primary-btn{background:var(--accent);color:var(--accent-ink)}.skills-page .secondary-btn,.file-btn{background:var(--pad);color:var(--pad-ink);border:1px solid var(--line)}.ladder{list-style:none;margin:0;padding:0}.ladder-row{display:grid;grid-template-columns:auto minmax(0, 1fr) auto;grid-template-areas:"status name count";gap:.15rem .6rem;align-items:center;min-height:44px;padding:.45rem .4rem;border-bottom:1px solid var(--line)}.ladder-row a{grid-area:name;font-size:1rem;font-weight:700;text-decoration:none;overflow-wrap:anywhere}.ladder-row.is-next{background:var(--next);border-radius:.6rem;border-bottom-color:rgba(0,0,0,0);grid-template-areas:"status name count" "status flag count"}.next-flag{grid-area:flag;font-size:.95rem;color:var(--accent);font-weight:700}.ladder-count{grid-area:count;font-size:.95rem;color:var(--muted);white-space:nowrap}.status{grid-area:status;display:inline-flex;align-items:center;min-height:1.7rem;padding:0 .45rem;border-radius:999px;font-size:.95rem;font-weight:700;background:var(--locked-bg);color:var(--locked)}.status-learning{background:var(--learning-bg);color:var(--learning)}.status-comfortable{background:var(--comfort-bg);color:var(--comfort)}.status-mastered{background:var(--master-bg);color:var(--master)}.next-status{display:flex;align-items:center;gap:.5rem}.badge-grid{list-style:none;display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:.65rem;margin:0;padding:0}.badge-card{background:var(--card);border:1px solid var(--line);border-radius:.75rem;padding:.7rem .65rem .8rem;min-width:0}.badge-card .badge-icon{display:block;width:2.4rem;height:2.4rem;color:var(--accent);margin-bottom:.35rem}.badge-card .badge-icon svg{width:100%;height:100%;display:block}.badge-card.is-locked .badge-icon{color:var(--locked);opacity:.38}.badge-card.is-locked .badge-name{color:var(--muted)}.badge-name,.badge-detail{display:block}.badge-name{font-size:1rem;font-weight:800;line-height:1.25}.badge-detail{margin-top:.2rem;font-size:1rem;line-height:1.35;color:var(--muted)}.transfer-label{display:block;margin:.8rem 0 .25rem;font-size:1rem;font-weight:700}.transfer-text{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:.55rem;padding:.55rem .65rem;resize:vertical}.file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.file-btn{border-radius:.5rem;padding:0 .9rem;font-weight:700}.history{list-style:none;margin:0;padding:0}.history li{display:flex;justify-content:space-between;gap:.75rem;min-height:44px;align-items:center;border-bottom:1px solid var(--line);font-size:1rem}.history time{color:var(--muted);white-space:nowrap}.history span{min-width:0;overflow-wrap:anywhere}.badge-toast{position:fixed;z-index:4000;top:calc(.7rem + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(22rem,100% - 1.5rem);display:flex;align-items:flex-start;gap:.65rem;padding:.7rem .55rem .7rem .75rem;border-radius:.85rem;background:#fff;color:#2a313c;border:1px solid #d3d9e0;box-shadow:0 12px 32px rgba(0,0,0,.18)}.badge-toast[hidden]{display:none}.badge-toast a{color:var(--accent-color);font-weight:700}html[data-theme=dark] .badge-toast{background:#22262c;color:#e6e9ed;border-color:#3e4650}html[data-theme=dark] .badge-toast a{color:var(--accent-on-dark)}.badge-toast-icons{display:flex;gap:.25rem}.badge-toast-icon{width:2rem;height:2rem;color:var(--accent-color)}.badge-toast-icon svg{width:100%;height:100%;display:block}html[data-theme=dark] .badge-toast-icon{color:var(--accent-on-dark)}.badge-toast-copy{min-width:0;flex:1}.badge-toast-copy p{margin:0}.badge-toast-kicker{font-size:.95rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.badge-toast-names{font-size:1rem;font-weight:700;line-height:1.3}.badge-toast-close{border:0;background:rgba(0,0,0,0);color:inherit;font-size:1.4rem;line-height:1;min-width:44px;min-height:44px;cursor:pointer}.solved-practice{font-size:1rem}.solved-practice a{display:inline-flex;align-items:center;min-height:44px;margin-right:.85rem;font-weight:800}@media(min-width: 720px){.badge-grid{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(prefers-reduced-motion: reduce){.badge-toast{transition:none}}.stats-switch{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem}.stats-switch button{min-height:44px;padding:0 1rem;border-radius:999px;border:1px solid #c5ced6;background:rgba(0,0,0,0);color:inherit;font:inherit;font-size:1rem;cursor:pointer}.stats-switch button[aria-pressed=true]{background:#0c4f86;border-color:#0c4f86;color:#fff}.stats-today{margin:0 0 1.25rem;font-weight:650}.stats-card{margin:0 0 1.75rem;padding-top:.25rem;border-top:1px solid #e0e0e0}.stats-card h2{margin-top:1rem}.stats-lead{font-weight:650;margin-bottom:.75rem}.stats-facts{display:grid;grid-template-columns:1fr 1fr;gap:.75rem 1rem;margin:0 0 1rem}.stats-facts div{min-width:0}.stats-facts dt{color:#666;font-size:.9rem}.stats-facts dd{margin:0;font-variant-numeric:tabular-nums;font-weight:650}.stats-bar{display:flex;width:100%;height:.9rem;border-radius:999px;overflow:hidden;background:#e7ebf0}.stats-seg{min-width:0;height:100%}.stats-seg-solved{background:#2f9e44}.stats-seg-revealed{background:var(--accent-color)}.stats-seg-failed{background:#bf3978}.stats-seg-abandoned{background:#8d887e}.stats-legend{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin:.6rem 0 0;padding:0;list-style:none}.stats-legend li{display:flex;align-items:center;gap:.35rem}.stats-swatch{width:.7rem;height:.7rem;border-radius:2px;display:inline-block}.stats-hist{display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:.35rem;align-items:end;margin-top:.5rem}.stats-col-plot{height:7.5rem;display:flex;align-items:flex-end;background:#e7ebf0;border-radius:.35rem .35rem 0 0}.stats-col-plot span{display:block;width:100%;background:#0c4f86;border-radius:.3rem .3rem 0 0;min-height:2px}.stats-col-count,.stats-col-label{margin:.25rem 0 0;text-align:center;line-height:1.25}.stats-col-count{font-variant-numeric:tabular-nums;font-weight:650}.stats-col-label{font-size:.8rem;color:#555}.stats-tech{list-style:none;margin:.5rem 0 0;padding:0}.stats-tech li{display:grid;grid-template-columns:minmax(0, 8.5rem) minmax(0, 1fr) auto;gap:.5rem;align-items:center;margin:0 0 .45rem}.stats-tech-name{min-width:0}.stats-tech-track{display:block;height:.55rem;background:#e7ebf0;border-radius:999px;overflow:hidden}.stats-tech-track span{display:block;height:100%;background:#bf3978}.stats-tech-count{font-variant-numeric:tabular-nums}.stats-empty,.stats-note{color:#555}html[data-theme=dark] .stats-switch button{border-color:#4c545e}html[data-theme=dark] .stats-card{border-top-color:#3e4650}html[data-theme=dark] .stats-facts dt,html[data-theme=dark] .stats-col-label,html[data-theme=dark] .stats-empty,html[data-theme=dark] .stats-note{color:#b7c3ce}html[data-theme=dark] .stats-bar,html[data-theme=dark] .stats-col-plot,html[data-theme=dark] .stats-tech-track{background:#2a3036}@media(max-width: 720px){.stats-facts{grid-template-columns:1fr}.stats-hist{gap:.2rem}.stats-col-label{font-size:.72rem}.stats-tech li{grid-template-columns:minmax(0, 1fr) auto}.stats-tech-track{grid-column:1/-1;grid-row:2}}