@charset "UTF-8";
:root{color-scheme:dark;--page:#17161b;--panel:#211e25;--panel-deep:#1b1920;--text:#f0e9dc;--muted:#b4aaa4;--dim:#93877e;--gold:#c8a66a;--gold-light:#e5c993;--line:#514236;--burgundy:#733849;--button:#322b32;--button-hover:#493d46;--tile:#e8e2d6;--tile-alt:#dfd8ca;--tile-peer:#d8cdb9;--tile-selected:#f3c774;--grid:#4b4140;--digit:#342c30;--entry:#752940;--focus:#ffd786;--ice:#a5dceb;--shadow:0 20px 70px #0005;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:280px;background:radial-gradient(ellipse at 15% 28%,#54273526,transparent 50%),radial-gradient(ellipse at 88% 30%,#8060361d,transparent 43%),var(--page);color:var(--text);font-size:15px;line-height:1.5}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;opacity:.09;background-image:url('ornament.svg'),url('ornament.svg');background-position:left -60px top 190px,right -60px top 190px;background-size:330px 550px;background-repeat:no-repeat}button,input,select{font:inherit}button,a,input,select,summary{ -webkit-tap-highlight-color:transparent}button{min-height:42px;border:1px solid #62503e;border-radius:5px;padding:8px 13px;background:var(--button);color:var(--text);cursor:pointer;line-height:1.2;transition:background .15s,border-color .15s,box-shadow .15s}button:hover{background:var(--button-hover);border-color:var(--gold-light);color:#fff8e9}button:active{background:#5a4050;color:#fff8e9}button:disabled{cursor:not-allowed;background:#28262c;color:#a7a0a2;border-color:#4b4349;box-shadow:none}button[aria-pressed=true],button.selected,button.active{background:var(--gold-light);border-color:#ffe5aa;color:#2a1e19}button[aria-pressed=true]:hover,button.selected:hover,button.active:hover{background:#f7dca7;color:#21130c}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,.file-button:focus-within{outline:3px solid var(--focus);outline-offset:3px}a{color:var(--gold-light);text-underline-offset:4px}a:hover{color:#fff1d3}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400}h2{font-size:27px;line-height:1.22}h3{font-size:21px;line-height:1.3}p+p{margin-top:12px}button svg{pointer-events:none}[hidden]{display:none!important}kbd{display:inline-block;border:1px solid #67575e;border-radius:3px;padding:0 4px;color:inherit;font:11px Arial,Helvetica,sans-serif;line-height:1.6}select{min-width:0;width:100%;min-height:44px;border:1px solid #74604b;border-radius:4px;background:#29252c;color:var(--text);padding:8px 10px;cursor:pointer}input[type=checkbox]{width:20px;height:20px;accent-color:#c4a06a;flex-shrink:0}input[type=range]{accent-color:var(--gold);max-width:100%}strong{font-weight:600}.site-shell{max-width:1190px;padding:27px 45px 0;margin:0 auto}.skip-link{position:fixed;top:-80px;left:15px;padding:12px;background:#fff0ce;color:#2a1e19;z-index:20}.skip-link:focus{top:12px}.masthead{position:relative;display:flex;align-items:center;justify-content:space-between;padding:28px 0 25px}.return-link{position:absolute;top:0;left:0;font-size:12px;color:#c9bbb0;text-decoration:none}.return-link span{margin-right:5px}.brand{display:flex;gap:17px;align-items:center}.brand-mark{width:44px;height:61px;fill:none;stroke:var(--gold);stroke-width:1.15;flex-shrink:0}.eyebrow{text-transform:uppercase;letter-spacing:2.5px;font-size:9px;font-weight:600;color:var(--gold);line-height:1.6}h1{font-size:40px;letter-spacing:-1.4px;line-height:1.2;color:#f1e7d1}h1 span{color:var(--gold-light)}.brand-subtitle{font-family:Georgia,'Times New Roman',serif;color:var(--muted);font-style:italic;font-size:13px;margin-top:5px}.collection-seal{display:flex;align-items:center;gap:10px;color:var(--gold)}.collection-seal>span:first-child{font-family:Georgia,serif;font-size:37px;line-height:1;padding:7px 12px;border:1px solid #5e4b35;border-radius:26px 26px 0 0}.collection-seal>span:last-child{font-size:9px;letter-spacing:1.8px}.collection-seal i{font-style:normal;margin:0 6px}.main-nav{display:flex;gap:4px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:8px 0}.nav-button{border:1px solid transparent;background:transparent;font-size:12px;min-height:36px;padding:8px 11px;color:#d3c9bd}.nav-button>span{color:var(--gold);margin-right:7px;font-size:16px;vertical-align:-1px}.nav-button:hover{background:#3c3037;border-color:#6b5443}.nav-button:hover>span{color:#f0ce91}.nav-spacer{flex:1}.play-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(275px,1fr);gap:43px;max-width:1000px;margin:30px auto 32px;align-items:start}.puzzle-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px;min-height:75px}.puzzle-heading .eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:5px}.puzzle-heading h2{font-size:26px}.puzzle-meta{color:#b9ada3;font-size:11px;margin-top:5px}.time-block{text-align:right;min-width:65px;display:flex;flex-direction:column;align-items:flex-end}.status-label{font-size:8px;letter-spacing:1.7px;color:#b0a095}.timer{font-family:Georgia,serif;font-size:26px;line-height:1.3;color:#ded1bc;font-variant-numeric:tabular-nums}.text-button{border-color:transparent;background:transparent;color:#cfb484;padding:7px;min-height:34px;font-size:12px}.text-button:hover{background:#352b31;border-color:#6a5541;color:#ffe5b3}.time-block .text-button{padding:3px 0;font-size:10px;min-height:23px}.board-frame{position:relative;padding:11px;border:1px solid #957447;background:linear-gradient(135deg,#3b3031,#211c22 33%,#302831 70%,#3e3030);box-shadow:0 0 0 3px #1a171d,0 0 0 4px #574130,0 14px 45px #0004}.board{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));aspect-ratio:1;width:100%;border:2px solid var(--grid);overflow:hidden;background:var(--grid);touch-action:manipulation;user-select:none;-webkit-user-select:none;isolation:isolate}.frame-corner{position:absolute;color:#d5b678;font-size:10px;line-height:10px;z-index:2;pointer-events:none}.top-left{top:1px;left:1px}.top-right{top:1px;right:1px}.bottom-left{bottom:1px;left:1px}.bottom-right{bottom:1px;right:1px}.board .cell{position:relative;min-width:0;min-height:0;width:100%;height:100%;border-style:solid;border-color:var(--grid);border-width:var(--bt,1px) var(--br,1px) var(--bb,1px) var(--bl,1px);border-radius:0;outline:none;padding:0;background:var(--region-tint,var(--tile));color:var(--entry);font-family:Arial,Helvetica,sans-serif;font-size:clamp(20px,2.8vw,32px);font-weight:500;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:none;transition:background .1s;overflow:hidden}.board .cell[data-region="1"],.board .cell[data-region="3"],.board .cell[data-region="5"],.board .cell[data-region="7"]{background:var(--region-tint,var(--tile-alt))}.board .cell.given{color:var(--digit);font-weight:650}.board .cell.entered{color:var(--entry)}.board .cell.peer{background:var(--tile-peer)}.board .cell.match{background:#c7bac8;color:#31132a}.board .cell:hover{background:#e7c995;color:#382022}.board .cell.selected,.board .cell.selected:hover{background:var(--tile-selected);color:#281521;box-shadow:inset 0 0 0 2px #996117;z-index:2}.board .cell:focus-visible{outline:3px solid #723e20;outline-offset:-4px;z-index:3}.board .cell.error{color:#a30027;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}.board .cell.error:after{content:"!";position:absolute;right:2px;bottom:1px;font-size:9px;font-weight:bold;color:#ad0030;line-height:1}.board .cell.locked:not(.given):before{content:"◆";position:absolute;right:3px;bottom:2px;color:#466c77;font-size:6px}.board .cell.hint-cell{box-shadow:inset 0 0 0 3px #825c20;background:#fae2a0}.cell .digit{position:relative;z-index:2}.notes{position:absolute;inset:3px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);font-size:clamp(8px,1vw,12px);font-weight:500;color:#514659;line-height:1;z-index:2;pointer-events:none}.notes span{display:flex;justify-content:center;align-items:center}.cell.frozen{background:#c9e4eb!important;color:#213f4d;cursor:default}.cell.frozen .notes{color:#2b4e60}.cell .ice-mark{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;color:#305c72;font-size:16px;font-weight:600;z-index:1;background:linear-gradient(37deg,transparent 28%,#ffffffa1 29%,transparent 32%,transparent 62%,#b3ced8b3 64%,transparent 66%),linear-gradient(140deg,#edfaff80,transparent 40%,#699eb333);box-shadow:inset 0 0 0 3px #ffffff6b}.cell .ice-mark:before,.cell .ice-mark:after{content:"";position:absolute;width:27%;height:28%;border-top:1px solid #5d8ba5;border-right:1px solid #5d8ba5;transform:rotate(-24deg);top:18%;right:22%;opacity:.65}.cell .ice-mark:after{transform:rotate(165deg);top:auto;bottom:12%;right:auto;left:15%;width:20%;height:22%}.cell.frozen.hit,.cell.frozen.hit:hover{background:#b9dbe6!important;box-shadow:inset 0 0 0 3px #346d83}.cell.frozen.hit .ice-mark:after{width:25%;height:25%;transform:rotate(45deg);border-width:2px;top:36%;left:34%;border-color:#1d5268;opacity:1}.cell.frozen.selected{box-shadow:inset 0 0 0 3px #62582f!important}.cell.shockwave{animation:wave .42s ease-out}.cell.placed{animation:placed .28s ease-out}.board-caption{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#b9aca3;font-size:10px;margin-top:15px;min-height:17px}.mistake-count{white-space:nowrap}.mistake-count strong{display:inline-block;color:#e1c9a5;font-size:12px;margin-left:6px}.ice-status{margin-top:14px;border:1px solid #57717d;background:#253742;padding:10px 13px;border-radius:4px;color:#d8f3ff;font-size:12px}.play-sidebar{padding-top:94px}.control-panel{border:1px solid #564336;background:linear-gradient(135deg,#28222a,#201d24);padding:22px 20px 0;border-radius:6px 6px 0 0;box-shadow:0 10px 30px #0001}.panel-heading{display:flex;justify-content:center;align-items:center;gap:12px}.panel-heading h2{font-size:21px;color:#e5d6bc}.ornament{color:#9e7f4c;font-size:9px}.entry-guidance{text-align:center;color:#aa9c91;font-size:11px;margin-top:6px;margin-bottom:19px}.entry-switches{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:13px}.toggle-button{font-size:11px;min-height:35px;padding:7px 5px;background:#2e2830}.toggle-button span{margin-right:4px}.toggle-button kbd{font-size:9px;line-height:1.2;padding:1px 3px;margin-left:4px}.number-pad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.number-button{position:relative;min-height:51px;font-family:Georgia,serif;font-size:26px;background:#332c32;border-color:#6e573e;border-radius:4px;color:#ecdabb;padding:8px 5px;box-shadow:inset 0 1px 0 #ffffff09}.number-button:hover{background:#4c3944;color:#fff2ce}.number-button .remaining,.number-button small{font-family:Arial,Helvetica,sans-serif;font-size:9px;position:absolute;right:5px;bottom:5px;color:#b7a598}.number-button[aria-pressed=true] small,.number-button.selected small{color:#493826}.number-button.complete{border-style:dashed;color:#b2a39b}.editing-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:13px}.editing-tools button{font-size:11px;min-height:35px;padding:7px 2px;background:transparent;border-color:#55453b}.editing-tools button:hover{background:var(--button-hover);color:#fff8e9;border-color:var(--gold-light)}.editing-tools button:disabled{color:#9d9295;background:#221f26;border-color:#443b3e}.editing-tools span{font-size:16px;margin-right:3px;vertical-align:-1px}.hint-button{display:flex;align-items:center;gap:7px;width:100%;margin-top:14px;font-size:12px;color:#ecd7ac;border-color:#745836;background:#3b2e31;text-align:left}.hint-button>span:first-child{font-size:21px}.hint-button:hover{background:#56404b;color:#fff2d1}.button-meta{margin-left:auto;color:inherit;font-size:10px;opacity:.8}.message{min-height:57px;display:flex;align-items:center;justify-content:center;text-align:center;color:#c9bdb0;font-size:11px;line-height:1.45;margin:0;padding:12px 0}.notice-panel{margin-top:14px;padding:17px 18px;background:#30272e;border:1px solid #80633e;border-radius:5px}.notice-panel h3{font-size:21px;margin-top:4px;color:#ecd8b6}.notice-panel p:not(.eyebrow){font-size:12px;line-height:1.6;margin-top:9px;color:#ded2c6}.panel-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.panel-actions button{font-size:12px}.primary-button{color:#251b19;background:#d0b078;border-color:#e5c993;font-weight:600}.primary-button:hover{background:#edcc91;border-color:#fff0c4;color:#211611}.primary-button:active{background:#b99a63;color:#1d1511}.primary-button:disabled{background:#504638;color:#b9afa1;border-color:#675848}.reveal-button{padding-left:0;margin-top:7px;text-align:left}.phase-panel{text-align:center}.phase-panel .panel-actions{justify-content:center}.victory-ornament{font-size:25px;color:var(--gold-light)}.session-actions{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:17px 0 0}.session-actions .primary-button{display:flex;justify-content:space-between;padding:12px 15px;font-size:12px;min-height:43px}.quiet-note{display:flex;align-items:center;justify-content:center;gap:18px;margin:24px 0 0;color:#bda992;font-family:Georgia,serif;font-style:italic;font-size:12px;line-height:1.7}.quiet-note p span{color:#968a83;font-size:11px}.candle{position:relative;width:24px;height:49px;flex-shrink:0}.flame{position:absolute;width:8px;height:14px;border-radius:60% 40% 55% 45%;background:linear-gradient(#fff2c7,#e0b866);left:8px;top:0;transform:rotate(8deg);box-shadow:0 0 19px 8px #c08c2533;animation:candlelight 3s ease-in-out infinite alternate}.wick{position:absolute;width:1px;height:5px;top:13px;left:12px;background:#9c7b48}.wax{position:absolute;width:10px;height:25px;top:17px;left:7px;background:linear-gradient(90deg,#918375,#d8ccb1 45%,#bba883);border-radius:2px 2px 0 0}.candlestick{position:absolute;height:3px;width:23px;bottom:4px;border-radius:50%;background:#bd9a5a;box-shadow:0 3px 0 -1px #6c5135}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #46382f;padding:19px 0 22px;color:#94877a;font-size:9px;letter-spacing:1.4px}.site-footer i{font-style:normal;color:#9c7d4b;margin:0 9px}.site-footer span:last-child{font-family:Georgia,serif;letter-spacing:.4px;font-style:italic;font-size:11px}
dialog{width:min(560px,calc(100vw - 30px));max-height:calc(100dvh - 40px);padding:28px;border:1px solid #9f7f50;border-radius:8px;background:radial-gradient(ellipse at top left,#432d3926,transparent 65%),#211d25;color:var(--text);box-shadow:0 30px 110px #000a;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:#775d47 #221e25}dialog::backdrop{background:#0b0911cc;backdrop-filter:blur(6px)}dialog.wide-dialog{width:min(840px,calc(100vw - 30px))}.dialog-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.dialog-heading .eyebrow{margin-bottom:5px}.dialog-heading h2{font-size:31px}.close-button{padding:0;min-width:38px;min-height:38px;font-size:26px;background:transparent;border:1px solid #5f493b;flex-shrink:0}.dialog-intro{font-size:13px;color:#c2b6ab;line-height:1.65;margin:0 0 20px}.dialog-footer{display:flex;justify-content:flex-end;padding-top:20px;margin-top:20px;border-top:1px solid #504134}.dialog-footer button{font-size:12px}.library-topline{margin-bottom:18px}.library-topline button{font-size:12px}.filters{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:12px;margin-bottom:23px}.filters label{font-size:11px;color:#c8b9a9;display:flex;flex-direction:column;gap:6px}.filters select{font-size:12px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.section-heading h3{font-size:22px}.small-label{font-size:8px;letter-spacing:1.4px;color:#aa9580}.muted{font-size:12px;line-height:1.6;color:#b8aaa0}.daily-section{padding:17px;background:#2c252c;border:1px solid #584439;border-radius:5px;margin-bottom:25px}.daily-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:14px}.daily-list button,.daily-card{text-align:left;padding:12px;min-height:70px;font-size:12px;color:#ead6b6;background:#382b33}.daily-list button strong,.daily-card strong{display:block;font-family:Georgia,serif;font-size:17px;margin-bottom:5px}.daily-list button small,.daily-card small{display:block;color:#bda99b;font-size:10px}.daily-list button:hover small,.daily-card:hover small{color:#efdfc7}.puzzle-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.puzzle-list button,.puzzle-card{position:relative;text-align:left;padding:12px 10px;min-height:75px;font-size:12px;line-height:1.4}.puzzle-list strong,.puzzle-card strong{display:block;color:#f1dfbc;font-size:12px}.puzzle-list small,.puzzle-card small{display:block;color:#b9aaa0;font-size:10px;margin-top:4px}.puzzle-list button:hover small{color:#efdfc7}.puzzle-list .completed,.puzzle-list [data-completed=true]{border-color:#8a915b}.puzzle-list .current{box-shadow:inset 3px 0 0 var(--gold)}.puzzle-list .badge,.daily-list .badge{display:inline-block;padding:2px 5px;font-size:9px;background:#474932;color:#e2ecc4;border-radius:3px;margin-top:5px}fieldset{border:0;border-top:1px solid #584536;margin:22px 0 0;padding:15px 0 0;min-width:0}legend{padding:0 12px 0 0;font-family:Georgia,serif;color:#e6c993;font-size:19px}.check-row{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;cursor:pointer}.check-row input{margin:2px 0 0}.check-row strong{display:block;font-size:13px}.check-row small{display:block;margin-top:3px;font-size:11px;line-height:1.5;color:#b9ada5}.range-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;font-size:11px;color:#c8b9a9;padding-left:32px;margin:0 0 19px}.save-section{margin-top:23px;border-top:1px solid #584536;padding-top:17px}.save-section h3{margin-bottom:8px}.file-button{position:relative;display:flex;align-items:center;padding:8px 13px;min-height:42px;background:#322b32;border:1px solid #62503e;border-radius:5px;font-size:12px;cursor:pointer;overflow:hidden}.file-button:hover{background:#493d46;border-color:var(--gold-light);color:#fff8e9}.file-button input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;font-size:0}.small-copy{font-size:10px;color:#b9aaa0;line-height:1.6;margin-top:12px}.help-mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:22px 0}.help-mode-grid section{padding:15px;background:#2b252d;border:1px solid #594435;border-radius:4px}.help-number{display:block;font-family:Georgia,serif;font-size:24px;line-height:1;color:var(--gold);margin-bottom:8px}.help-mode-grid h3{font-size:20px;margin-bottom:7px}.help-mode-grid p{font-size:12px;color:#bfb2a8;line-height:1.6}details{border-top:1px solid #574235;padding:14px 0}summary{cursor:pointer;font-family:Georgia,serif;font-size:19px;color:#e2c596;line-height:1.4;padding:3px 0}details p{font-size:12px;line-height:1.75;color:#cbbeb4;margin-top:12px}.rules-list{padding-left:22px;font-size:12px;line-height:1.7;color:#cbbeb4;margin:12px 0 0}.rules-list li{padding-left:3px;margin:8px 0}.rules-list li::marker{color:var(--gold-light)}.tutorial-section{border:1px solid #836647;background:#2b242d;border-radius:5px;padding:18px;margin:13px 0 22px}.tutorial-section h3{margin:4px 0 15px}.tutorial-layout{display:block}.tutorial-board{display:block;width:100%;max-width:440px;aspect-ratio:auto;margin:0 auto}.tutorial-layout>div:last-child{margin-top:18px}#tutorial-text{font-size:12px;color:#d1c5ba;line-height:1.65}.keyboard-list{display:grid;grid-template-columns:auto 1fr;gap:12px 18px;font-size:12px;color:#cbbeb4;margin:16px 0}.keyboard-list dt{white-space:nowrap}.keyboard-list dd{margin:0}.pause-dialog{width:min(370px,calc(100vw - 30px));text-align:center;padding:35px}.pause-dialog h2{font-size:30px}.pause-dialog p:not(.eyebrow){font-size:13px;line-height:1.8;color:#c4b6a8;margin:13px 0 24px}.pause-symbol{display:block;font-family:Georgia,serif;font-size:40px;color:var(--gold);margin:13px 0}.pause-dialog .primary-button{width:100%}.is-paused .board{filter:blur(9px)}#stats-content{overflow-x:auto}#stats-content table{width:100%;border-collapse:collapse;font-size:11px}#stats-content th{text-align:left;font-size:10px;color:#dfc69e;background:#322932;padding:10px 8px;border-bottom:1px solid #796044}#stats-content td{padding:10px 8px;border-bottom:1px solid #4c3f39;color:#d7c9bc}#stats-content h3{font-size:23px;margin:22px 0 12px}.stats-grid,.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stat-card{border:1px solid #705439;border-radius:4px;padding:14px;background:#2c242d}.stat-card strong{display:block;font-family:Georgia,serif;font-size:27px;color:#efd5a6}.stat-card span,.stat-card small{font-size:11px;color:#bead9e}.noscript-notice{position:fixed;inset:auto 15px 15px;padding:18px;background:#f4dba8;color:#251b1b;border:2px solid #603246;z-index:50}
body[data-mode=ice]{--gold:#a8c4d2;--gold-light:#d1e9f5;--line:#405663;--tile:#e7ebeb;--tile-alt:#d9e2e5;--tile-peer:#cbdce1;--tile-selected:#e9d99b;--grid:#41535c;--entry:#235c74;--button:#2a333e;--button-hover:#3c4d5b}body[data-mode=ice] .board-frame{border-color:#8aaab7;background:linear-gradient(135deg,#364b58,#202d38 40%,#425464);box-shadow:0 0 0 3px #192129,0 0 0 4px #49606b,0 14px 45px #0004}body[data-mode=ice] .frame-corner{color:#d6e7ed}body[data-mode=ice] .control-panel{border-color:#4f646f;background:linear-gradient(135deg,#273440,#1c2631)}body[data-mode=ice] .number-button{background:#2c3d49;border-color:#617f8d;color:#e4f0f6}body[data-mode=ice] .number-button:hover{background:#456071;color:#fff}body[data-mode=ice] .number-button[aria-pressed=true],body[data-mode=ice] .number-button.selected{background:#c4e1eb;color:#24323d}body[data-mode=ice] .hint-button{background:#2d404b;border-color:#597685;color:#dbedf5}body[data-mode=ice] .hint-button:hover{background:#405b6b;color:#fff}body[data-mode=ice] .primary-button{background:#b9d7e3;border-color:#d4edf5;color:#172c38}body[data-mode=ice] .primary-button:hover{background:#daeff7;color:#132936}body[data-mode=ice] .primary-button:disabled{background:#405361;color:#b3c5cf;border-color:#687986}
body.high-contrast{--page:#100e13;--panel:#18141d;--text:#fff8e9;--muted:#e0d7d1;--gold:#ffe0a2;--gold-light:#fff0c4;--tile:#fffaf0;--tile-alt:#ece2d3;--tile-peer:#dbd1c2;--tile-selected:#ffce65;--grid:#17121b;--entry:#661a43;--digit:#141017;--line:#a69272}body.high-contrast .puzzle-meta,body.high-contrast .message,body.high-contrast .entry-guidance,body.high-contrast .muted,body.high-contrast .check-row small,body.high-contrast .board-caption,body.high-contrast .site-footer{color:#e2d8cc}body.high-contrast .notes{color:#221e2b;font-weight:600}body.high-contrast .cell.error{color:#a90021}body.high-contrast .board .cell.selected{box-shadow:inset 0 0 0 3px #482412}body.high-contrast .control-panel{border-color:#b29b78}body.high-contrast button{border-color:#a99479}body.high-contrast button:disabled{color:#c1b9be;border-color:#8d7c87}body.large-controls button:not(.cell){min-height:48px;font-size:14px}body.large-controls .number-button{font-size:28px;min-height:57px}body.large-controls .notes{font-size:clamp(10px,1.2vw,14px)}body.large-controls .number-pad{gap:9px}body.large-controls .nav-button{font-size:12px}body.large-controls .time-block .text-button{font-size:11px;min-height:28px}body.reduced-motion *,body.reduced-motion *:before,body.reduced-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@keyframes candlelight{from{opacity:.85;transform:rotate(4deg) scale(.96)}to{opacity:1;transform:rotate(11deg) scale(1.03)}}@keyframes placed{from{filter:brightness(1.3)}to{filter:brightness(1)}}@keyframes wave{0%{box-shadow:inset 0 0 0 4px #57bedc}100%{box-shadow:inset 0 0 0 0 transparent}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:1200px){.play-layout{grid-template-columns:minmax(0,570px) 320px;gap:57px}.site-shell{padding-top:29px}.masthead{padding-top:32px}.play-layout{margin-top:34px;margin-bottom:38px}}
@media(max-width:900px){.site-shell{padding:23px 26px 0}.collection-seal>span:last-child{display:none}.play-layout{gap:25px;grid-template-columns:minmax(0,1.55fr) minmax(245px,1fr)}.puzzle-heading h2{font-size:23px}.control-panel{padding:17px 14px 0}.play-sidebar{padding-top:94px}.number-button{min-height:45px}.board-frame{padding:9px}.nav-button{padding:8px;font-size:11px}.main-nav{gap:0}.nav-button>span{margin-right:4px}.board-caption{font-size:9px}.quiet-note{margin-top:17px}.puzzle-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:690px){.site-shell{padding:17px 18px 0;max-width:560px}.masthead{padding:27px 0 18px}.return-link{font-size:10px}.brand{gap:12px}.brand-mark{width:32px;height:46px}h1{font-size:31px;letter-spacing:-1px}.brand .eyebrow{font-size:8px;letter-spacing:2.1px}.brand-subtitle{font-size:11px;margin-top:3px}.collection-seal{display:none}.main-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:5px 0;gap:2px}.nav-spacer{display:none}.nav-button{padding:5px 1px;font-size:9px;min-height:42px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;line-height:1.25}.nav-button>span{font-size:16px;margin:0}.play-layout{display:flex;flex-direction:column;gap:14px;margin:18px 0 23px}.puzzle-area,.play-sidebar{width:100%}.puzzle-heading{margin-bottom:12px;min-height:55px}.puzzle-heading .eyebrow{font-size:7px;letter-spacing:1.5px;margin-bottom:3px}.puzzle-heading h2{font-size:23px}.puzzle-meta{font-size:10px;margin-top:3px}.timer{font-size:23px}.status-label{font-size:7px}.time-block .text-button{min-height:19px;font-size:9px}.board-frame{padding:8px}.board .cell{font-size:clamp(22px,6.1vw,32px)}.notes{font-size:clamp(9px,2.3vw,12px);inset:2px}.board-caption{font-size:9px;margin-top:10px;gap:6px}.board-caption strong{font-size:11px}.ice-status{margin-top:8px;padding:8px 10px;font-size:11px}.play-sidebar{padding:0}.control-panel{padding:12px 12px 0}.panel-heading,.entry-guidance{display:none}.entry-switches{margin-bottom:9px;gap:9px}.toggle-button{min-height:32px;font-size:11px}.number-pad{grid-template-columns:repeat(9,minmax(0,1fr));gap:4px}.number-button{font-family:Arial,Helvetica,sans-serif;font-size:23px;min-height:43px;padding:6px 0 9px;border-radius:3px}.number-button .remaining,.number-button small{font-size:7px;right:3px;bottom:2px}.editing-tools{margin-top:9px;gap:8px}.editing-tools button{min-height:33px}.hint-button{margin-top:9px;min-height:37px;font-size:11px}.hint-button>span:first-child{font-size:18px}.message{min-height:42px;padding:9px 0;font-size:10px}.session-actions{flex-direction:row;align-items:center;justify-content:space-between;gap:14px;padding-top:12px}.session-actions .primary-button{flex:1;font-size:11px;min-height:40px;padding:10px 12px}.session-actions .text-button{flex:1;font-size:11px}.quiet-note{margin-top:20px;font-size:11px;gap:13px}.quiet-note p span{font-size:10px}.candle{transform:scale(.85)}.site-footer{padding:15px 0 19px;font-size:8px;letter-spacing:1px;justify-content:center;text-align:center;flex-wrap:wrap;gap:5px}.site-footer span:last-child{font-size:10px;width:100%}.notice-panel{padding:14px 15px;margin-top:12px}.notice-panel h3{font-size:21px}.notice-panel p:not(.eyebrow){font-size:12px}.site-footer i{margin:0 5px}dialog,dialog.wide-dialog{padding:20px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);border-radius:6px}.dialog-heading{gap:8px;margin-bottom:12px}.dialog-heading h2{font-size:26px}.dialog-heading .eyebrow{font-size:8px;letter-spacing:1.6px}.dialog-intro{font-size:12px}.filters{grid-template-columns:1fr 1fr;gap:11px}.filters label:last-child{grid-column:1/-1}.section-heading{align-items:flex-start;flex-direction:column;gap:4px}.small-label{font-size:7px}.daily-section{padding:13px}.daily-list{gap:7px}.daily-list button,.daily-card{font-size:10px;padding:9px 7px;min-height:69px}.daily-list button strong,.daily-card strong{font-size:14px}.daily-list button small,.daily-card small{font-size:9px}.puzzle-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.puzzle-list button,.puzzle-card{padding:9px 7px;min-height:73px;font-size:10px}.puzzle-list strong,.puzzle-card strong{font-size:10px}.puzzle-list small,.puzzle-card small{font-size:9px}.help-mode-grid{grid-template-columns:1fr;gap:9px}.help-mode-grid section{padding:13px 14px}.help-number{float:left;font-size:23px;margin:1px 15px 0 0;min-width:24px;text-align:center}.help-mode-grid h3{font-size:20px;margin-bottom:5px}.help-mode-grid p{clear:both;padding-top:3px}.tutorial-layout{display:block}.tutorial-board{width:100%;max-width:440px;margin:0 auto}.keyboard-list{grid-template-columns:1fr;gap:4px;font-size:11px}.keyboard-list dd{margin-bottom:8px}.stats-grid,.stat-grid{grid-template-columns:repeat(2,1fr)}.range-row{padding-left:32px;grid-template-columns:1fr;gap:6px}.range-row input{width:100%}.pause-dialog{padding:30px 22px;width:min(340px,calc(100vw - 24px))}body.large-controls .number-button{font-size:24px;min-height:50px}body.large-controls .number-pad{gap:4px}body.large-controls .nav-button{font-size:10px}body.large-controls .notes{font-size:clamp(10px,2.7vw,13px)}}
@media(max-width:380px){.site-shell{padding:13px 13px 0}.masthead{padding-bottom:14px}h1{font-size:28px}.brand-mark{width:29px}.brand-subtitle{font-size:10px}.brand{gap:9px}.play-layout{margin-top:14px;gap:12px}.puzzle-heading h2{font-size:21px}.puzzle-meta{font-size:9px}.board-frame{padding:7px}.board .cell{font-size:23px}.control-panel{padding:10px 9px 0}.number-pad{gap:3px}.number-button{font-size:21px;min-height:40px}.notes{font-size:9px}.board-caption{font-size:8px}.quiet-note{margin-top:16px}.puzzle-list{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-list{grid-template-columns:1fr}.daily-list button{min-height:54px}.daily-list button strong,.daily-list button small{display:inline-block;margin:0 6px 0 0}.filters{grid-template-columns:1fr}.filters label:last-child{grid-column:auto}}
@media print{body{background:white;color:#111}.site-shell{max-width:none;padding:0}.main-nav,.play-sidebar,.site-footer,.return-link,.collection-seal,.brand-subtitle,.time-block button,.skip-link,dialog{display:none!important}.masthead{padding:0 0 20px}.brand h1,.brand h1 span,.eyebrow{color:#111}.brand-mark{stroke:#111}.play-layout{display:block;margin:0}.puzzle-area{max-width:600px;margin:auto}.board-frame{box-shadow:none;background:white;border-color:black}.board .cell{color:#000!important;background:#fff!important;box-shadow:none!important}.notes{color:#333}.puzzle-heading h2,.puzzle-meta,.status-label,.timer,.board-caption,.mistake-count strong{color:#111}.cell.frozen{background:#dceaf0!important}.frame-corner{color:#111}}

/* A thicker frost texture indicates deeper ice; fractures increase as layers melt. */
.cell[data-layers="3"] .ice-mark{background:linear-gradient(135deg,#f0fbffbd,#b1d2e4b3 35%,#e1f3faad 55%,#a4ccdfb3);box-shadow:inset 0 0 0 4px #f3fbffd1,inset 0 0 13px #77a7c8}.cell[data-layers="3"] .ice-mark:before{width:16%;height:12%;top:10%;right:12%;opacity:.55}.cell[data-layers="3"] .ice-mark:after{display:none}.cell[data-layers="2"] .ice-mark{background:linear-gradient(38deg,transparent 29%,#547e9b80 30%,#ffffffcc 31%,transparent 33%),linear-gradient(140deg,#effaffad,#badced80 60%,#8fbdd64d)}.cell[data-layers="2"] .ice-mark:before{width:35%;height:34%;right:29%;top:10%}.cell[data-layers="1"] .ice-mark{background:linear-gradient(42deg,transparent 22%,#5a829eaa 23%,#fff 24%,transparent 26%,transparent 63%,#547e9b80 64%,#ffffffcc 65%,transparent 68%),linear-gradient(137deg,transparent 45%,#537e9a99 46%,#ffffffdd 47%,transparent 49%),linear-gradient(18deg,#edfbff9c,#a4cada44);box-shadow:inset 0 0 0 1px #ffffffcc}.cell[data-layers="1"] .ice-mark:before{width:45%;height:47%;right:20%;top:20%;opacity:.75}.cell[data-layers="1"] .ice-mark:after{width:38%;height:37%;left:12%;bottom:12%;opacity:.75}.cell.frozen:has(.notes) .notes{inset:10px 2px 2px}.cell.frozen:has(.notes) .ice-mark{font-size:8px;align-items:flex-start;justify-content:flex-end;padding:2px}.celebrate .board-frame{animation:completion-glow .9s ease-out}@keyframes completion-glow{0%,100%{filter:brightness(1)}40%{filter:brightness(1.25);box-shadow:0 0 0 3px #1a171d,0 0 0 4px #d6b370,0 0 40px #d6b37055}}

/* Collection cards and brief, optional feedback after a move. */
.daily-list>p{grid-column:1/-1;font-size:11px;color:#c7b5a1;margin:0 0 4px}
.daily-list button>span{display:block;font-size:10px;line-height:1.5;color:#c5b4a7;margin-top:4px}
.daily-list button:hover>span{color:#f4e4ce}
.puzzle-list button>span{display:block;font-size:10px;line-height:1.5;color:#c5b4a7;margin-top:4px}
.puzzle-list button:hover>span{color:#f4e4ce}
.board .cell.region-complete{animation:region-completion .75s ease-out}
.board .cell.wave-hit{animation:ice-impact .55s ease-out}
@keyframes region-completion{0%,100%{filter:brightness(1)}40%{filter:brightness(1.22);box-shadow:inset 0 0 0 2px #bb8e37}}
@keyframes ice-impact{0%,100%{filter:brightness(1)}30%{filter:brightness(1.35);box-shadow:inset 0 0 0 3px #2e7e99}60%{filter:brightness(1.15)}}
@media(max-width:690px){.daily-list button>span,.puzzle-list button>span{font-size:9px}}

/* Explicit rows keep all eighty-one squares equal, including rows with no digits. */
.board{grid-template-rows:repeat(9,minmax(0,1fr))}
@media(max-width:690px){body.large-controls button.nav-button{font-size:10px;min-height:48px}body.large-controls .time-block button.text-button{font-size:10px;min-height:24px;padding:3px 0}}

body.large-controls button.number-button{font-size:28px;min-height:57px}@media(max-width:690px){body.large-controls button.number-button{font-size:24px;min-height:50px}}

/* Keep the board and keypad together on short phones; trim decoration first. */
@media(max-width:690px) and (max-height:800px){
.site-shell{padding-top:10px}.masthead{padding-top:23px;padding-bottom:10px}.brand-subtitle{display:none}.brand-mark{height:39px}.main-nav{padding:3px 0}.nav-button{min-height:42px;padding:3px 1px;gap:1px}.nav-button>span{font-size:14px}.play-layout{margin-top:11px}.puzzle-heading{min-height:48px;margin-bottom:9px}.puzzle-heading .eyebrow{display:none}.board-caption{margin-top:7px}.ice-status{padding:6px 9px;margin-top:6px}.play-layout{gap:10px}.control-panel{padding-top:9px}.entry-switches{margin-bottom:7px}body.large-controls button.nav-button{font-size:9px;min-height:44px}body.large-controls .time-block button.text-button{min-height:21px}
}

@media(max-width:690px) and (max-height:800px){body.large-controls .brand .eyebrow{display:none}}
/* Foreground and background switch together so selected/hover transitions never
   briefly put dark text on a dark button. Border and placement motion remain. */
button{transition:border-color .15s,box-shadow .15s,transform .15s}
