@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('assets/fonts/dm-sans-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('assets/fonts/dm-sans-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500 700;font-display:swap;src:url('assets/fonts/playfair-display-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:500 700;font-display:swap;src:url('assets/fonts/playfair-display-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500 600;font-display:swap;src:url('assets/fonts/playfair-display-italic-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Playfair Display';font-style:italic;font-weight:500 600;font-display:swap;src:url('assets/fonts/playfair-display-italic-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{--bg:#101410;--panel:#171c17;--panel2:#1c231c;--ink:#f1efe5;--muted:#a1a697;--gold:#d9bd78;--line:#2b322a;--green:#899876;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;letter-spacing:.01em}.shell{max-width:1240px;margin:auto;padding:0 6.2%}.topbar{height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand-mark{font:600 32px var(--serif);letter-spacing:-5px;border:1px solid #697257;border-radius:50%;width:42px;height:42px;display:grid;place-items:center;padding-right:4px;color:var(--gold)}.brand-mark span{color:#f0eee5}.brand-name{font-size:9px;line-height:1.45;letter-spacing:.18em;color:#b5baa9}.brand-name b{font-weight:700;color:var(--ink)}main{padding-bottom:20px}.hero{min-height:405px;padding:56px 0 38px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:.2em;color:var(--gold);margin:0 0 17px}.hero h1{font:500 clamp(44px,6vw,72px)/.98 var(--serif);letter-spacing:-.045em;margin:0 0 19px}.hero h1 em{color:var(--gold);font-weight:500}.hero-sub{font-size:13px;color:#b4b9ab;line-height:1.7;max-width:310px;margin:0 0 25px}.button{border:0;padding:13px 17px;font:600 11px var(--sans);letter-spacing:.04em;cursor:pointer;transition:.2s}.button:hover{transform:translateY(-2px)}.button-gold{background:var(--gold);color:#202319}.button span{font-size:16px;margin-left:22px}.hero-art{height:300px;max-width:480px;width:100%;justify-self:end;position:relative;overflow:hidden;background:radial-gradient(ellipse at center,#30392b 0,#1a211a 42%,#121711 75%);border:1px solid #30382e}.hero-art:before,.hero-art:after{content:"";position:absolute;background:#697354;opacity:.28}.hero-art:before{width:1px;height:140%;left:50%;top:-20%;transform:rotate(37deg)}.hero-art:after{height:1px;width:140%;left:-20%;top:50%;transform:rotate(-28deg)}.orbit{position:absolute;border:1px solid #7a805e55;border-radius:50%;width:220px;height:220px;top:40px;left:calc(50% - 110px)}.orbit-two{width:145px;height:145px;top:77px;left:calc(50% - 72px);border-color:#d9bd7855}.tile{position:absolute;width:75px;height:75px;display:grid;place-items:center;font:32px var(--serif);box-shadow:0 15px 40px #0005}.tile-a{background:#b4a578;color:#282a20;top:57px;left:calc(50% - 105px);transform:rotate(-13deg)}.tile-b{background:#626f56;color:#e1decf;top:139px;left:calc(50% - 7px);transform:rotate(10deg)}.tile-c{background:#d2c393;color:#394032;top:65px;left:calc(50% + 43px);transform:rotate(12deg)}.art-caption{position:absolute;right:20px;bottom:18px;color:#a9ad98;font-size:8px;letter-spacing:.15em;line-height:1.8}.art-caption b{color:var(--gold);font-size:10px}.shelves{display:flex;gap:8px;border-top:1px solid var(--line);padding:19px 0 43px}.shelf{background:transparent;border:1px solid transparent;color:#aab0a1;border-radius:99px;padding:9px 16px;font:500 11px var(--sans);cursor:pointer}.shelf:hover{color:var(--ink)}.shelf.active{border-color:#505844;background:#1c231b;color:var(--gold)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.section-heading .eyebrow{margin-bottom:7px;font-size:8px}.section-heading h2{font:500 27px var(--serif);margin:0}.text-button{color:#bcc0b1;background:none;border:0;font:500 10px var(--sans);cursor:pointer}.text-button span{color:var(--gold);font-size:15px;margin-left:6px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.puzzle-card{background:var(--panel);border:1px solid var(--line);min-height:315px;position:relative;padding:15px 16px 17px;transition:.25s;overflow:hidden}.puzzle-card:hover{border-color:#626b54;transform:translateY(-3px)}.card-top{display:flex;align-items:center;justify-content:space-between}.tag{font-size:8px;letter-spacing:.11em;font-weight:700}.tag-classic{color:#9eb187}.tag-premium{color:var(--gold)}.tag-discover{color:#b8a1cb}.card-index{font:italic 12px var(--serif);color:#66705f}.sudoku-art{width:116px;height:116px;margin:19px auto 14px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #819071;background:#20291e}.sudoku-art span{display:grid;place-items:center;font:14px var(--serif);color:#c2c6b7;border:1px solid #4a5644}.sudoku-art span:nth-child(2),.sudoku-art span:nth-child(4n+3){color:var(--gold)}.room-art{height:149px;display:grid;place-items:center;margin-top:9px}.room-frame{height:132px;width:170px;position:relative;border:1px solid #81764f;background:linear-gradient(150deg,#232a20,#141914 72%);overflow:hidden;box-shadow:0 0 35px #c9ad6120}.room-frame:before{content:"";position:absolute;top:0;left:50%;height:100%;width:1px;background:#b9a56a55}.sun{position:absolute;width:37px;height:37px;border:1px solid var(--gold);border-radius:50%;top:22px;left:calc(50% - 18px);box-shadow:0 0 25px #d9bd7860}.door{position:absolute;width:53px;height:89px;bottom:10px;left:calc(50% - 26px);border:1px solid #9a895a;background:#252a21;display:flex;align-items:center;justify-content:center;color:#a99a68;font:14px var(--serif)}.door-knob{position:absolute;right:7px;top:50%;width:4px;height:4px;background:var(--gold);border-radius:50%}.floor{position:absolute;bottom:0;left:0;width:100%;height:1px;background:#887b54}.flow-art{height:149px;margin-top:9px;position:relative;display:flex;align-items:center;justify-content:center;gap:15px;background:radial-gradient(ellipse,#272131,#171c17 68%)}.node{position:relative;z-index:2;font-size:20px;color:#c0a9d4}.n1{color:var(--gold);filter:drop-shadow(0 0 8px #d9bd78)}.path{height:1px;width:31px;background:#a78bc1;opacity:.8}.spark{position:absolute;right:27%;top:24%;font-size:17px;color:var(--gold)}.card-copy h3{font:500 17px var(--serif);margin:0 0 5px}.card-copy p{color:#a5ab9c;font-size:10px;margin:0}.card-link{position:absolute;bottom:16px;right:16px;background:none;border:0;color:var(--gold);font:600 10px var(--sans);cursor:pointer}.card-link span{font-size:15px;margin-left:8px}.note-row{display:flex;align-items:center;gap:13px;border:1px solid var(--line);background:#141914;padding:15px 17px;margin:23px 0 0}.note-icon{color:var(--gold);font-size:20px}.note-row p{font-size:10px;color:#abb0a2;margin:0;flex:1}.note-row b{color:var(--ink)}footer{height:70px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:#757e70;font-size:8px;letter-spacing:.13em}.modal-backdrop{position:fixed;inset:0;background:#080b08dc;backdrop-filter:blur(7px);display:none;place-items:center;padding:18px;z-index:10}.modal-backdrop.open{display:grid}.modal{position:relative;background:#171d17;border:1px solid #59614b;width:min(460px,100%);padding:32px 30px 26px;box-shadow:0 25px 90px #0009}.modal-close{position:absolute;right:17px;top:13px;background:none;border:0;color:#aeb4a4;font-size:25px;cursor:pointer}.modal h2{font:500 30px var(--serif);margin:0 0 8px}.modal-description{color:#aeb4a4;font-size:11px;line-height:1.7;margin:0 0 19px}.feedback{min-height:18px;color:var(--gold);font-size:11px}.sudoku-game{width:212px;height:212px;margin:20px auto;display:grid;grid-template-columns:repeat(4,1fr);border:2px solid #929978}.cell{border:1px solid #4c5945;background:#20271f;color:#e8e6dc;text-align:center;font:17px var(--serif);min-width:0;outline:none}.cell:focus{background:#323a2c;box-shadow:inset 0 0 0 1px var(--gold)}.cell:nth-child(2),.cell:nth-child(4n+2){border-right:2px solid #929978}.cell:nth-child(n+5):nth-child(-n+8){border-bottom:2px solid #929978}.cell.fixed{color:var(--gold);background:#252c23}.modal-action{display:block;margin:0 auto;background:var(--gold);color:#202319;border:0;padding:12px 18px;font:700 10px var(--sans);letter-spacing:.06em;cursor:pointer}.preview-art{height:125px;display:grid;place-items:center;color:var(--gold);font:62px var(--serif);background:radial-gradient(ellipse,#303729,#171d17 70%);margin:14px 0}.modal-list{padding-left:18px;color:#b8bdaf;font-size:11px;line-height:2}.hidden{display:none!important}
@media(max-width:760px){.shell{padding:0 5%}.topbar{height:75px}.hero{grid-template-columns:1fr;gap:22px;padding:42px 0 27px}.hero h1{font-size:58px}.hero-art{height:220px;max-width:none;width:100%}.orbit{width:175px;height:175px;top:22px;left:calc(50% - 88px)}.orbit-two{width:115px;height:115px;top:52px;left:calc(50% - 58px)}.tile{width:60px;height:60px}.tile-a{top:35px;left:calc(50% - 90px)}.tile-b{top:104px;left:calc(50% - 5px)}.tile-c{top:40px;left:calc(50% + 35px)}.shelves{overflow:auto;padding-bottom:29px}.shelf{white-space:nowrap;padding:9px 13px}.cards{grid-template-columns:1fr;gap:10px}.puzzle-card{min-height:290px}.sudoku-art{margin-top:14px}.room-art,.flow-art{height:135px}.note-row{flex-wrap:wrap}.note-row p{min-width:70%}.note-row .text-button{margin-left:32px}footer{font-size:7px}.section-heading h2{font-size:24px}}

/* Digital magazine reading experience */
.magazine-app{padding:22px 0 42px}.magazine-shell{max-width:1060px;margin:0 auto}.magazine-topline{display:flex;justify-content:space-between;align-items:center;color:#858d7a;font-size:8px;letter-spacing:.18em;padding:0 3px 12px}.magazine-book{position:relative;min-height:570px;perspective:1800px;background:#0d100d;border:1px solid #434936;box-shadow:0 28px 80px #0008;overflow:hidden}.mag-page{display:none;position:relative;min-height:570px;padding:34px 5.5% 56px;overflow:hidden;animation:page-arrive .48s cubic-bezier(.2,.7,.2,1)}.mag-page.active{display:block}.cover-page{background:linear-gradient(112deg,#e9e4d5 0,#e9e4d5 48%,#182019 48%,#111611 100%);color:#22271f;display:grid!important;grid-template-columns:1fr 1fr;align-items:center;gap:20px}.cover-page:not(.active){display:none!important}.cover-page:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#b4ad98aa;box-shadow:0 0 20px #0002}.cover-copy{position:relative;z-index:1;padding:8px 0 0}.cover-kicker{font-size:8px;letter-spacing:.19em;color:#746441;font-weight:700;margin:0 0 27px}.cover-copy h1{font:500 clamp(45px,7vw,82px)/.94 var(--serif);letter-spacing:-.055em;margin:0 0 21px}.cover-copy h1 em{color:#817246;font-weight:500}.cover-deck{font-size:11px;line-height:1.7;color:#6f7165;margin:0 0 25px}.cover-open{background:#263026;color:#eee8d8;border:0;padding:14px 17px;font:700 9px var(--sans);letter-spacing:.1em;cursor:pointer;transition:transform .2s,background .2s}.cover-open:hover{transform:translateY(-2px);background:#394432}.cover-open span{color:#d9bf7b;margin-left:18px;font-size:15px}.cover-art{height:370px;position:relative;background:radial-gradient(ellipse at center,#394232,#171e18 70%);border:1px solid #77734f;overflow:hidden;box-shadow:0 24px 50px #0005}.cover-art:before,.cover-art:after{content:'';position:absolute;inset:-15%;border:1px solid #d3c38634;border-radius:50%;transform:rotate(-25deg) scaleX(.67)}.cover-art:after{inset:7%;transform:rotate(35deg) scaleX(.75);border-color:#d3c38650}.cover-orbit{position:absolute;left:calc(50% - 115px);top:64px;width:230px;height:230px;border:1px solid #d7c58755;border-radius:50%;z-index:1}.orbit-b{left:calc(50% - 77px);top:102px;width:154px;height:154px;border-color:#d7c58788}.cover-prism{position:absolute;z-index:2;width:89px;height:89px;display:grid;place-items:center;font:38px var(--serif);box-shadow:0 20px 34px #0008;border:1px solid #e1d29b99}.prism-a{left:calc(50% - 105px);top:76px;background:linear-gradient(145deg,#d2c38f,#7e805f);color:#283128;transform:rotate(-12deg)}.prism-b{left:calc(50% + 22px);top:118px;background:linear-gradient(145deg,#89937b,#394638);color:#f0e8cf;transform:rotate(9deg)}.prism-c{left:calc(50% + 58px);top:54px;background:linear-gradient(145deg,#e2d3a5,#9c8c59);color:#36382b;transform:rotate(14deg)}.cover-edition{position:absolute;right:15px;bottom:14px;color:#c2c2ad;font-size:8px;line-height:1.8;letter-spacing:.15em;text-align:right;z-index:3}.cover-edition b{color:#e2cd91;font-size:10px}.cover-bottom{position:absolute;left:5.5%;right:5.5%;bottom:17px;display:flex;justify-content:space-between;color:#6d7064;font-size:7px;letter-spacing:.15em}.inside-page{background:#ece7d9;color:#292c24}.inside-page:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#d5cfbf;box-shadow:0 0 22px #938d7c22}.page-masthead{display:flex;justify-content:space-between;border-bottom:1px solid #c9c1ae;padding:0 0 10px;color:#716b59;font-size:7px;letter-spacing:.16em}.page-title-row{display:flex;justify-content:space-between;align-items:end;margin:30px 0 12px}.page-kicker{font-size:8px;letter-spacing:.2em;color:#8a774a;font-weight:700;margin:0 0 9px}.page-title-row h2{font:500 clamp(34px,5vw,56px)/.98 var(--serif);letter-spacing:-.04em;color:#282c24;margin:0}.page-ornament{font:italic 38px var(--serif);color:#b4a16b;padding:0 20px 0 0}.page-intro{max-width:510px;color:#737469;font-size:10px;line-height:1.7;margin:0 0 19px}.feature-puzzle{display:grid;grid-template-columns:190px 1fr;gap:25px;align-items:center;border-top:1px solid #c9c1ae;border-bottom:1px solid #c9c1ae;padding:18px 0}.feature-sudoku{width:172px;height:172px;display:grid;grid-template-columns:repeat(4,1fr);background:#d8d1be;border:2px solid #8b886d;box-shadow:0 12px 22px #25261c20}.feature-sudoku span,.feature-sudoku i{display:grid;place-items:center;border:1px solid #aaa58d;font:20px var(--serif);font-style:normal;color:#44483a}.feature-sudoku span:nth-child(4n+3){color:#957b42}.feature-sudoku i{background:#e8e2d2}.story-label{font-size:7px;letter-spacing:.17em;color:#887548;font-weight:700}.feature-copy h3,.discovery-copy h3{font:500 26px var(--serif);margin:8px 0 7px;color:#2c3028}.feature-copy p,.premium-copy p,.discovery-copy p{font-size:9px;line-height:1.7;color:#727469;max-width:340px;margin:0}.page-play{background:#283126;color:#eee8d8;border:0;padding:12px 14px;margin-top:15px;font:700 8px var(--sans);letter-spacing:.1em;cursor:pointer}.page-play span{color:#d6bd7d;margin-left:16px;font-size:14px}.page-list{margin-top:14px}.page-list>div{display:grid;grid-template-columns:27px 1fr auto auto;gap:12px;align-items:center;border-bottom:1px solid #d1cab8;padding:10px 0}.page-list>div>span{font:italic 13px var(--serif);color:#9a8755}.page-list b{font:500 12px var(--serif);color:#34382f}.page-list small{font-size:8px;color:#898879}.page-list button{border:0;background:none;color:#8d7745;font:600 8px var(--sans);cursor:pointer}.page-footer{position:absolute;bottom:16px;left:5.5%;right:5.5%;display:flex;justify-content:space-between;border-top:1px solid #c9c1ae;padding-top:8px;color:#827c6a;font-size:7px;letter-spacing:.15em}.premium-page{background:#e5dfcf}.premium-room{height:205px;position:relative;margin:14px 0 13px;overflow:hidden;border:1px solid #726847;background:linear-gradient(145deg,#3c4335,#1c211b);box-shadow:inset 0 0 45px #0006}.premium-room:before{content:'';position:absolute;left:50%;top:0;height:100%;width:1px;background:#c4ad6b55;transform:rotate(10deg)}.room-glow{position:absolute;left:calc(50% - 40px);top:24px;width:80px;height:80px;border:1px solid #dfc77d;border-radius:50%;box-shadow:0 0 35px #d7bd6f77,inset 0 0 20px #d7bd6f33}.room-door{position:absolute;left:calc(50% - 38px);bottom:0;width:76px;height:143px;border:1px solid #c1a967;background:linear-gradient(95deg,#272c23,#4a4938);display:grid;place-items:center;color:#d8c27e;font:26px var(--serif);box-shadow:0 0 30px #d1b66a33}.room-number{position:absolute;left:16px;bottom:12px;color:#e0d4b5;font-size:7px;letter-spacing:.15em}.premium-copy{display:flex;align-items:center;justify-content:space-between;gap:20px}.premium-copy .page-play{margin:0;white-space:nowrap}.chapter-strip{display:flex;justify-content:space-between;border-top:1px solid #c9c1ae;margin-top:17px;padding-top:10px;color:#817a68;font-size:7px;letter-spacing:.12em}.discovery-page{background:#e9e4d7}.light-puzzle{height:210px;position:relative;margin:12px 0 16px;background:radial-gradient(ellipse,#d4d1be,#e9e4d7 72%);border:1px solid #c8c1af}.light-source,.light-target,.light-mirror{position:absolute;top:71px;z-index:2;width:38px;height:38px;display:grid;place-items:center;font-size:23px;color:#9d854b}.light-source{left:12%;text-shadow:0 0 12px #c4a64c}.light-target{right:12%;font-size:27px}.light-mirror{left:52%;top:86px;color:#687554;transform:rotate(25deg)}.light-path{position:absolute;left:20%;top:90px;width:36%;height:1px;background:#a68a50;transform:rotate(0);box-shadow:0 0 9px #c4a64c66}.path-two{left:55%;top:90px;width:27%;transform:rotate(-8deg)}.light-caption{position:absolute;bottom:15px;left:0;right:0;text-align:center;color:#868273;font-size:7px;letter-spacing:.18em}.discovery-copy{display:flex;align-items:end;justify-content:space-between;gap:18px}.discovery-copy h3{margin-bottom:5px}.discovery-copy .page-play{white-space:nowrap}.page-controls{display:flex;align-items:center;justify-content:space-between;padding:15px 6px 0;color:#abb09f}.page-controls button{background:none;border:0;color:#c5c8b9;font:600 8px var(--sans);letter-spacing:.12em;cursor:pointer}.page-controls button:disabled{opacity:.35;cursor:default}.page-controls button span{padding:0 8px}.page-dots{display:flex;gap:8px;align-items:center}.page-dots .page-dot{width:6px;height:6px;border-radius:50%;padding:0;background:#4a5143}.page-dots .page-dot.active{background:#d4bb7c;box-shadow:0 0 0 4px #d4bb7c22}.page-count{color:#818979;font-size:7px;letter-spacing:.16em}.magazine-shell~footer{color:#75806e}.magazine-book.turn-next .mag-page.active{animation-name:page-away-next}.magazine-book.turn-prev .mag-page.active{animation-name:page-away-prev}@keyframes page-arrive{from{opacity:.4;transform:rotateY(-5deg) translateX(12px)}to{opacity:1;transform:rotateY(0) translateX(0)}}@keyframes page-away-next{to{opacity:.7;transform:rotateY(-4deg) translateX(-9px)}}@keyframes page-away-prev{to{opacity:.7;transform:rotateY(4deg) translateX(9px)}}
@media(max-width:760px){.magazine-app{padding-top:15px}.magazine-book,.mag-page{min-height:610px}.mag-page{padding:25px 5% 54px}.cover-page{grid-template-columns:1fr;align-content:start;gap:18px;background:linear-gradient(180deg,#e9e4d5 0,#e9e4d5 51%,#182019 51%,#111611 100%)}.cover-page:before{display:none}.cover-copy{padding-top:8px}.cover-kicker{margin-bottom:15px}.cover-copy h1{font-size:52px;margin-bottom:12px}.cover-deck{font-size:10px;margin-bottom:13px}.cover-art{height:210px}.cover-prism{width:62px;height:62px;font-size:26px}.prism-a{left:calc(50% - 80px);top:44px}.prism-b{left:calc(50% - 15px);top:83px}.prism-c{left:calc(50% + 23px);top:36px}.cover-orbit{width:160px;height:160px;left:calc(50% - 80px);top:26px}.orbit-b{width:105px;height:105px;left:calc(50% - 52px);top:53px}.feature-puzzle{grid-template-columns:125px 1fr;gap:15px}.feature-sudoku{width:122px;height:122px}.feature-sudoku span,.feature-sudoku i{font-size:15px}.page-title-row{margin-top:23px}.page-title-row h2{font-size:40px}.page-ornament{font-size:30px;padding-right:5px}.premium-room{height:175px}.page-list>div{grid-template-columns:20px 1fr auto;gap:8px}.page-list small{display:none}.page-controls{padding-left:0;padding-right:0}.page-count{display:none}}
@media(max-width:420px){.magazine-topline{font-size:7px;letter-spacing:.1em}.cover-copy h1{font-size:46px}.feature-puzzle{grid-template-columns:100px 1fr;gap:12px}.feature-sudoku{width:98px;height:98px}.feature-sudoku span,.feature-sudoku i{font-size:13px}.feature-copy h3{font-size:21px}.feature-copy p{font-size:8px}.page-play{padding:10px;font-size:7px}.premium-copy{align-items:start;flex-direction:column}.premium-copy .page-play{margin-top:8px}.discovery-copy{align-items:start;flex-direction:column}.discovery-copy .page-play{margin-top:8px}.page-list>div{grid-template-columns:19px 1fr auto}.chapter-strip{font-size:6px}}

/* Physical print magazine presentation */
.magazine-app{padding-top:28px}.magazine-shell{max-width:1120px}.magazine-topline{max-width:1000px;margin:0 auto;color:#999886}.magazine-stage{min-height:690px;display:flex;align-items:center;justify-content:center;position:relative;padding:36px 0 48px;perspective:1800px;background:radial-gradient(ellipse at 50% 55%,#37382d 0,#22251e 52%,#161a15 84%);border:1px solid #424639;box-shadow:inset 0 0 80px #0005,0 26px 75px #0008;overflow:hidden}.magazine-stage:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(95deg,transparent 0 73px,#ffffff03 74px 75px),linear-gradient(180deg,#ffffff04,#00000010);pointer-events:none}.physical-cover{display:none;position:relative;width:min(410px,78vw);height:570px;transform:rotateY(-4deg) rotateZ(-1deg);transform-style:preserve-3d;box-shadow:22px 28px 38px #0009,3px 4px 0 #a9955e,6px 7px 0 #82784f,9px 10px 0 #35372a;transition:transform .35s,filter .35s;z-index:2}.physical-cover.active{display:block;animation:cover-land .75s cubic-bezier(.18,.75,.2,1)}.physical-cover:hover{transform:rotateY(-1deg) rotateZ(0) translateY(-4px);filter:brightness(1.04)}.cover-spine{position:absolute;left:-13px;top:0;bottom:0;width:14px;writing-mode:vertical-rl;transform:rotate(180deg);display:flex;align-items:center;justify-content:center;background:linear-gradient(90deg,#30362b,#77714a);border:1px solid #a89b69;color:#dfd2a7;font-size:7px;letter-spacing:.2em;z-index:3;box-shadow:inset -2px 0 4px #0005}.cover-stock{position:absolute;top:8px;right:-9px;bottom:6px;width:9px;background:repeating-linear-gradient(180deg,#d9d1b8 0 2px,#90896f 2px 3px);transform:skewY(-1deg);box-shadow:2px 0 3px #0007}.physical-cover-inner{height:100%;position:relative;display:flex;flex-direction:column;padding:23px 25px 19px 34px;overflow:hidden;color:#eee8d7;background:radial-gradient(ellipse at 64% 36%,#46513a,#212a22 49%,#131a16 100%);border:1px solid #8c8058;box-shadow:inset 0 0 0 8px #ffffff08,inset 0 0 35px #0006}.physical-cover-inner:before{content:'';position:absolute;inset:14px;border:1px solid #d9c78835;pointer-events:none}.cover-brandline{display:flex;position:relative;z-index:2;justify-content:space-between;align-items:start;font-size:9px;letter-spacing:.16em;line-height:1.5;color:#e8dfc8}.cover-brandline b{font-weight:700}.cover-brandline small{text-align:right;font-size:7px;line-height:1.6;letter-spacing:.16em;color:#d4c79f}.physical-cover .cover-art{position:absolute;width:100%;height:55%;left:0;top:18%;border:0;background:radial-gradient(ellipse at center,#59604422,#10171100 70%);box-shadow:none;overflow:hidden}.physical-cover .cover-art:before{inset:7% 12%;border-color:#d8c78744}.physical-cover .cover-art:after{inset:18% 20%;border-color:#d8c78766}.physical-cover .cover-orbit{top:calc(50% - 120px)}.physical-cover .orbit-b{top:calc(50% - 82px)}.physical-cover .cover-prism{width:90px;height:90px}.physical-cover .prism-a{top:calc(50% - 88px)}.physical-cover .prism-b{top:calc(50% - 37px)}.physical-cover .prism-c{top:calc(50% - 105px)}.cover-title{position:absolute;z-index:3;left:34px;bottom:82px}.cover-title p{font-size:7px;letter-spacing:.18em;color:#ddc987;margin:0 0 12px}.cover-title h1{font:500 42px/.94 var(--serif);letter-spacing:-.04em;margin:0 0 12px;color:#f1ecdd}.cover-title h1 em{color:#e0ca8a;font-weight:500}.cover-title>span{font-size:8px;color:#c5c5b5;letter-spacing:.04em}.cover-footer{position:absolute;bottom:24px;left:34px;right:24px;display:flex;justify-content:space-between;border-top:1px solid #d6c58355;padding-top:9px;color:#b7b8a9;font-size:6px;letter-spacing:.14em}.cover-turn{position:absolute;right:18px;bottom:40px;width:132px;height:44px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:9px;background:#f0ebdc;color:#24354a;border:1px solid #e8d69e;border-radius:999px;padding:4px 8px;font:700 9px var(--sans);letter-spacing:.08em;cursor:pointer;box-shadow:0 5px 16px #090f19aa;transition:transform .2s}.cover-turn:hover{transform:translateY(-2px)}.cover-turn span{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:#c9ad64;color:#18263b;font-size:17px;line-height:1;margin:0}.cover-turn span svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.physical-spread{display:none;position:relative;width:min(1000px,94%);height:610px;grid-template-columns:1fr 1fr;transform:rotateX(1deg);transform-style:preserve-3d;filter:drop-shadow(0 25px 25px #0008)}.physical-spread.active{display:grid;animation:spread-open .55s cubic-bezier(.2,.7,.2,1)}.physical-spread:before{content:'';position:absolute;z-index:3;left:50%;top:0;bottom:0;width:20px;transform:translateX(-50%);background:linear-gradient(90deg,#c4bda8 0,#f0ebdc 38%,#c7bfa9 50%,#f0ebdc 68%,#b6ad98 100%);box-shadow:0 0 13px #443d2b55}.paper-leaf{position:relative;min-width:0;height:100%;overflow:hidden;padding:34px 38px 49px;background-color:#f0ecdf;background-image:linear-gradient(90deg,#d7d0bd55 0,transparent 8%),repeating-linear-gradient(0deg,#796d4b04 0 1px,transparent 1px 4px);color:#31342d;box-shadow:inset 0 0 22px #72674416}.left-leaf{padding-right:48px;box-shadow:inset -15px 0 20px -20px #392f1b,inset 0 0 25px #72674412}.right-leaf{padding-left:48px;background-image:linear-gradient(270deg,#d7d0bd55 0,transparent 8%),repeating-linear-gradient(0deg,#796d4b04 0 1px,transparent 1px 4px);box-shadow:inset 15px 0 20px -20px #392f1b,inset 0 0 25px #72674412}.paper-masthead{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid #c8c0ae;padding-bottom:8px;color:#79715d;font-size:6px;letter-spacing:.13em}.paper-kicker{font-size:7px;letter-spacing:.16em;color:#897548;font-weight:700;margin:22px 0 9px}.paper-leaf h2{font:500 clamp(24px,3vw,39px)/.98 var(--serif);letter-spacing:-.035em;color:#292d26;margin:0 0 10px}.paper-intro{font:italic 10px/1.55 var(--serif);color:#78766a;margin:0 0 12px;max-width:310px}.feature-puzzle{display:block;border:0;padding:12px 0 6px;margin:0}.feature-sudoku{width:150px;height:150px;margin:auto;background:#dfd8c6;box-shadow:0 8px 16px #2b2a211c}.print-caption{display:block;text-align:center;color:#817b68;font:italic 8px/1.5 var(--serif);margin-top:8px}.paper-body{font:10px/1.8 var(--serif);color:#56574d;margin:9px 0 11px}.paper-link{border:0;border-bottom:1px solid #9d8853;background:transparent;color:#746137;padding:8px 0 5px;font:700 7px var(--sans);letter-spacing:.12em;cursor:pointer}.paper-link span{font-size:13px;margin-left:12px}.paper-footer{position:absolute;left:38px;right:38px;bottom:18px;display:flex;justify-content:space-between;border-top:1px solid #c8c0ae;padding-top:7px;color:#89816c;font-size:6px;letter-spacing:.15em}.paper-footer b{font:italic 13px var(--serif);color:#81734d}.premium-page .paper-kicker,.discovery-page .paper-kicker{margin-top:21px}.premium-page .premium-room{height:186px;margin:12px 0;border-color:#7a704e}.premium-page .paper-body{margin-top:10px}.premium-page .paper-link{margin-top:0}.premium-page .room-number{font-size:6px}.discovery-page .light-puzzle{height:176px;margin:11px 0 12px}.discovery-page .light-source,.discovery-page .light-target,.discovery-page .light-mirror{top:59px}.discovery-page .light-mirror{top:74px}.discovery-page .light-path{top:78px}.discovery-page .path-two{top:78px}.discovery-page .light-caption{font-size:6px}.note-art{height:160px;margin:34px 0 17px;display:grid;place-items:center;color:#d2bd7f;font:90px var(--serif);background:radial-gradient(ellipse,#e0dac6,#f0ecdf 72%);border:1px solid #d0c8b4;text-shadow:0 6px 15px #71654345;position:relative}.note-art:after{content:'';position:absolute;width:110px;height:110px;border:1px solid #a6905e66;border-radius:50%;box-shadow:0 0 0 10px #a6905e0d,0 0 0 24px #a6905e0a}.note-page .paper-body{max-width:340px;font-size:11px}.signature{font:italic 17px var(--serif);color:#726440;margin-top:23px}.signature small{display:block;font:normal 7px var(--sans);letter-spacing:.13em;color:#89816c;margin-top:4px}.page-controls{max-width:1000px;margin:0 auto}.magazine-stage.turn-next .physical-spread.active{animation:spread-open .55s cubic-bezier(.2,.7,.2,1)}.magazine-stage.turn-prev .physical-spread.active{animation:spread-close .55s cubic-bezier(.2,.7,.2,1)}@keyframes spread-open{from{opacity:.4;transform:rotateY(-9deg) translateX(18px)}to{opacity:1;transform:rotateY(0) translateX(0)}}@keyframes spread-close{from{opacity:.4;transform:rotateY(9deg) translateX(-18px)}to{opacity:1;transform:rotateY(0) translateX(0)}}@keyframes cover-land{from{opacity:.5;transform:translateY(15px) rotateY(-10deg) rotateZ(-2deg)}to{opacity:1;transform:rotateY(-4deg) rotateZ(-1deg)}}
@media(max-width:760px){.magazine-app{padding:14px 0 32px}.magazine-topline{font-size:7px}.magazine-stage{min-height:630px;padding:25px 0 42px}.physical-cover{height:520px;width:min(360px,78vw)}.cover-turn{right:-86px;width:76px;font-size:6px}.cover-title h1{font-size:37px}.physical-spread{width:97%;height:560px}.paper-leaf{padding:25px 22px 43px}.left-leaf{padding-right:29px}.right-leaf{padding-left:29px}.paper-masthead{font-size:5px}.paper-kicker{font-size:6px;margin-top:17px}.paper-leaf h2{font-size:clamp(21px,5vw,31px)}.paper-intro{font-size:9px}.feature-sudoku{width:118px;height:118px}.paper-body{font-size:9px}.paper-footer{left:22px;right:22px}.premium-page .premium-room{height:155px}.discovery-page .light-puzzle{height:150px}.note-art{height:130px;margin-top:24px}}
@media(max-width:480px){.magazine-stage{min-height:600px}.physical-cover{height:490px;width:min(310px,76vw)}.physical-cover-inner{padding-left:28px;padding-right:19px}.cover-title{left:28px;bottom:72px}.cover-title h1{font-size:34px}.cover-footer{left:28px;right:18px;font-size:5px}.cover-turn{right:-72px;width:64px;padding:10px 5px}.physical-spread{height:540px;width:100%}.paper-leaf{padding:21px 15px 42px}.left-leaf{padding-right:22px}.right-leaf{padding-left:22px}.paper-masthead{font-size:4px;letter-spacing:.08em}.paper-kicker{font-size:5px;letter-spacing:.1em}.paper-leaf h2{font-size:22px}.paper-intro{font-size:8px}.feature-sudoku{width:94px;height:94px}.feature-sudoku span,.feature-sudoku i{font-size:11px}.print-caption{font-size:7px}.paper-body{font-size:8px}.paper-footer{left:15px;right:15px;font-size:5px}.paper-link{font-size:6px}.paper-link span{margin-left:5px}.premium-page .premium-room{height:130px}.room-number{font-size:5px}.discovery-page .light-puzzle{height:125px}.light-source,.light-target,.light-mirror{font-size:17px}.note-art{height:105px;font-size:66px}.note-art:after{width:85px;height:85px}.note-page .paper-body{font-size:9px}.signature{font-size:14px}.page-controls button span{display:none}}
.page-turn-sheet{position:absolute;z-index:8;top:0;bottom:0;width:50%;pointer-events:none;transform-style:preserve-3d;backface-visibility:hidden;box-shadow:0 0 22px #1118}.page-turn-sheet.forward{right:0;transform-origin:left center;animation:leaf-turn-forward .86s cubic-bezier(.45,.04,.2,1) forwards}.page-turn-sheet.backward{left:0;transform-origin:right center;animation:leaf-turn-backward .86s cubic-bezier(.45,.04,.2,1) forwards}.turn-leaf-front,.turn-leaf-back{position:absolute!important;inset:0;width:100%;height:100%;backface-visibility:hidden;overflow:hidden}.turn-leaf-front{z-index:2}.turn-leaf-back{background:linear-gradient(90deg,#d1c8b4,#f2eddf 13%,#e7e0d1 100%);transform:rotateY(180deg);box-shadow:inset 0 0 26px #665a3b20}.page-turn-sheet.backward .turn-leaf-back{transform:rotateY(-180deg)}.page-turn-sheet.cover-sheet{left:50%;top:50%;bottom:auto;right:auto;width:min(410px,78vw);height:570px;margin:-285px 0 0 min(-205px,-39vw);width:410px;transform-origin:left center;animation:cover-turn-forward .92s cubic-bezier(.45,.04,.2,1) forwards}.page-turn-sheet .turn-cover-face{display:block!important;position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:100%!important;margin:0!important;transform:none!important;box-shadow:none!important;animation:none!important}.page-turn-sheet.cover-sheet:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 64%,#fff4 73%,transparent 82%);pointer-events:none;z-index:5}.nocturne .turn-leaf-back{background:linear-gradient(90deg,#cfc7b5,#f1ecdf 15%,#e9e3d6 100%)}@keyframes leaf-turn-forward{0%{transform:rotateY(0)}48%{box-shadow:12px 0 25px #0005}100%{transform:rotateY(-180deg);box-shadow:0 0 8px #0002}}@keyframes leaf-turn-backward{0%{transform:rotateY(0)}48%{box-shadow:-12px 0 25px #0005}100%{transform:rotateY(180deg);box-shadow:0 0 8px #0002}}@keyframes cover-turn-forward{0%{transform:rotateY(0)}42%{box-shadow:18px 0 26px #0008}100%{transform:rotateY(-178deg);box-shadow:0 0 10px #0003}}
@media(max-width:760px){.page-turn-sheet.cover-sheet{width:min(360px,78vw);height:520px;margin:-260px 0 0 min(-180px,-39vw)}}
@media(max-width:480px){.page-turn-sheet.cover-sheet{width:min(310px,76vw);height:490px;margin:-245px 0 0 min(-155px,-38vw)}}
.nocturne .magazine-stage{background:radial-gradient(ellipse at 50% 55%,#30394a 0,#171e2a 58%,#0c111a 88%);border-color:#485064}.magazine-stage.nocturne{background:radial-gradient(ellipse at 50% 55%,#30394a 0,#171e2a 58%,#0c111a 88%);border-color:#485064}.magazine-topline:has(+ .nocturne){color:#a3a8b3}.nocturne .physical-cover-inner{background:radial-gradient(ellipse at 63% 35%,#34445d,#182437 51%,#0e1624 100%);border-color:#927a4e}.nocturne .physical-cover-inner:before{border-color:#c9ad6b55}.nocturne .cover-spine{background:linear-gradient(90deg,#101726,#635337);border-color:#a88f5a;color:#e2d3ac}.nocturne .cover-stock{background:repeating-linear-gradient(180deg,#dfd7c4 0 2px,#89836f 2px 3px)}.nocturne .cover-brandline{color:#f0e8d5}.nocturne .cover-brandline small,.nocturne .cover-title p{color:#d1bd89}.nocturne .cover-title h1 em{color:#d3b66c}.nocturne .cover-footer{border-color:#cbb06b66;color:#d1c7ae}.nocturne .cover-turn{background:#e7dfcf;border-color:#b9a16b;color:#1b2736}.nocturne .cover-turn span{background:#c9ad64;color:#1b2736}.nocturne .physical-cover .cover-art{background-image:linear-gradient(180deg,#10172611 0%,#10172605 42%,#101726ad 100%),url('assets/cover-clock.webp');background-size:cover,cover;background-position:center center,center center;background-repeat:no-repeat;filter:brightness(.78) saturate(.8)}.nocturne .physical-cover .cover-art:before,.nocturne .physical-cover .cover-art:after{border-color:#d8bd7d55}.nocturne .cover-prism{display:none}.nocturne .paper-leaf{background-color:#ebe6d9;color:#293142}.nocturne .paper-masthead{color:#5c6574;border-color:#c2bbab}.nocturne .paper-kicker,.nocturne .paper-link{color:#897044}.nocturne .paper-leaf h2{color:#1f2d42}.nocturne .paper-intro,.nocturne .paper-body{color:#666c77}.nocturne .paper-footer{color:#777b82;border-color:#c2bbab}.nocturne .paper-footer b{color:#8c7444}.nocturne .page-play{background:#24334a}.nocturne .premium-page .premium-room{background-image:linear-gradient(180deg,#0f17251c,#0f172566),url('assets/puzzle-editorial-contact-sheet.png');background-size:cover,310% 210%;background-position:center,100% 0%;background-repeat:no-repeat;border-color:#a18a5e}.nocturne .premium-page .room-door{background:linear-gradient(95deg,#1b2638dd,#394154bb);border-color:#d1b76b;color:#e2ca87}.nocturne .premium-page .room-glow{border-color:#dcc16f;box-shadow:0 0 32px #d5b45e99,inset 0 0 16px #d5b45e55}.nocturne .premium-page .room-number{color:#eee2c7}.nocturne .discovery-page .light-puzzle{background:radial-gradient(ellipse,#d2d1c9,#ebe6d9 72%);border-color:#c3bcad}.nocturne .discovery-page .light-source,.nocturne .discovery-page .light-target{color:#9c7c3e}.nocturne .discovery-page .light-path{background:#a28248;box-shadow:0 0 9px #c4a64c77}

/* Center and size the temporary cover sheet during the 3D page turn. */
.page-turn-sheet.cover-sheet{left:50%;top:50%;bottom:auto;right:auto;width:min(410px,78vw);height:570px;margin:0;transform-origin:left center;animation:cover-turn-forward .92s cubic-bezier(.45,.04,.2,1) forwards}
.page-turn-sheet .turn-cover-face{display:block!important;position:relative!important;left:auto!important;top:auto!important;width:100%!important;height:100%!important;margin:0!important;transform:none!important;box-shadow:none!important;animation:none!important}
.page-turn-sheet .turn-cover-face{backface-visibility:hidden!important;transform-style:preserve-3d}
@keyframes cover-turn-forward{0%{transform:translate(-50%,-50%) rotateY(0)}42%{transform:translate(-50%,-50%) rotateY(-88deg);box-shadow:18px 0 26px #0008}100%{transform:translate(-50%,-50%) rotateY(-178deg);box-shadow:0 0 10px #0003}}
@media(max-width:760px){.page-turn-sheet.cover-sheet{width:min(360px,78vw);height:520px}}
@media(max-width:480px){.page-turn-sheet.cover-sheet{width:min(310px,76vw);height:490px}}

/* Align the turning leaf to the printed page, and show the next page on its reverse. */
.physical-spread.active{animation:none}
.page-turn-sheet{right:auto;box-sizing:border-box;overflow:visible;animation-duration:.72s!important;}
.page-turn-sheet.forward{right:auto;transform-origin:left center}
.page-turn-sheet.backward{right:auto;left:auto;transform-origin:right center}
.turn-leaf-front,.turn-leaf-back{box-sizing:border-box}
.turn-leaf-back{z-index:1}
.page-turn-sheet.cover-sheet{left:auto;top:auto;right:auto;bottom:auto;width:auto;height:auto;margin:0;transform-origin:left center;animation:cover-turn-aligned .72s cubic-bezier(.45,.04,.2,1) forwards!important}
.page-turn-sheet.cover-sheet:after{display:none}
.cover-reveal-mask{position:absolute;inset:0;z-index:7;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,#30394a 0,#171e2a 58%,#0c111a 88%);animation:cover-reveal .72s ease-out forwards}
.cover-inside-face{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;padding:42px;background:linear-gradient(90deg,#bcb39e,#eee9db 12%,#e8e2d3 100%);color:#334052;backface-visibility:hidden;transform:rotateY(180deg);box-shadow:inset 12px 0 24px -18px #302917,inset 0 0 24px #72674418}
.cover-inside-face span{font:700 9px var(--sans);letter-spacing:.2em}
.cover-inside-face i{display:block;width:42px;height:1px;margin:22px 0;background:#9b8252}
.cover-inside-face small{font:500 12px/1.8 var(--serif);color:#74766e}
.is-turning .physical-cover,.is-turning .physical-spread{pointer-events:none}
@keyframes cover-turn-aligned{0%{transform:translateX(0) rotateY(0)}42%{transform:translateX(28%) rotateY(-88deg);box-shadow:18px 0 26px #0008}100%{transform:translateX(50%) rotateY(-178deg);box-shadow:0 0 10px #0003}}
@keyframes cover-reveal{0%{opacity:1}30%{opacity:.94}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.page-turn-sheet.forward,.page-turn-sheet.backward,.page-turn-sheet.cover-sheet,.cover-reveal-mask{animation-duration:.01ms!important}}

/* Two printed classic puzzle pages, with compact cards that open their own modal. */
.classic-list{display:grid;gap:10px;margin-top:19px}
.classic-puzzle{width:100%;min-height:91px;display:grid;grid-template-columns:70px 1fr 14px;align-items:center;gap:12px;padding:9px 10px;border:1px solid #d2c9b5;border-radius:2px;background:linear-gradient(110deg,#e9e3d4,#f2eedf);color:#303329;text-align:left;cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}
.classic-puzzle:hover{transform:translateX(3px);border-color:#a9955e;box-shadow:0 5px 13px #39352218}
.classic-art{height:64px;width:64px;display:grid;place-content:center;overflow:hidden;border:1px solid #b6ad96;background:#e2dccb;color:#52604b;font:600 11px/1.45 var(--serif);text-align:center;letter-spacing:.05em}
.sudoku-mini{background-color:#e6dfcd;background-image:linear-gradient(90deg,transparent 48%,#91876d 49% 51%,transparent 52%),linear-gradient(transparent 48%,#91876d 49% 51%,transparent 52%);box-shadow:inset 0 0 0 1px #9f967e}
.sudoku-mini{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));place-content:stretch;gap:0;padding:0;background-image:none;box-shadow:inset 0 0 0 1px #9f967e}
.sudoku-mini>span{display:grid;place-items:center;min-width:0;min-height:0;border:1px solid #b6ad96;font:600 8px/1 var(--serif);letter-spacing:0}
.sudoku-mini>span:nth-child(4n+2){border-right-width:2px;border-right-color:#91876d}
.sudoku-mini>span:nth-child(n+5):nth-child(-n+8){border-bottom-width:2px;border-bottom-color:#91876d}
.crossword-mini,.square-mini{font-size:13px;line-height:1.38;color:#82734e}
.word-mini{font:600 7px/2 var(--sans);letter-spacing:.02em;color:#646d53}
.nonogram-mini{font:10px/1.45 var(--sans);color:#53604b}
.kakuro-mini{font:600 8px/1.55 var(--sans);color:#716143}
.classic-info{display:grid;gap:6px}
.classic-info b{font:500 16px var(--serif);color:#303329}
.classic-info small{font:500 8px var(--sans);letter-spacing:.06em;color:#817b6a}
.classic-puzzle>i{font:normal 15px var(--sans);color:#907a46}
.classics-page .paper-kicker{margin-top:18px}
.classics-page h2{font-size:clamp(27px,3vw,36px);margin-bottom:6px}
.classics-page .paper-intro{margin-bottom:0}
.classics-page .classic-list{margin-top:15px;gap:9px}
.classics-page .classic-puzzle{min-height:85px}
.classic-modal-art{min-height:96px;display:grid;place-items:center;margin:20px auto;padding:16px;border:1px solid #a69875;background:linear-gradient(135deg,#e8e2d3,#d8d1be);color:#59614b;font:600 24px/1.4 var(--serif);letter-spacing:.08em;text-align:center}
@media(max-width:760px){.classic-list{gap:8px}.classic-puzzle{min-height:82px;grid-template-columns:58px 1fr 12px;gap:8px;padding:7px}.classic-art{width:54px;height:58px;font-size:9px}.classic-info b{font-size:13px}.classic-info small{font-size:7px}.classics-page .classic-puzzle{min-height:79px}}
@media(max-width:480px){.classics-page .paper-kicker{margin-top:13px}.classics-page h2{font-size:20px;margin-bottom:5px}.classics-page .paper-intro{font-size:7px;line-height:1.4}.classics-page .classic-list{margin-top:11px;gap:7px}.classics-page .classic-puzzle{min-height:73px;grid-template-columns:45px 1fr 10px;gap:6px;padding:6px}.classics-page .classic-art{width:43px;height:49px;font-size:8px}.classics-page .word-mini{font-size:5px}.classics-page .classic-info{gap:4px}.classics-page .classic-info b{font-size:11px}.classics-page .classic-info small{font-size:6px}.classics-page .classic-puzzle>i{font-size:12px}}

/* Dedicated premium Sudoku experience. Other puzzle modals keep their own direction. */
.modal.sudoku-modal{width:min(790px,100%);max-height:min(92vh,900px);overflow:auto;padding:31px 37px 0;border:1px solid #88794e;background:radial-gradient(ellipse at 50% -20%,#354231 0,#1d261e 46%,#141a15 100%);box-shadow:0 34px 110px #000c,inset 0 0 0 5px #ffffff05,inset 0 0 50px #0004;color:#f0eddf}
.sudoku-modal:before{content:"";position:absolute;inset:10px;border:1px solid #d4be7952;pointer-events:none}
.sudoku-modal>.eyebrow{position:relative;margin:0 0 9px;color:#cfb978;font-size:8px;letter-spacing:.22em}
.sudoku-modal>h2{position:relative;font:500 34px/.98 var(--serif);letter-spacing:-.035em;margin:0 0 8px;color:#f3edda}
.sudoku-modal>.modal-description{position:relative;max-width:560px;margin:0;color:#b8bdad;font:italic 12px/1.6 var(--serif)}
.sudoku-modal .modal-close{z-index:2;top:21px;right:21px;width:34px;height:34px;border:1px solid #82815f;border-radius:50%;color:#d9cfad;font-size:22px;transition:background .2s,color .2s}
.sudoku-modal .modal-close:hover{background:#d4bd79;color:#1b2119}
.sudoku-session{position:relative;margin:22px -37px 0;padding:18px 37px 0;background:linear-gradient(180deg,#20291f 0,#171e18 100%);border-top:1px solid #657052}
.sudoku-session-top,.sudoku-session-foot{display:flex;align-items:center;justify-content:space-between;color:#c8c4ad;font-size:8px;font-weight:700;letter-spacing:.14em}
.sudoku-session-top>span:first-child{display:flex;align-items:center;gap:8px;color:#eadba9}
.sudoku-session-top i{width:7px;height:7px;border-radius:50%;background:#d2bc7a;box-shadow:0 0 10px #d2bc7a99}
.sudoku-session-top b{font-weight:500;color:#999d8d}
.sudoku-session-time{color:#888f7b;font-size:7px}
.sudoku-progress{height:2px;margin:11px 0 19px;background:#3a4435}
.sudoku-progress span{display:block;width:10%;height:100%;background:linear-gradient(90deg,#9e8954,#e0c981);box-shadow:0 0 10px #d3bc7955}
.sudoku-play-layout{display:grid;grid-template-columns:minmax(260px,1fr) 238px;gap:34px;align-items:center;max-width:635px;margin:0 auto 17px}
.sudoku-board-column{min-width:0}
.sudoku-board-frame{padding:12px;border:1px solid #96845a;background:linear-gradient(145deg,#d6c99d,#81754d 22%,#4d503d 23%,#2a3328 100%);box-shadow:0 18px 28px #0007,inset 0 1px 0 #fff5,inset 0 -4px 8px #0005;transform:perspective(800px) rotateX(2deg)}
.sudoku-board{width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));overflow:hidden;border:2px solid #756743;background:#e9e2d0;box-shadow:0 6px 12px #080b0877,inset 0 0 0 2px #f9f3e2}
.sudoku-cell{position:relative;display:grid;place-items:center;min-width:0;padding:0;border:0;border-right:1px solid #bab29c;border-bottom:1px solid #bab29c;background:linear-gradient(145deg,#f0ebdc,#ddd5c1);color:#34382e;font:500 clamp(26px,5vw,39px)/1 var(--serif);cursor:pointer;transition:background .14s,transform .14s,box-shadow .14s}
.sudoku-cell:nth-child(4n){border-right:0}.sudoku-cell:nth-child(n+13){border-bottom:0}
.sudoku-cell:nth-child(2),.sudoku-cell:nth-child(6),.sudoku-cell:nth-child(10),.sudoku-cell:nth-child(14){border-right:3px solid #8e8058}
.sudoku-cell:nth-child(n+5):nth-child(-n+8){border-bottom:3px solid #8e8058}
.sudoku-cell.fixed{background:linear-gradient(145deg,#e4dcc8,#d0c5aa);color:#75643e;font-weight:600}
.sudoku-cell.peer{background:linear-gradient(145deg,#e8e2d2,#d9d3c1)}
.sudoku-cell.selected{z-index:1;background:linear-gradient(145deg,#e1d4a9,#c9b77c);color:#273025;box-shadow:inset 0 0 0 2px #a28745,0 2px 8px #61533466;transform:translateZ(2px)}
.sudoku-cell.wrong{background:linear-gradient(145deg,#f0d4c7,#deb4a2);color:#7b3024;box-shadow:inset 0 0 0 2px #a74c38}
.sudoku-board-caption{display:flex;justify-content:space-between;margin:11px 1px 0;color:#939a87;font-size:7px;letter-spacing:.11em}
.sudoku-board-caption span:first-child{color:#d1bd81;font-weight:700}
.sudoku-tools{display:flex;flex-direction:column;align-items:stretch}
.sudoku-rule{display:flex;gap:10px;align-items:flex-start;padding:12px 12px 11px;border:1px solid #485441;background:linear-gradient(140deg,#252f24,#1a211a);box-shadow:inset 0 1px 0 #ffffff09}
.sudoku-rule-icon{width:25px;height:25px;flex:0 0 25px;display:grid;place-items:center;border:1px solid #8b794d;border-radius:50%;color:#d5c17e;font-size:14px}
.sudoku-rule b{color:#e9dfc2;font:500 14px var(--serif)}
.sudoku-rule p{margin:4px 0 0;color:#aeb5a5;font-size:9px;line-height:1.55}
.sudoku-select-label{margin:16px 0 8px;color:#909987;font-size:7px;font-weight:700;letter-spacing:.18em}
.sudoku-keypad{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.sudoku-keypad button{height:43px;border:1px solid #6e765d;background:linear-gradient(145deg,#333e30,#222b22);box-shadow:0 3px 0 #11170f,0 7px 12px #0004,inset 0 1px 0 #ffffff18;color:#eee6cf;font:500 20px var(--serif);cursor:pointer;transition:transform .12s,background .12s,border-color .12s}
.sudoku-keypad button:hover,.sudoku-keypad button:focus-visible{transform:translateY(-2px);border-color:#d0b96f;background:linear-gradient(145deg,#586143,#333d2f);outline:none}
.sudoku-keypad button.used{color:#cfbb7e}
.sudoku-tool-actions{display:flex;align-items:center;justify-content:space-between;margin-top:13px}
.sudoku-hint,.sudoku-reset{border:0;background:transparent;color:#c8c3ad;font:500 9px var(--sans);cursor:pointer}
.sudoku-hint{display:flex;align-items:center;gap:7px}.sudoku-hint span{color:#d6bd78;font-size:15px}.sudoku-hint b{display:grid;place-items:center;width:19px;height:19px;border:1px solid #777554;border-radius:50%;color:#e2d5ae;font-size:8px}
.sudoku-reset{border-bottom:1px solid #6b735e;padding:5px 0;color:#9fa695}
.sudoku-feedback{min-height:31px;margin:12px 0 8px;color:#aeb5a5;font-size:9px;line-height:1.5}
.sudoku-feedback.error{color:#e0a593}.sudoku-feedback.success{color:#d5c27f}
.sudoku-check{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:43px;padding:0 14px;border:1px solid #d7c27f;background:linear-gradient(145deg,#e6d59f,#b89d5b);box-shadow:0 5px 0 #796741,0 10px 16px #0004,inset 0 1px 0 #fff9;color:#22271d;font:700 9px var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:transform .14s,filter .14s}
.sudoku-check:hover{transform:translateY(-2px);filter:brightness(1.07)}.sudoku-check:disabled{cursor:default;filter:saturate(.65);transform:none}.sudoku-check span{font-size:15px}
.sudoku-session-foot{min-height:38px;border-top:1px solid #3d4839;color:#7e8776;font-size:6px;letter-spacing:.15em}
.sudoku-session-foot b{margin-left:5px;color:#bbae85;font-weight:600}
@media(max-width:600px){.modal-backdrop{padding:9px}.modal.sudoku-modal{width:min(450px,100%);max-height:94dvh;padding:27px 21px 0;overflow-y:auto}.sudoku-modal:before{inset:7px}.sudoku-modal>.eyebrow{font-size:7px}.sudoku-modal>h2{font-size:30px}.sudoku-modal>.modal-description{max-width:calc(100% - 28px);font-size:11px}.sudoku-modal .modal-close{right:16px;top:15px;width:31px;height:31px}.sudoku-session{margin:17px -21px 0;padding:15px 21px 0}.sudoku-progress{margin:9px 0 14px}.sudoku-play-layout{grid-template-columns:minmax(0,1fr);gap:15px;max-width:360px;margin-bottom:12px}.sudoku-board-frame{padding:9px}.sudoku-cell{font-size:clamp(28px,9vw,38px)}.sudoku-board-caption{font-size:6px}.sudoku-rule{padding:9px 10px}.sudoku-rule p{font-size:9px}.sudoku-select-label{margin-top:11px}.sudoku-keypad{gap:8px}.sudoku-keypad button{height:42px}.sudoku-tool-actions{margin-top:11px}.sudoku-feedback{min-height:17px;margin:8px 0 7px}.sudoku-check{min-height:43px}.sudoku-session-foot{min-height:34px}}
@media(prefers-reduced-motion:reduce){.sudoku-cell,.sudoku-keypad button,.sudoku-check{transition:none}}

/* Full 9×9 board and the gated fifteen-stage Sudoku collection. */
.sudoku-levels{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 9px;margin:-3px 0 16px;scrollbar-width:thin;scrollbar-color:#81734d #273025}
.sudoku-level{flex:0 0 30px;width:30px;height:30px;display:grid;place-items:center;padding:0;border:1px solid #414c3e;border-radius:50%;background:#1b231c;color:#788271;font:600 7px var(--sans);cursor:pointer;transition:.16s}
.sudoku-level:disabled{cursor:not-allowed;opacity:.55}
.sudoku-level:not(:disabled):hover{border-color:#ccb66f;color:#e5d5a7}
.sudoku-level.current{border-color:#d5bd78;background:linear-gradient(145deg,#e5d49e,#ad9254);color:#252a20;box-shadow:0 0 0 3px #d5bd7820,0 3px 8px #0005}
.sudoku-level.completed{border-color:#7f8c67;color:#d8d9c3;background:linear-gradient(145deg,#3e4c38,#263126)}
.sudoku-board{grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr))}
.sudoku-cell{font-size:clamp(17px,3vw,29px)}
/* Cancel the original 4×4 grid separators before applying 9×9 box lines. */
.sudoku-cell:nth-child(4n){border-right:1px solid #bab29c}
.sudoku-cell:nth-child(n+13){border-bottom:1px solid #bab29c}
.sudoku-cell:nth-child(9n){border-right:0}
.sudoku-cell:nth-child(9n+3),.sudoku-cell:nth-child(9n+6){border-right:3px solid #8e8058}
.sudoku-cell:nth-child(n+73){border-bottom:0}
.sudoku-cell:nth-child(n+19):nth-child(-n+27),.sudoku-cell:nth-child(n+46):nth-child(-n+54){border-bottom:3px solid #8e8058}
.sudoku-cell.same-value{background:linear-gradient(145deg,#d8d0b9,#c9c1aa);color:#635b41}
.sudoku-cell.selected{background:linear-gradient(145deg,#e1d4a9,#c9b77c);color:#273025}
.sudoku-cell.wrong{background:linear-gradient(145deg,#f0d4c7,#deb4a2);color:#7b3024;box-shadow:inset 0 0 0 2px #a74c38}
.sudoku-keypad{grid-template-columns:repeat(3,1fr)}
.sudoku-keypad button{height:39px}
.sudoku-keypad button.selected{border-color:#e0c87d;background:linear-gradient(145deg,#6d704f,#414a34);color:#fff0c5;box-shadow:0 3px 0 #6b5837,0 0 0 2px #d0b96f22}
.sudoku-tool-actions{gap:7px}
.sudoku-hint,.sudoku-erase,.sudoku-reset{white-space:nowrap}
.sudoku-erase{border:0;border-bottom:1px solid #6b735e;padding:5px 0;background:transparent;color:#9fa695;font:500 9px var(--sans);cursor:pointer}
.sudoku-erase:disabled,.sudoku-hint:disabled{opacity:.45;cursor:default}
.sudoku-reset:disabled{opacity:.45;cursor:default}
.sudoku-next{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:40px;margin-top:8px;padding:0 12px;border:1px solid #727a60;background:linear-gradient(145deg,#313b2d,#222a22);color:#e5d9b6;font:700 8px var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.sudoku-next:disabled{border-color:#414b3d;color:#747d6c;cursor:not-allowed;box-shadow:none}
.sudoku-next span{font-size:13px}
.sudoku-session-foot .sudoku-progress-copy{color:#c3b681}
@media(max-width:600px){.sudoku-levels{gap:6px;margin-bottom:12px}.sudoku-level{flex-basis:27px;width:27px;height:27px;font-size:6px}.sudoku-board-frame{padding:7px}.sudoku-cell{font-size:clamp(15px,5vw,22px)}.sudoku-keypad{grid-template-columns:repeat(3,1fr);gap:6px}.sudoku-keypad button{height:36px;font-size:18px}.sudoku-tool-actions{margin-top:9px}.sudoku-erase,.sudoku-reset,.sudoku-hint{font-size:8px}.sudoku-next{min-height:39px}}

/* Daily Çengel Bulmaca: date-keyed clue play, Turkish keyboard, and archive view. */
.modal.cengel-modal{width:min(960px,100%);max-height:min(94vh,940px);overflow:auto;padding:32px 34px 23px;border:1px solid #88794e;background:radial-gradient(ellipse at 50% -20%,#354231 0,#1d261e 46%,#141a15 100%);box-shadow:0 34px 110px #000c,inset 0 0 0 5px #ffffff05,inset 0 0 50px #0004;color:#f0eddf}
.cengel-modal:before{content:"";position:absolute;inset:10px;border:1px solid #d4be7952;pointer-events:none}.cengel-modal>.eyebrow,.cengel-modal>h2,.cengel-modal>.modal-description{position:relative}.cengel-modal>.eyebrow{margin:0 0 8px;color:#cfb978;font-size:8px;letter-spacing:.22em}.cengel-modal>h2{font:500 34px/.98 var(--serif);letter-spacing:-.035em;margin:0 0 8px;color:#f3edda}.cengel-modal>.modal-description{max-width:680px;margin:0 0 19px;color:#b8bdad;font:italic 12px/1.6 var(--serif)}.cengel-modal .modal-close{z-index:2;top:21px;right:21px;width:34px;height:34px;border:1px solid #82815f;border-radius:50%;color:#d9cfad}.cengel-session{position:relative;border-top:1px solid #485342;padding-top:13px}.cengel-meta{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;color:#d2c182;font-size:8px;letter-spacing:.12em}.cengel-meta label{display:flex;align-items:center;gap:8px;color:#929a89;font-size:7px}.cengel-date-picker{width:125px;padding:5px 7px;border:1px solid #525d49;background:#1a211a;color:#e9e3d1;font:10px var(--sans);color-scheme:dark}.cengel-progress{height:3px;margin-bottom:14px;background:#333d31}.cengel-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#a58e55,#e5d193);transition:width .2s}.cengel-layout{display:grid;grid-template-columns:minmax(220px,.84fr) minmax(0,1.16fr);gap:20px}.cengel-left{padding:18px 15px;display:flex;flex-direction:column;justify-content:center;min-height:300px;border:1px solid #7e7049;background:linear-gradient(145deg,#f3eddd,#e1d8c3);box-shadow:0 10px 24px #0004,inset 0 1px #fff}.cengel-board{min-height:225px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px}.cengel-slot-title{width:100%;display:flex;justify-content:space-between;color:#5a604b;font-size:9px;font-weight:700;letter-spacing:.12em}.cengel-slot-title span{color:#8c7742}.cengel-slots{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}.cengel-letter{width:clamp(25px,4vw,39px);height:clamp(30px,5vw,45px);display:grid;place-items:center;border:1px solid #a89d80;background:linear-gradient(145deg,#fffdf4,#e7dfcd);box-shadow:0 3px 0 #b5aa8c;color:#394032;font:500 clamp(17px,3vw,25px) var(--serif)}.cengel-letter.current{border-color:#a48741;background:#ddce9e;box-shadow:0 3px 0 #8e7848}.cengel-input-label{display:grid;gap:6px;width:100%;color:#73745e;font-size:8px;font-weight:700;letter-spacing:.13em}.cengel-answer-input{width:100%;padding:10px;border:1px solid #9b8a5a;background:#fbf7eb;color:#293127;text-align:center;text-transform:uppercase;font:600 18px var(--sans);letter-spacing:.22em;outline:none}.cengel-answer-input:focus{box-shadow:0 0 0 3px #c5ae6a55}.cengel-board-caption{display:flex;justify-content:space-between;margin:8px 0 0;color:#77715b;font-size:7px;letter-spacing:.1em}.cengel-board-caption span:first-child{color:#897544;font-weight:700}.cengel-right{min-width:0}.cengel-current-clue{min-height:80px;padding:11px 13px;border:1px solid #796c47;background:linear-gradient(135deg,#293326,#20291f);box-shadow:inset 0 1px #fff1}.cengel-clue-eyebrow{display:flex;justify-content:space-between;color:#d6c17c;font-size:7px;font-weight:700;letter-spacing:.15em}.cengel-clue-eyebrow span{color:#9ea48f}.cengel-current-clue p{margin:9px 0 0;color:#f1ead7;font:500 17px/1.3 var(--serif)}.cengel-clue-list{display:grid;grid-template-columns:1fr 1fr;gap:5px;max-height:160px;overflow:auto;margin:9px 0;padding-right:3px}.cengel-clue-item{min-height:34px;display:flex;align-items:center;gap:7px;padding:5px 7px;border:1px solid #3d493a;background:#20291f;color:#c0c4b4;text-align:left;font:8px/1.25 var(--sans);cursor:pointer}.cengel-clue-item b{color:#d4bf7b;font:500 11px var(--serif);flex:0 0 17px}.cengel-clue-item span{flex:1}.cengel-clue-item i{color:#929b85;font-size:7px;font-style:normal;white-space:nowrap}.cengel-clue-item.selected{border-color:#9a8751;background:#2b3426;color:#f0ead8}.cengel-clue-item.solved i{color:#d7c37e}.cengel-keyboard{position:relative;display:grid;gap:4px;margin:9px auto 0;max-width:420px}.cengel-key-row{display:flex;justify-content:center;gap:3px}.cengel-key-row button,.cengel-backspace{min-width:22px;height:27px;padding:0 4px;border:1px solid #5b654f;background:linear-gradient(145deg,#35402f,#252e24);box-shadow:0 2px 0 #11180f;color:#eee6ce;font:500 9px var(--sans);cursor:pointer}.cengel-key-row button:hover,.cengel-backspace:hover{border-color:#d0b96f;color:#fff0c5}.cengel-backspace{position:absolute;right:0;bottom:0;transform:translateY(0);width:31px;color:#d3c17e}.cengel-actions{display:flex;justify-content:space-between;align-items:center;margin-top:9px}.cengel-hint,.cengel-reset{border:0;border-bottom:1px solid #677159;padding:5px 0;background:transparent;color:#c8c3ad;font:500 8px var(--sans);cursor:pointer}.cengel-hint{border:0;display:flex;align-items:center;gap:7px}.cengel-hint b{display:grid;place-items:center;width:18px;height:18px;border:1px solid #777554;border-radius:50%;color:#e2d5ae;font-size:8px}.cengel-hint:disabled,.cengel-reset:disabled,.cengel-check:disabled{opacity:.45;cursor:default}.cengel-feedback{min-height:17px;margin:7px 0;color:#aeb5a5;font-size:9px}.cengel-feedback.error{color:#e0a593}.cengel-feedback.success{color:#d5c27f}.cengel-check{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:39px;padding:0 13px;border:1px solid #d7c27f;background:linear-gradient(145deg,#e6d59f,#b89d5b);box-shadow:0 4px 0 #796741,0 8px 13px #0004,inset 0 1px 0 #fff9;color:#22271d;font:700 8px var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.cengel-check span{font-size:15px}.cengel-foot{display:flex;justify-content:space-between;border-top:1px solid #3d4839;margin-top:13px;padding-top:10px;color:#7e8776;font-size:7px;letter-spacing:.15em}.cengel-count{color:#c3b681}
@media(max-width:650px){.modal.cengel-modal{width:min(490px,100%);max-height:94dvh;padding:26px 20px 18px;overflow:auto}.cengel-modal:before{inset:7px}.cengel-modal>.h2{font-size:28px}.cengel-modal>h2{font-size:28px}.cengel-modal .modal-close{right:15px;top:14px}.cengel-layout{grid-template-columns:1fr;gap:12px}.cengel-left{min-height:200px;padding:12px}.cengel-board{min-height:160px;gap:11px}.cengel-clue-list{max-height:170px}.cengel-key-row button{height:31px;min-width:24px;font-size:10px}.cengel-backspace{height:31px}.cengel-current-clue p{font-size:16px}.cengel-meta{font-size:7px}}

/* Live crossword grid overrides the earlier answer-slot concept. */
.cengel-left{min-width:0;min-height:0;display:block;padding:12px;background:linear-gradient(145deg,#f3eddd,#e1d8c3)}
.cengel-board-viewport{width:100%;overflow:auto;overscroll-behavior-inline:contain;padding:2px 0 6px}
.cengel-board{display:grid;width:max-content;min-height:0;height:auto;aspect-ratio:auto;flex:none;gap:1px;justify-content:stretch;align-content:stretch;align-items:stretch;justify-items:stretch;padding:2px;background:#7d765f;border:1px solid #8c805a;box-shadow:0 6px 15px #0003}
.cengel-cell{position:relative;display:grid;place-items:center;min-width:0;min-height:0;padding:0;border:0;border-radius:0}
.cengel-cell.block{background:#344134;box-shadow:inset 0 0 0 1px #4d5b47}
.cengel-cell.letter-cell{background:linear-gradient(145deg,#fffdf5,#e7dfcd);color:#30382d;cursor:pointer;box-shadow:inset 0 0 0 1px #b2a98f}
.cengel-cell.letter-cell b{font:600 clamp(8px,1.65vw,16px)/1 var(--serif)}
.cengel-cell.letter-cell i{position:absolute;z-index:1;top:1px;left:2px;color:#796a42;font:600 clamp(5px,.65vw,8px)/1 var(--sans);font-style:normal}
.cengel-cell.letter-cell.active{z-index:1;background:#ddce9e;box-shadow:inset 0 0 0 2px #a48741}
.cengel-cell.letter-cell.revealed:not(.active){background:linear-gradient(145deg,#e8dfc8,#cfc4a7);box-shadow:inset 0 0 0 2px #b49b58}
.cengel-cell.letter-cell:focus-visible{outline:2px solid #74602d;outline-offset:-2px}
.cengel-clue-tabs{display:flex;gap:6px;margin:9px 0 6px}
.cengel-clue-tabs button{flex:1;padding:7px 9px;border:1px solid #3e493a;background:#20291f;color:#aeb5a3;font:700 8px var(--sans);letter-spacing:.09em;cursor:pointer}
.cengel-clue-tabs button.active{border-color:#9a8751;background:#2b3426;color:#e8d89e}
.cengel-clue-tabs b{margin-left:5px;color:#c7b879;font-size:8px}
.cengel-clue-item{font-size:9px;min-height:39px}
.cengel-clue-item.selected{box-shadow:inset 0 0 0 1px #a58c50}
.cengel-unavailable{padding:18px;border:1px solid #796c47;background:#20291f;color:#e6d9b8;font:14px/1.5 var(--serif)}
@media(max-width:650px){.cengel-left{padding:8px}.cengel-board{margin:0}.cengel-cell.letter-cell b{font-size:clamp(8px,2.4vw,13px)}.cengel-cell.letter-cell i{font-size:clamp(5px,1.2vw,7px)}.cengel-clue-list{max-height:200px}}

/* The cover has two explicit faces; hide the printed front as it passes the spine. */
.page-turn-sheet.cover-sheet{backface-visibility:visible;-webkit-backface-visibility:visible}
.page-turn-sheet.cover-sheet .turn-cover-face{backface-visibility:hidden!important;-webkit-backface-visibility:hidden!important;transform-style:flat!important;animation:cover-front-side .72s linear forwards!important}
.page-turn-sheet.cover-sheet .cover-inside-face{backface-visibility:hidden;-webkit-backface-visibility:hidden;animation:cover-inside-side .72s linear forwards}
@keyframes cover-front-side{0%,42%{opacity:1}43%,100%{opacity:0}}
@keyframes cover-inside-side{0%,42%{opacity:0}43%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.page-turn-sheet.cover-sheet .turn-cover-face,.page-turn-sheet.cover-sheet .cover-inside-face{animation-duration:.01ms!important}}

/* BLMACA premium wordmark */
.brand{gap:0}
.brand-logo{display:block;width:184px;height:auto}
.cover-brand-logo{display:block;width:min(53%,198px);height:auto;flex:0 1 auto}
.cover-brandline{align-items:center}
.cover-brandline small{flex:0 0 auto}
@media(max-width:760px){.brand-logo{width:158px}.cover-brand-logo{width:min(53%,165px)}}
@media(max-width:480px){.brand-logo{width:145px}.cover-brand-logo{width:min(52%,137px)}}

/* Daily Word Hunt: date-specific five-round menu and touch-selectable paper grid. */
.modal.wordsearch-modal{width:min(700px,100%);max-height:min(94vh,940px);overflow:auto;padding:31px 34px 22px;border:1px solid #88794e;background:radial-gradient(ellipse at 50% -20%,#354231 0,#1d261e 46%,#141a15 100%);box-shadow:0 34px 110px #000c,inset 0 0 0 5px #ffffff05,inset 0 0 50px #0004;color:#f0eddf}
.wordsearch-modal:before{content:"";position:absolute;inset:10px;border:1px solid #d4be7952;pointer-events:none}.wordsearch-modal>.eyebrow,.wordsearch-modal>h2,.wordsearch-modal>.modal-description{position:relative}.wordsearch-modal>.eyebrow{margin:0 0 8px;color:#cfb978;font-size:8px;letter-spacing:.22em}.wordsearch-modal>h2{font:500 33px/.98 var(--serif);letter-spacing:-.035em;margin:0 0 8px;color:#f3edda}.wordsearch-modal>.modal-description{max-width:560px;margin:0 0 15px;color:#b8bdad;font:italic 12px/1.6 var(--serif)}.wordsearch-modal .modal-close{z-index:2;top:19px;right:20px;width:34px;height:34px;border:1px solid #82815f;border-radius:50%;color:#d9cfad}
.wordsearch-session{position:relative;border-top:1px solid #485342;padding-top:12px}.wordsearch-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;color:#d2c182;font-size:8px;letter-spacing:.12em}.wordsearch-meta label{display:flex;align-items:center;gap:8px;color:#929a89;font-size:7px}.wordsearch-date{width:126px;padding:5px 7px;border:1px solid #525d49;background:#1a211a;color:#e9e3d1;font:10px var(--sans);color-scheme:dark}.wordsearch-back{padding:5px 0;border:0;background:none;color:#d2c182;font:700 8px var(--sans);letter-spacing:.08em;cursor:pointer}.wordsearch-daily-summary{display:flex;justify-content:space-between;align-items:center;margin:4px 0 9px;color:#d7c37e;font-size:8px;letter-spacing:.12em}.wordsearch-daily-summary b{color:#8f9885;font-size:7px}.wordsearch-round-list{display:grid;gap:6px}.wordsearch-round{display:flex;align-items:center;gap:11px;width:100%;min-height:55px;padding:8px 11px;text-align:left;border:1px solid #3e493a;background:#20291f;color:#f0ead8;cursor:pointer}.wordsearch-round:hover:not(:disabled),.wordsearch-round:focus-visible{border-color:#a58c50;background:#293326}.wordsearch-round.featured{border-color:#89784a;background:linear-gradient(115deg,#2d382a,#20281f)}.wordsearch-round:disabled{opacity:.48;cursor:not-allowed}.wordsearch-round-index{display:grid;place-items:center;width:31px;height:31px;flex:0 0 31px;border:1px solid #5c654d;color:#d7c37e;font:500 12px var(--serif)}.wordsearch-round.done .wordsearch-round-index{background:#596a4f;color:#f0ead8}.wordsearch-round-copy{flex:1;min-width:0}.wordsearch-round-copy b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 13px var(--serif)}.wordsearch-round-copy small{display:block;margin-top:3px;color:#a6ad9c;font-size:8px;letter-spacing:.05em}.wordsearch-round-progress{display:flex;align-items:center;gap:9px;color:#b9ac76;font-size:7px;letter-spacing:.08em;white-space:nowrap}.wordsearch-round-progress i{font-size:14px;font-style:normal}.wordsearch-unlock-note{margin:9px 0;color:#8f9885;font:italic 10px var(--serif)}.wordsearch-foot{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #3d4839;margin-top:10px;padding-top:8px;color:#7e8776;font-size:7px;letter-spacing:.12em}.wordsearch-foot span:last-child{color:#c3b681}
.wordsearch-play-heading{display:flex;justify-content:space-between;align-items:end;margin:9px 0 7px}.wordsearch-play-heading>div>span{color:#c6b477;font-size:7px;font-weight:700;letter-spacing:.15em}.wordsearch-play-heading h3{margin:4px 0 0;color:#f1ead7;font:500 20px var(--serif)}.wordsearch-play-heading>b{color:#e1ce8a;font:500 21px var(--serif)}.wordsearch-play-heading>b i{color:#89917f;font-size:11px;font-style:normal}.wordsearch-progress{height:3px;margin:0 0 10px;background:#333d31}.wordsearch-progress span{display:block;height:100%;background:linear-gradient(90deg,#a58e55,#e5d193);transition:width .2s}.wordsearch-board-wrap{width:100%;overflow:auto;overscroll-behavior:contain;padding:7px;border:1px solid #89794e;background:linear-gradient(145deg,#f3eddd,#e1d8c3);box-shadow:0 7px 18px #0004,inset 0 1px #fff}.wordsearch-board{display:grid;width:min(100%,520px);aspect-ratio:1;margin:0 auto;grid-template-columns:repeat(var(--grid-size),minmax(0,1fr));grid-template-rows:repeat(var(--grid-size),minmax(0,1fr));gap:1px;padding:2px;background:#94896c;touch-action:none;user-select:none}.wordsearch-cell{min-width:0;min-height:0;padding:0;border:0;border-radius:0;background:linear-gradient(145deg,#fffdf5,#e7dfcd);color:#30382d;font:600 clamp(8px,2vw,14px)/1 var(--serif);cursor:pointer;touch-action:none}.wordsearch-cell.selecting{background:#ddce9e;color:#272b21;box-shadow:inset 0 0 0 1px #a48741}.wordsearch-cell.word-found{background:#65765b;color:#fffdf1}.wordsearch-cell.hinted{background:#d7c17b;color:#24271e;animation:wordsearch-hint-pulse .55s ease-in-out 2}@keyframes wordsearch-hint-pulse{50%{filter:brightness(1.25)}}
.wordsearch-words-head{display:flex;justify-content:space-between;align-items:center;margin:10px 1px 6px}.wordsearch-words-head b{color:#f1ead7;font:500 14px var(--serif)}.wordsearch-words-head span{color:#929a89;font-size:6px;letter-spacing:.1em}.wordsearch-words{display:flex;flex-wrap:wrap;gap:4px;max-height:83px;overflow:auto}.wordsearch-word{padding:5px 7px;border:1px solid #3e493a;background:#20291f;color:#c0c4b4;font:600 8px var(--sans);letter-spacing:.04em}.wordsearch-word.found{border-color:#746946;background:#394533;color:#e2d5ae;text-decoration:line-through}.wordsearch-feedback{min-height:16px;margin:7px 0;color:#c8c3ad;font-size:8px}.wordsearch-feedback.error{color:#e0a593}.wordsearch-actions{display:flex;justify-content:space-between;align-items:center;margin:5px 0 9px}.wordsearch-hint,.wordsearch-reset{padding:5px 0;border:0;border-bottom:1px solid #677159;background:none;color:#c8c3ad;font:600 8px var(--sans);letter-spacing:.05em;cursor:pointer}.wordsearch-hint{border:0;color:#d7c37e}.wordsearch-hint b{display:inline-grid;place-items:center;width:17px;height:17px;margin-left:4px;border:1px solid #777554;border-radius:50%;color:#e2d5ae}.wordsearch-next{width:100%;min-height:38px;padding:0 12px;border:1px solid #d7c27f;background:linear-gradient(145deg,#e6d59f,#b89d5b);box-shadow:0 3px 0 #796741;color:#22271d;font:700 8px var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.wordsearch-next:disabled{border-color:#505a49;background:linear-gradient(145deg,#303a2d,#242d23);box-shadow:none;color:#7e8878;cursor:not-allowed}.wordsearch-message{padding:18px;border:1px solid #796c47;background:#20291f;color:#e6d9b8;font:14px/1.5 var(--serif)}
@media(max-width:650px){.modal.wordsearch-modal{width:min(490px,100%);max-height:94dvh;padding:25px 19px 17px;overflow:auto}.wordsearch-modal:before{inset:7px}.wordsearch-modal>h2{font-size:28px}.wordsearch-modal>.modal-description{font-size:10px;margin-bottom:11px}.wordsearch-modal .modal-close{right:14px;top:13px}.wordsearch-session{padding-top:10px}.wordsearch-round{min-height:52px;padding:7px 8px;gap:8px}.wordsearch-round-copy b{font-size:12px}.wordsearch-round-progress{gap:5px}.wordsearch-board-wrap{padding:5px}.wordsearch-board{gap:1px}.wordsearch-cell{font-size:clamp(7px,2.35vw,12px)}.wordsearch-words{max-height:75px}.wordsearch-word{padding:4px 5px;font-size:7px}}

/* Word Hunt mobile app layout: full-screen play area and comfortable touch controls. */
@media(max-width:600px){
  .magazine-app{padding:10px 0 16px}
  .magazine-topline{padding:0 12px 8px;font-size:7px;letter-spacing:.1em}
  .magazine-stage{min-height:0;align-items:center;padding:10px 12px 12px;overflow:visible}
  .physical-cover .cover-turn{right:12px;top:auto;bottom:40px;width:min(132px,42%);height:44px;min-height:44px;padding:4px 8px;font-size:clamp(8px,2.1vw,9px);transform:none;z-index:5}
  .physical-cover .cover-turn:hover{transform:translateY(-2px)}
  .physical-spread{width:100%;height:auto;min-height:0;grid-template-columns:minmax(0,1fr);gap:0;transform:none;filter:none}
  .physical-spread:before{display:none}
  .paper-leaf,.left-leaf,.right-leaf{display:none;height:auto;min-height:min(510px,calc(100svh - 240px));overflow:visible;padding:22px 22px 52px;box-shadow:0 8px 22px #0003,inset 0 0 20px #72674416}
  .paper-leaf.mobile-leaf-active{display:block}
  .paper-masthead{font-size:9px;letter-spacing:.12em}
  .paper-kicker{font-size:8px;letter-spacing:.15em;margin-top:18px}
  .paper-leaf h2{font-size:clamp(30px,9vw,42px);margin:8px 0}
  .paper-intro{font-size:13px;line-height:1.55;margin-bottom:16px}
  .paper-body{font-size:12px;line-height:1.7}
  .paper-footer{left:22px;right:22px;font-size:8px}
  .paper-link{font-size:10px;padding:8px 0}
  .paper-link span{margin-left:10px}
  .classic-list,.classics-page .classic-list{gap:9px;margin-top:17px}
  .classic-puzzle,.classics-page .classic-puzzle{min-height:78px;grid-template-columns:58px minmax(0,1fr) 16px;gap:10px;padding:8px 10px}
  .classic-art,.classics-page .classic-art{width:56px;height:58px;font-size:10px}
  .classics-page .word-mini{font-size:7px}
  .classic-info{gap:5px}
  .classic-info b,.classics-page .classic-info b{font-size:15px}
  .classic-info small,.classics-page .classic-info small{font-size:9px}
  .classic-puzzle>i,.classics-page .classic-puzzle>i{font-size:16px}
  .paper-footer{bottom:17px}
  .page-controls{min-height:48px;margin:0 12px;padding-bottom:env(safe-area-inset-bottom)}
  .modal-backdrop.wordsearch-open{padding:0;place-items:stretch}
  .modal.wordsearch-modal{width:100%;height:100dvh;max-height:100dvh;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:calc(env(safe-area-inset-top) + 20px) 16px calc(env(safe-area-inset-bottom) + 16px);border:0;box-shadow:none}
  .wordsearch-modal:before{inset:6px}
  .wordsearch-modal>.eyebrow{font-size:10px;letter-spacing:.16em;margin:0 52px 8px 0}
  .wordsearch-modal>h2{font-size:30px;margin-right:42px}
  .wordsearch-modal>.modal-description{font-size:13px;line-height:1.5;margin:0 0 14px}
  .wordsearch-modal .modal-close{position:fixed;top:calc(env(safe-area-inset-top) + 12px);right:12px;width:44px;height:44px;display:grid;place-items:center;background:#20281f;border:1px solid #80744d;border-radius:50%;font-size:28px}
  .wordsearch-session{padding-top:12px}
  .wordsearch-meta{flex-wrap:wrap;font-size:10px;letter-spacing:.08em;gap:8px}
  .wordsearch-back{min-height:44px;font-size:10px}
  .wordsearch-meta label{font-size:9px}
  .wordsearch-date{min-height:40px;width:142px;padding:7px;font-size:12px}
  .wordsearch-round{min-height:62px;padding:9px;gap:9px}
  .wordsearch-round-index{width:36px;height:36px;flex-basis:36px;font-size:14px}
  .wordsearch-round-copy b{font-size:14px}
  .wordsearch-round-copy small{font-size:10px}
  .wordsearch-round-progress{font-size:9px;gap:6px}
  .wordsearch-daily-summary{font-size:10px}
  .wordsearch-daily-summary b{font-size:9px}
  .wordsearch-unlock-note{font-size:12px;line-height:1.45}
  .wordsearch-foot{font-size:9px;letter-spacing:.07em}
  .wordsearch-play-heading{margin:8px 0}
  .wordsearch-play-heading>div>span{font-size:9px}
  .wordsearch-play-heading h3{font-size:22px}
  .wordsearch-play-heading>b{font-size:24px}
  .wordsearch-progress{height:4px;margin-bottom:10px}
  .wordsearch-board-wrap{padding:5px}
  .wordsearch-board{width:min(100%,520px);gap:1px}
  .wordsearch-cell{font-size:clamp(10px,3.15vw,15px)}
  .wordsearch-words-head{margin:12px 1px 7px}
  .wordsearch-words-head b{font-size:16px}
  .wordsearch-words-head span{font-size:8px}
  .wordsearch-words{max-height:112px;gap:6px}
  .wordsearch-word{min-height:30px;display:inline-flex;align-items:center;padding:5px 8px;font-size:10px}
  .wordsearch-feedback{min-height:22px;margin:9px 0;font-size:12px;line-height:1.4}
  .wordsearch-actions{gap:10px;margin:7px 0 12px}
  .wordsearch-hint,.wordsearch-reset{min-height:44px;padding:8px 4px;font-size:11px}
  .wordsearch-hint b{width:22px;height:22px}
  .wordsearch-next{min-height:48px;font-size:10px}
}



@media(max-width:650px){
  .modal.sudoku-modal .modal-close,.modal.cengel-modal .modal-close{position:sticky;top:8px;display:grid;place-items:center;width:44px;height:44px;margin-left:auto;margin-bottom:-44px;right:auto;z-index:5;background:#20281f;border:1px solid #80744d;border-radius:50%;font-size:26px}
}

/* Inside-cover stock used when the reader turns back from the first spread. */
.cover-reverse-face{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:24px;background:linear-gradient(145deg,#eee8d8,#d8cfba);color:#263144;text-align:center;box-shadow:inset 0 0 0 8px #e6decb,inset 0 0 0 9px #b8a774}
.cover-reverse-face>span{font:600 24px var(--serif);letter-spacing:.16em}
.cover-reverse-face>i{width:44px;height:1px;background:#a08a56}
.cover-reverse-face>small{font:700 9px/1.8 var(--sans);letter-spacing:.13em;color:#6b634f}
.cengel-backspace{position:static;transform:none;width:auto;min-width:31px}
@media(max-width:650px){.cengel-key-row button,.cengel-backspace{height:40px;min-width:24px}.cengel-backspace{width:40px}}

/* Nonogram: a compact, touch-first logic board in the collection's dark-green edition style. */
.modal.nonogram-modal{width:min(690px,100%);max-height:min(94vh,900px);overflow:auto;padding:29px 32px 19px;border:1px solid #88794e;background:radial-gradient(ellipse at 50% -20%,#354231 0,#1d261e 46%,#141a15 100%);box-shadow:0 34px 110px #000c,inset 0 0 0 5px #ffffff05,inset 0 0 50px #0004;color:#f0eddf}
.nonogram-modal:before{content:"";position:absolute;inset:9px;border:1px solid #d4be7952;pointer-events:none}
.nonogram-modal>.eyebrow,.nonogram-modal>h2,.nonogram-modal>.modal-description{position:relative}
.nonogram-modal>.eyebrow{margin:0 0 7px;color:#cfb978;font-size:8px;letter-spacing:.22em}
.nonogram-modal>h2{font:500 33px/.98 var(--serif);letter-spacing:-.035em;margin:0 0 7px;color:#f3edda}
.nonogram-modal>.modal-description{max-width:560px;margin:0;color:#b8bdad;font:italic 12px/1.55 var(--serif)}
.nonogram-modal .modal-close{z-index:2;top:18px;right:19px;width:36px;height:36px;border:1px solid #82815f;border-radius:50%;color:#d9cfad;font-size:23px}
.nonogram-session{position:relative;margin:16px -32px 0;padding:12px 32px 0;background:linear-gradient(180deg,#20291f 0,#171e18 100%);border-top:1px solid #657052}
.nonogram-session-top,.nonogram-foot{display:flex;align-items:center;justify-content:space-between;color:#c8c4ad;font-size:8px;font-weight:700;letter-spacing:.13em}
.nonogram-session-top>span:first-child{display:flex;align-items:center;gap:6px;color:#eadba9}
.nonogram-session-top i{width:7px;height:7px;border-radius:50%;background:#dfc77c;box-shadow:0 0 10px #dfc77c55}
.nonogram-session-top em{font-style:italic;color:#d2c8a4}
.nonogram-difficulty{color:#89927f;font-size:7px;letter-spacing:.14em}
.nonogram-progress{height:3px;margin:7px 0 9px;background:#394333;overflow:hidden}
.nonogram-progress span{display:block;height:100%;background:linear-gradient(90deg,#bc9c50,#eed793);transition:width .2s}
.nonogram-levels{display:flex;gap:6px;overflow-x:auto;padding:1px 1px 7px;scrollbar-width:none}
.nonogram-levels::-webkit-scrollbar{display:none}
.nonogram-level{width:31px;height:31px;flex:0 0 31px;padding:0;border:1px solid #354031;border-radius:50%;background:#1a211b;color:#697362;font:700 8px var(--sans);cursor:pointer}
.nonogram-level.active{border-color:#e2c875;background:linear-gradient(145deg,#e5ce86,#b49349);color:#282a1e;box-shadow:0 0 0 3px #d6bc6730}
.nonogram-level.done{border-color:#737c5c;color:#e0d19a}
.nonogram-level:disabled{opacity:.42;cursor:not-allowed}
.nonogram-play{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:22px;padding:9px 0 4px}
.nonogram-board-frame{width:min(100%,440px);margin:0 auto;padding:9px;border:1px solid #97885a;background:linear-gradient(145deg,#283126,#161e18);box-shadow:0 10px 28px #0004}
.nonogram-board{display:grid;grid-template-columns:minmax(23px,.8fr) repeat(var(--nonogram-size),minmax(0,1fr));gap:2px;align-items:stretch;width:100%;user-select:none}
.nonogram-corner{min-width:0}
.nonogram-column-clue{display:flex;min-width:0;min-height:38px;flex-direction:column;justify-content:flex-end;align-items:center;gap:1px;padding-bottom:3px;color:#d6cba9;font:600 clamp(8px,1.65vw,11px)/1 var(--sans)}
.nonogram-row-clue{display:flex;justify-content:flex-end;align-items:center;padding-right:5px;color:#d6cba9;font:600 clamp(8px,1.65vw,11px)/1 var(--sans);letter-spacing:.02em;white-space:nowrap}
.nonogram-row-clue.complete,.nonogram-column-clue.complete{color:#d4b764}
.nonogram-cell{position:relative;display:grid;place-items:center;min-width:0;aspect-ratio:1;padding:0;border:1px solid #a69a78;background:linear-gradient(145deg,#eee8d7,#d8cfb7);color:#8b7745;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .12s,border-color .12s,transform .12s}
.nonogram-cell:nth-child(5n){border-right-color:#d4bd79}
.nonogram-cell.filled{border-color:#dfc775;background:linear-gradient(145deg,#dfca83,#b89a50);box-shadow:inset 0 0 0 1px #f0dfaa;color:#25291f}
.nonogram-cell.marked-empty{background:#222b22;border-color:#4b5948;color:#aab49b;font:500 16px/1 var(--sans)}
.nonogram-cell:active{transform:scale(.92)}
.nonogram-cell:focus-visible,.nonogram-level:focus-visible,.nonogram-actions button:focus-visible,.nonogram-next:focus-visible{outline:2px solid #f0d98b;outline-offset:2px}
.nonogram-cell:disabled{cursor:default}
.nonogram-tools{min-width:0}
.nonogram-rule{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid #46513e;background:#1b241c}
.nonogram-rule>span{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border:1px solid #9c8953;border-radius:50%;color:#e0c879;font-size:14px}
.nonogram-rule p{margin:0;color:#eee8d8;font:500 14px/1.45 var(--serif)}
.nonogram-rule p small{color:#aeb4a4;font:500 9px/1.5 var(--sans)}
.nonogram-instruction{margin:11px 0 5px;color:#949e88;font-size:7px;font-weight:700;letter-spacing:.13em}
.nonogram-instruction i{color:#d7c27c;font-style:normal}
.nonogram-feedback{min-height:27px;margin:0 0 4px;color:#d5c17b;font:italic 10px/1.35 var(--serif)}
.nonogram-feedback.error{color:#e0a394}.nonogram-feedback.success{color:#c9d29e}
.nonogram-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.nonogram-actions button,.nonogram-next{min-height:37px;padding:7px 8px;border:1px solid #59634d;background:#202a20;color:#d8d0b6;font:600 8px var(--sans);letter-spacing:.03em;cursor:pointer}
.nonogram-actions .nonogram-check{grid-column:1/-1;border-color:#c2a75c;background:linear-gradient(120deg,#ddc678,#b99c56);color:#23271e;font-weight:700}
.nonogram-actions button:disabled{opacity:.45;cursor:default}
.nonogram-next{width:100%;margin-top:5px;border-color:#bda65e;background:#263126;color:#e8d89e}
.nonogram-next[hidden]{display:none}
.nonogram-foot{margin-top:8px;padding-top:8px;border-top:1px solid #3c4538;color:#77816e;font-size:6px;letter-spacing:.12em}
@media(max-width:600px){
  .modal-backdrop.open .modal.nonogram-modal{width:100%;height:100dvh;max-height:100dvh;min-height:0;margin:0;display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none;padding:calc(env(safe-area-inset-top) + 13px) 14px calc(env(safe-area-inset-bottom) + 8px);border:0;box-shadow:none}
  .nonogram-modal:before{inset:5px}
  .nonogram-modal>.eyebrow{font-size:7px;margin:0 48px 4px 0}
  .nonogram-modal>h2{font-size:27px;line-height:1;margin:0 44px 4px 0}
  .nonogram-modal>.modal-description{font-size:10px;line-height:1.35;margin:0 38px 6px 0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
  .nonogram-modal .modal-close{position:absolute;top:calc(env(safe-area-inset-top) + 10px);right:12px;width:40px;height:40px;display:grid;place-items:center;background:#20281f;border:1px solid #80744d;border-radius:50%;font-size:25px}
  .nonogram-modal #game-area{display:flex;flex:1;min-height:0;overflow:hidden}
  .nonogram-modal>.feedback{display:none}
  .nonogram-session{display:flex;flex:1;min-height:0;flex-direction:column;margin:3px -14px 0;padding:7px 14px 0;overflow:hidden}
  .nonogram-session-top{flex:0 0 17px;font-size:7px}
  .nonogram-progress{flex:0 0 3px;margin:5px 0 6px}
  .nonogram-levels{flex:0 0 35px;gap:5px;padding-bottom:5px}
  .nonogram-level{width:28px;height:28px;flex-basis:28px;font-size:7px}
  .nonogram-play{display:flex;flex:1;min-height:0;flex-direction:column;justify-content:center;gap:6px;padding:2px 0 0}
  .nonogram-board-frame{width:min(100%,440px,calc(100dvh - 310px));max-width:100%;padding:6px}
  /* Center the playable squares within the frame; keep the row clues in a
     compact gutter that extends to the left of the centered cell matrix. */
  .nonogram-board{position:relative;left:clamp(-18px,-4vw,-14px);gap:1px;grid-template-columns:clamp(28px,8vw,36px) repeat(var(--nonogram-size),minmax(0,1fr))}
  .nonogram-column-clue{min-height:clamp(25px,7dvh,40px);font-size:clamp(7px,2vw,10px)}
  .nonogram-row-clue{padding-right:3px;font-size:clamp(7px,2vw,10px)}
  .nonogram-cell{border-width:1px}
  .nonogram-cell.marked-empty{font-size:clamp(11px,4vw,15px)}
  .nonogram-tools{width:min(100%,440px);flex:0 0 auto}
  .nonogram-rule{padding:6px 8px;gap:7px}
  .nonogram-rule>span{flex-basis:19px;width:19px;height:19px;font-size:12px}
  .nonogram-rule p{font-size:12px;line-height:1.3}
  .nonogram-rule p small{font-size:8px}
  .nonogram-instruction{margin:5px 0 2px;font-size:6px}
  .nonogram-feedback{min-height:19px;margin:0;font-size:9px}
  .nonogram-actions{grid-template-columns:1fr 1fr 1.25fr;gap:5px}
  .nonogram-actions button,.nonogram-next{min-height:37px;padding:5px 4px;font-size:7px}
  .nonogram-actions .nonogram-check{grid-column:auto}
  .nonogram-next{margin-top:4px}
  .nonogram-foot{flex:0 0 16px;margin-top:5px;padding-top:5px;font-size:5px}
}
@media(max-width:600px) and (max-height:720px){
  .modal-backdrop.open .modal.nonogram-modal{padding-top:calc(env(safe-area-inset-top) + 8px);padding-bottom:calc(env(safe-area-inset-bottom) + 4px)}
  .nonogram-modal>.eyebrow{margin-bottom:2px}
  .nonogram-modal>h2{font-size:24px;margin-bottom:2px}
  .nonogram-modal>.modal-description{font-size:9px;margin-bottom:3px}
  .nonogram-session{margin-top:2px;padding-top:4px}
  .nonogram-session-top{flex-basis:15px}
  .nonogram-progress{margin:3px 0 4px}
  .nonogram-levels{flex-basis:30px;gap:4px}
  .nonogram-level{width:25px;height:25px;flex-basis:25px}
  .nonogram-play{gap:4px}
  .nonogram-board-frame{width:min(100%,440px,calc(100dvh - 285px));padding:4px}
  .nonogram-column-clue{min-height:23px}
  .nonogram-rule{padding:4px 7px}
  .nonogram-instruction{margin:3px 0 1px}
  .nonogram-feedback{min-height:15px;font-size:8px}
  .nonogram-actions button,.nonogram-next{min-height:32px}
  .nonogram-foot{display:none}
}

/* Playable Kare Bulmaca and Amiral Battı. */
.modal.squares-modal,.modal.battleship-modal{width:min(790px,100%);max-height:min(94vh,900px);overflow:auto;padding:29px 32px 18px;border:1px solid #88794e;background:radial-gradient(ellipse at 50% -20%,#354231 0,#1d261e 46%,#141a15 100%);box-shadow:0 34px 110px #000c,inset 0 0 0 5px #ffffff05,inset 0 0 50px #0004;color:#f0eddf}
.squares-modal:before,.battleship-modal:before{content:"";position:absolute;inset:9px;border:1px solid #d4be7952;pointer-events:none}
.squares-modal>.eyebrow,.squares-modal>h2,.squares-modal>.modal-description,.battleship-modal>.eyebrow,.battleship-modal>h2,.battleship-modal>.modal-description{position:relative}
.squares-modal>.eyebrow,.battleship-modal>.eyebrow{margin:0 0 7px;color:#cfb978;font-size:8px;letter-spacing:.22em}
.squares-modal>h2,.battleship-modal>h2{font:500 33px/.98 var(--serif);letter-spacing:-.035em;margin:0 0 7px;color:#f3edda}
.squares-modal>.modal-description,.battleship-modal>.modal-description{max-width:620px;margin:0;color:#b8bdad;font:italic 12px/1.55 var(--serif)}
.squares-modal .modal-close,.battleship-modal .modal-close{z-index:2;top:18px;right:19px;width:36px;height:36px;border:1px solid #82815f;border-radius:50%;color:#d9cfad;font-size:23px}
.squares-session,.battleship-session{position:relative;margin:16px -32px 0;padding:12px 32px 0;background:linear-gradient(180deg,#20291f 0,#171e18 100%);border-top:1px solid #657052}
.squares-meta,.battleship-meta,.squares-foot,.battleship-foot{display:flex;align-items:center;justify-content:space-between;color:#c8c4ad;font-size:8px;font-weight:700;letter-spacing:.13em}
.squares-meta em{font-style:normal;color:#8e9880}.squares-meta strong{margin-left:8px;color:#d7c37e;font-size:7px;letter-spacing:.11em}
.squares-meta>span:first-child,.battleship-meta>span:first-child{display:flex;align-items:center;gap:7px;color:#eadba9}
.squares-meta i,.battleship-meta i{width:7px;height:7px;border-radius:50%;background:#dfc77c;box-shadow:0 0 10px #dfc77c55}
.squares-progress,.battleship-progress{height:3px;margin:8px 0 13px;background:#394333;overflow:hidden}
.squares-progress span,.battleship-progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,#bc9c50,#eed793);transition:width .2s}
.squares-levels,.battleship-levels{display:flex;gap:7px;overflow-x:auto;padding:1px 2px 8px;margin:-5px 0 7px;scrollbar-width:none;scrollbar-color:#81734d #273025}
.squares-levels::-webkit-scrollbar,.battleship-levels::-webkit-scrollbar{display:none}
.squares-level,.battleship-level{flex:0 0 27px;width:27px;height:27px;display:grid;place-items:center;padding:0;border:1px solid #414c3e;border-radius:50%;background:#1b231c;color:#788271;font:600 7px var(--sans);cursor:pointer;transition:.16s}
.squares-level:disabled,.battleship-level:disabled{cursor:not-allowed;opacity:.42}.squares-level:not(:disabled):hover,.battleship-level:not(:disabled):hover{border-color:#ccb66f;color:#e5d5a7}
.squares-level.active,.battleship-level.active{border-color:#d5bd78;background:linear-gradient(145deg,#e5d49e,#ad9254);color:#252a20;box-shadow:0 0 0 3px #d5bd7820,0 3px 8px #0005}
.squares-level.done,.battleship-level.done{border-color:#737c5c;color:#d8d9c3;background:linear-gradient(145deg,#3e4c38,#263126)}
.squares-layout,.battleship-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.84fr);gap:22px;align-items:center;max-width:690px;margin:0 auto}
.squares-board-wrap,.battleship-board-wrap{min-width:0;padding:10px;border:1px solid #97885a;background:linear-gradient(145deg,#283126,#161e18);box-shadow:0 10px 28px #0004}
.squares-board{display:grid;gap:2px;width:min(100%,380px);margin:auto;aspect-ratio:1;user-select:none}
.squares-cell{position:relative;display:grid;place-items:center;min-width:0;aspect-ratio:1;padding:0;border:1px solid #a69a78;background:linear-gradient(145deg,#eee8d7,#d8cfb7);color:#30372c;font:600 clamp(17px,3.3vw,25px) var(--serif);cursor:pointer;touch-action:manipulation}
.squares-cell i{position:absolute;top:2px;left:3px;color:#70654a;font:700 6px/1 var(--sans);font-style:normal}.squares-cell b{font:inherit}
.squares-cell.block{border:0;background:#101711;pointer-events:none}
.squares-cell.active{z-index:1;border-color:#dfc775;background:linear-gradient(145deg,#dfca83,#b89a50);box-shadow:inset 0 0 0 2px #f0dfaa}
.squares-cell.intersection:not(.active){box-shadow:inset 0 0 0 2px #c7b477}
.squares-cell.revealed:not(.active){background:linear-gradient(145deg,#e5dec9,#cfc5a6);box-shadow:inset 0 0 0 2px #b49b58;color:#5a513a}
.squares-cell:disabled{cursor:default}.squares-cell:focus-visible,.squares-key-row button:focus-visible,.squares-actions button:focus-visible,.battleship-cell:focus-visible,.battleship-actions button:focus-visible{outline:2px solid #f0d98b;outline-offset:2px}
.squares-caption,.battleship-caption{display:flex;justify-content:space-between;gap:8px;margin:8px 1px 0;color:#89917c;font-size:6px;font-weight:700;letter-spacing:.11em}
.squares-tools,.battleship-tools{min-width:0}
.squares-rule,.battleship-rule{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border:1px solid #46513e;background:#1b241c}
.squares-rule>span,.battleship-rule>span{display:grid;place-items:center;flex:0 0 22px;width:22px;height:22px;border:1px solid #9c8953;border-radius:50%;color:#e0c879;font-size:14px}
.squares-rule p,.battleship-rule p{display:grid;gap:3px;margin:0;color:#eee8d8;font:500 14px/1.2 var(--serif)}
.squares-rule small,.battleship-rule small{color:#aeb4a4;font:500 9px/1.5 var(--sans)}
.squares-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0 6px}
.squares-tabs button{min-height:29px;border:1px solid #46513e;background:#1b241c;color:#89917c;font:700 7px var(--sans);letter-spacing:.1em}
.squares-tabs button.active{border-color:#a18d53;color:#e4d29b;background:#30392a}
.squares-tabs b{margin-left:4px;color:#d3c17e}
.squares-clues{display:grid;gap:4px;max-height:102px;overflow:auto}
.squares-clue{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:6px;min-height:35px;padding:5px 7px;border:1px solid #354031;background:#20291f;color:#c5c7b7;text-align:left;cursor:pointer}
.squares-clue b{color:#d6c27c;font:700 8px var(--sans)}.squares-clue span{font:500 9px/1.35 var(--sans)}.squares-clue i{color:#89917c;font:700 7px var(--sans);font-style:normal}.squares-clue.selected{border-color:#9c8953;background:#30392a}.squares-clue.solved{color:#cdd4b9;border-color:#596449}.squares-clue.solved i{color:#d9c57f}
.squares-current{margin:7px 0;color:#d7c37e;font-size:7px;font-weight:700;letter-spacing:.1em}
.squares-keyboard{display:grid;gap:4px}
.squares-key-row{display:flex;justify-content:center;gap:3px}
.squares-key-row button{flex:1;min-width:0;min-height:30px;padding:0 2px;border:1px solid #4a5644;background:linear-gradient(145deg,#303a2d,#20291f);color:#e8e1cb;font:600 9px var(--sans);cursor:pointer}
.squares-key-row .squares-backspace{flex:0 0 32px;color:#d5c17b}.squares-key-row button:disabled{opacity:.45}
.squares-feedback,.battleship-feedback{min-height:20px;margin:5px 0 3px;color:#c9d29e;font:italic 9px/1.4 var(--serif)}
.squares-feedback.error,.battleship-feedback.error{color:#e0a394}.squares-feedback.success,.battleship-feedback.success{color:#c9d29e}
.squares-actions,.battleship-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.squares-actions button,.battleship-actions button{min-height:34px;padding:5px 6px;border:1px solid #59634d;background:#202a20;color:#d8d0b6;font:600 8px var(--sans);cursor:pointer}
.squares-actions .squares-check,.battleship-actions .battleship-check{grid-column:1/-1;border-color:#c2a75c;background:linear-gradient(120deg,#ddc678,#b99c56);color:#23271e;font-weight:700}
.squares-actions .squares-next{grid-column:1/-1;border-color:#c2a75c;background:linear-gradient(120deg,#ddc678,#b99c56);color:#23271e;font-weight:700}
.squares-actions [hidden]{display:none}
.squares-actions button:disabled,.battleship-actions button:disabled{opacity:.45;cursor:default}
.squares-foot,.battleship-foot{margin-top:10px;padding-top:8px;border-top:1px solid #3c4538;color:#77816e;font-size:6px}
.battleship-board{display:grid;gap:2px;width:min(100%,430px);margin:auto;user-select:none}
.battleship-corner{min-width:0;aspect-ratio:1}
.battleship-col-clue,.battleship-row-clue{display:grid;place-items:center;min-width:0;color:#d5c78f;font:700 9px var(--sans)}
.battleship-col-clue.satisfied,.battleship-row-clue.satisfied{color:#f0d98b;text-shadow:0 0 8px #f0d98b55}
.battleship-board-wrap{background:radial-gradient(ellipse at 50% 40%,#19343a 0,#10232a 68%,#101a1c 100%)}
.battleship-cell{display:grid;place-items:center;min-width:0;aspect-ratio:1;padding:0;border:1px solid #36545b;background:linear-gradient(145deg,#19343d,#11272e);color:#d6e0d8;font:700 clamp(12px,2.4vw,19px) var(--sans);cursor:pointer;touch-action:manipulation;transition:background .16s,border-color .16s,transform .16s}
.battleship-cell.ship{border-color:#e0c776;background:linear-gradient(145deg,#e3d08c,#b69a50);color:#19251f;box-shadow:inset 0 0 0 1px #f1dfaa}
.battleship-cell.ship svg{display:block;width:58%;height:58%;fill:currentColor}
.battleship-cell.water{border-color:#45666b;background:linear-gradient(145deg,#234750,#193842);color:#b3d0c7}
.battleship-cell:hover:not(:disabled){border-color:#cbb56e;filter:brightness(1.12)}
.battleship-count.over-limit{color:#f0a78e}
.battleship-actions .battleship-next{grid-column:1/-1;border-color:#c2a75c;background:linear-gradient(120deg,#ddc678,#b99c56);color:#23271e;font-weight:700}
.battleship-actions .battleship-next[hidden]{display:none}
.battleship-cell:disabled{cursor:default}
.battleship-instruction{margin:9px 0 5px;color:#949e88;font-size:7px;font-weight:700;letter-spacing:.1em}
.battleship-actions{grid-template-columns:1fr 1fr}
@media(max-width:600px){
  .modal-backdrop.open .modal.squares-modal,.modal-backdrop.open .modal.battleship-modal{width:100%;height:100dvh;max-height:100dvh;min-height:0;margin:0;padding:calc(env(safe-area-inset-top) + 13px) 14px calc(env(safe-area-inset-bottom) + 8px);display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain;border:0;box-shadow:none}
  .squares-modal:before,.battleship-modal:before{inset:5px}
  .squares-modal>.eyebrow,.battleship-modal>.eyebrow{font-size:7px;margin:0 48px 4px 0}
  .squares-modal>h2,.battleship-modal>h2{font-size:27px;line-height:1;margin:0 44px 4px 0}
  .squares-modal>.modal-description,.battleship-modal>.modal-description{font-size:10px;line-height:1.35;margin:0 38px 6px 0}
  .squares-modal .modal-close,.battleship-modal .modal-close{position:absolute;top:calc(env(safe-area-inset-top) + 10px);right:12px;width:40px;height:40px;display:grid;place-items:center;background:#20281f;border:1px solid #80744d;border-radius:50%;font-size:25px}
  .squares-modal #game-area,.battleship-modal #game-area{display:flex;flex:1;min-height:0}
  .squares-session,.battleship-session{display:flex;flex:1;min-height:0;flex-direction:column;margin:3px -14px 0;padding:7px 14px 0;overflow:auto}
  .squares-meta,.battleship-meta{flex:0 0 17px}
  .squares-progress,.battleship-progress{flex:0 0 3px;margin:5px 0 8px}
  .squares-levels,.battleship-levels{flex:0 0 34px;min-height:34px;gap:5px;margin:-4px 0 5px;padding:1px 2px 5px}
  .squares-level,.battleship-level{flex-basis:27px;width:27px;height:27px}
  .squares-layout,.battleship-layout{display:flex;flex:0 0 auto;flex-direction:column;justify-content:center;gap:7px;min-height:0;margin:0 auto;width:100%}
  .squares-board-wrap,.battleship-board-wrap{flex:0 0 auto;width:min(100%,420px);align-self:center;padding:6px}
  .squares-board{width:min(100%,250px,max(190px,calc(100dvh - 400px)))}
  .squares-tools,.battleship-tools{width:min(100%,420px);align-self:center}
  .squares-rule,.battleship-rule{padding:5px 7px;gap:7px}
  .squares-rule>span,.battleship-rule>span{flex-basis:19px;width:19px;height:19px;font-size:12px}
  .squares-rule p,.battleship-rule p{font-size:12px}
  .squares-rule small,.battleship-rule small{font-size:8px;line-height:1.35}
  .squares-tabs{margin:5px 0 4px}.squares-tabs button{min-height:25px}
  .squares-clues{grid-template-columns:1fr 1fr;max-height:75px}
  .squares-clue{min-height:32px;grid-template-columns:20px minmax(0,1fr) auto;gap:4px;padding:4px}
  .squares-clue span{font-size:8px}.squares-current{margin:4px 0;font-size:6px}
  .squares-keyboard{gap:3px}.squares-key-row{gap:2px}.squares-key-row button{min-height:27px;font-size:8px}
  .squares-feedback,.battleship-feedback{min-height:16px;margin:3px 0 2px;font-size:8px}
  .squares-actions button,.battleship-actions button{min-height:32px;font-size:7px}
  .squares-foot,.battleship-foot{flex:0 0 15px;margin-top:5px;padding-top:5px;font-size:5px}
  .battleship-board{width:min(100%,420px,calc(100dvh - 305px))}
  .battleship-board{grid-template-columns:clamp(20px,6vw,28px) repeat(8,minmax(0,1fr))}
  .battleship-col-clue,.battleship-row-clue{font-size:8px}
  .battleship-instruction{margin:5px 0 3px;font-size:6px}
  .battleship-levels{justify-content:flex-start}
}
@media(max-width:600px) and (max-height:680px){
  .modal-backdrop.open .modal.squares-modal,.modal-backdrop.open .modal.battleship-modal{padding-top:calc(env(safe-area-inset-top) + 8px);padding-bottom:calc(env(safe-area-inset-bottom) + 4px)}
  .squares-modal>h2,.battleship-modal>h2{font-size:24px}
  .squares-session,.battleship-session{margin-top:2px;padding-top:4px}
  .squares-layout,.battleship-layout{gap:4px}
  .squares-board-wrap,.battleship-board-wrap{padding:4px}
  .squares-clues{max-height:62px}.squares-key-row button{min-height:24px}
  .squares-actions button,.battleship-actions button{min-height:29px}
  .battleship-board{width:min(100%,calc(100dvh - 320px))}
  .squares-foot,.battleship-foot{display:none}
}

/* Landscape phones: pin the instructions beside a compact board instead of cropping the portrait layout. */
@media(orientation:landscape) and (max-height:500px) and (min-width:540px){
  html,body{width:100%;height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}
  .modal-backdrop.open{padding:0;place-items:stretch;overflow:hidden}
  .modal-backdrop.open .modal.nonogram-modal{
    width:100vw;height:100dvh;max-height:100dvh;min-height:0;margin:0;padding:11px 16px 8px;
    display:grid;grid-template-columns:minmax(165px,205px) minmax(0,1fr);
    grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"eyebrow game" "title game" "description game";
    align-content:start;gap:5px 14px;overflow:hidden;border:0;box-shadow:none
  }
  .nonogram-modal:before{inset:5px}
  .nonogram-modal>.eyebrow{grid-area:eyebrow;align-self:end;font-size:7px;margin:0;line-height:1.2}
  .nonogram-modal>h2{grid-area:title;align-self:start;font-size:26px;line-height:1;margin:0}
  .nonogram-modal>.modal-description{grid-area:description;align-self:start;max-width:205px;margin:0;font-size:9px;line-height:1.35}
  .nonogram-modal .modal-close{top:8px;right:auto;left:170px;width:34px;height:34px;font-size:22px}
  .nonogram-modal #game-area{grid-area:game;display:flex;min-width:0;min-height:0;overflow:hidden}
  .nonogram-modal>.feedback{display:none}
  .nonogram-session{display:flex;flex:1;min-width:0;min-height:0;flex-direction:column;margin:0;padding:5px 0 0;overflow:hidden}
  .nonogram-session-top{flex:0 0 16px;font-size:6px}
  .nonogram-progress{flex:0 0 3px;margin:3px 0 4px}
  .nonogram-levels{flex:0 0 28px;gap:4px;padding-bottom:3px}
  .nonogram-level{width:24px;height:24px;flex-basis:24px;font-size:6px}
  .nonogram-play{display:grid;flex:1;min-width:0;min-height:0;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:9px;padding:0}
  .nonogram-board-frame{width:min(100%,calc(100dvh - 100px));max-width:100%;padding:5px}
  .nonogram-board{gap:1px;grid-template-columns:minmax(19px,.75fr) repeat(var(--nonogram-size),minmax(0,1fr))}
  .nonogram-column-clue{min-height:clamp(24px,7dvh,32px);font-size:8px}
  .nonogram-row-clue{padding-right:3px;font-size:8px}
  .nonogram-cell.marked-empty{font-size:12px}
  .nonogram-tools{width:150px;min-width:0}
  .nonogram-rule{padding:6px;gap:6px}
  .nonogram-rule>span{width:18px;height:18px;flex-basis:18px;font-size:11px}
  .nonogram-rule p{font-size:11px;line-height:1.3}
  .nonogram-rule p small{font-size:7px}
  .nonogram-instruction{margin:5px 0 2px;font-size:5px}
  .nonogram-feedback{min-height:22px;margin:0;font-size:8px}
  .nonogram-actions{grid-template-columns:1fr 1fr 1.2fr;gap:3px}
  .nonogram-actions button,.nonogram-next{min-height:32px;padding:4px 2px;font-size:6px}
  .nonogram-actions .nonogram-check{grid-column:auto}
  .nonogram-next{margin-top:3px}
  .nonogram-foot{display:none}
}

@media(orientation:landscape) and (max-height:500px) and (min-width:540px) and (max-width:599px){
  .modal-backdrop.open .modal.nonogram-modal{padding:10px 12px 7px;grid-template-columns:minmax(120px,132px) minmax(0,1fr);gap:4px 8px}
  .nonogram-modal:before{inset:4px}
  .nonogram-modal>.eyebrow{font-size:6px}
  .nonogram-modal>h2{font-size:23px}
  .nonogram-modal>.modal-description{max-width:132px;font-size:8px}
  .nonogram-modal .modal-close{top:14px;left:124px;width:30px;height:30px;font-size:19px}
  .nonogram-session{padding-top:3px}
  .nonogram-session-top{flex-basis:14px;font-size:5px}
  .nonogram-progress{margin:2px 0 3px}
  .nonogram-levels{flex-basis:23px;gap:3px;padding-bottom:2px}
  .nonogram-level{width:20px;height:20px;flex-basis:20px;font-size:5px}
  .nonogram-play{grid-template-columns:minmax(0,1fr) 112px;gap:6px}
  .nonogram-board-frame{width:min(100%,calc(100dvh - 88px));padding:4px}
  .nonogram-board{grid-template-columns:minmax(17px,.75fr) repeat(var(--nonogram-size),minmax(0,1fr))}
  .nonogram-column-clue,.nonogram-row-clue{font-size:7px}
  .nonogram-column-clue{min-height:22px}
  .nonogram-tools{width:112px}
  .nonogram-rule{padding:5px;gap:5px}
  .nonogram-rule p{font-size:10px}
  .nonogram-rule p small{font-size:6px}
  .nonogram-instruction{font-size:4px}
  .nonogram-actions{gap:2px}
  .nonogram-actions button,.nonogram-next{min-height:29px;padding:3px 2px;font-size:5px}
}

/* Very narrow landscape phones need a smaller side rail so the full board stays usable. */
@media(orientation:landscape) and (max-height:500px) and (min-width:480px) and (max-width:539px){
  html,body{width:100%;height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}
  .modal-backdrop.open{padding:0;place-items:stretch;overflow:hidden}
  .modal-backdrop.open .modal.nonogram-modal{
    width:100vw;height:100dvh;max-height:100dvh;min-height:0;margin:0;padding:8px;
    display:grid;grid-template-columns:minmax(125px,140px) minmax(0,1fr);
    grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"eyebrow game" "title game" "description game";
    align-content:start;gap:3px 8px;overflow:hidden;border:0;box-shadow:none
  }
  .nonogram-modal:before{inset:4px}
  .nonogram-modal>.eyebrow{grid-area:eyebrow;align-self:end;font-size:6px;margin:0;line-height:1.2}
  .nonogram-modal>h2{grid-area:title;align-self:start;font-size:20px;line-height:1;margin:0}
  .nonogram-modal>.modal-description{grid-area:description;align-self:start;max-width:140px;margin:0;font-size:8px;line-height:1.3}
  .nonogram-modal .modal-close{top:17px;right:auto;left:108px;width:28px;height:28px;font-size:18px}
  .nonogram-modal #game-area{grid-area:game;display:flex;min-width:0;min-height:0;overflow:hidden}
  .nonogram-modal>.feedback{display:none}
  .nonogram-session{display:flex;flex:1;min-width:0;min-height:0;flex-direction:column;margin:0;padding:3px 0 0;overflow:hidden}
  .nonogram-session-top{flex:0 0 14px;font-size:5px}
  .nonogram-progress{flex:0 0 2px;margin:2px 0 3px}
  .nonogram-levels{flex:0 0 23px;gap:3px;padding-bottom:2px}
  .nonogram-level{width:20px;height:20px;flex-basis:20px;font-size:5px}
  .nonogram-play{display:grid;flex:1;min-width:0;min-height:0;grid-template-columns:minmax(0,1fr) 98px;align-items:center;gap:5px;padding:0}
  .nonogram-board-frame{width:min(100%,calc(100dvh - 88px));max-width:100%;padding:4px}
  .nonogram-board{gap:1px;grid-template-columns:minmax(16px,.75fr) repeat(var(--nonogram-size),minmax(0,1fr))}
  .nonogram-column-clue{min-height:20px;font-size:6px}
  .nonogram-row-clue{padding-right:2px;font-size:6px}
  .nonogram-cell.marked-empty{font-size:10px}
  .nonogram-tools{width:98px;min-width:0}
  .nonogram-rule{padding:4px;gap:4px}
  .nonogram-rule>span{width:15px;height:15px;flex-basis:15px;font-size:9px}
  .nonogram-rule p{font-size:9px;line-height:1.2}
  .nonogram-rule p small{font-size:6px}
  .nonogram-instruction{margin:3px 0 1px;font-size:4px}
  .nonogram-feedback{min-height:18px;margin:0;font-size:6px}
  .nonogram-actions{grid-template-columns:1fr 1fr 1.2fr;gap:2px}
  .nonogram-actions button,.nonogram-next{min-height:27px;padding:3px 1px;font-size:5px}
  .nonogram-actions .nonogram-check{grid-column:auto}
  .nonogram-next{margin-top:2px}
  .nonogram-foot{display:none}
}

/* Mobile puzzle play stays within one screen; boards and controls share the available height. */
@media(max-width:600px){
  .modal-backdrop.open{padding:0;place-items:stretch}
  .modal-backdrop.open .modal.sudoku-modal,
  .modal-backdrop.open .modal.cengel-modal,
  .modal-backdrop.open .modal.wordsearch-modal{
    width:100%;height:100dvh;max-height:100dvh;min-height:0;margin:0;
    display:flex;flex-direction:column;overflow:hidden;
    padding:calc(env(safe-area-inset-top) + 12px) 14px calc(env(safe-area-inset-bottom) + 8px);
    border:0;box-shadow:none
  }
  .modal-backdrop.open .modal.sudoku-modal:before,
  .modal-backdrop.open .modal.cengel-modal:before,
  .modal-backdrop.open .modal.wordsearch-modal:before{inset:5px}
  .modal-backdrop.open .modal.sudoku-modal>.eyebrow,
  .modal-backdrop.open .modal.cengel-modal>.eyebrow,
  .modal-backdrop.open .modal.wordsearch-modal>.eyebrow{font-size:7px;margin:0 48px 4px 0}
  .modal-backdrop.open .modal.sudoku-modal>h2,
  .modal-backdrop.open .modal.cengel-modal>h2,
  .modal-backdrop.open .modal.wordsearch-modal>h2{font-size:27px;line-height:1;margin:0 44px 4px 0}
  .modal-backdrop.open .modal.sudoku-modal>.modal-description,
  .modal-backdrop.open .modal.cengel-modal>.modal-description,
  .modal-backdrop.open .modal.wordsearch-modal>.modal-description{
    max-width:none;font-size:10px;line-height:1.35;margin:0 38px 8px 0;
    display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden
  }
  .modal-backdrop.open .modal.sudoku-modal .modal-close,
  .modal-backdrop.open .modal.cengel-modal .modal-close,
  .modal-backdrop.open .modal.wordsearch-modal .modal-close{
    position:absolute;top:calc(env(safe-area-inset-top) + 10px);right:12px;
    width:40px;height:40px;margin:0;border-radius:50%;display:grid;place-items:center;
    background:#20281f;border:1px solid #80744d;font-size:25px
  }
  #game-area{flex:1;min-height:0;overflow:hidden}

  /* Sudoku board and number pad are side by side, with all actions on screen. */
  .sudoku-session{height:100%;min-height:0;display:flex;flex-direction:column;margin:4px -14px 0;padding:8px 14px 0;overflow:hidden}
  .sudoku-session-top{flex:0 0 18px;font-size:7px}
  .sudoku-progress{flex:0 0 2px;margin:5px 0 6px}
  .sudoku-levels{flex:0 0 32px;gap:5px;padding:1px 0 4px;margin:0 0 5px}
  .sudoku-level{flex-basis:25px;width:25px;height:25px}
  .sudoku-play-layout{flex:1;min-height:0;grid-template-columns:minmax(0,1.2fr) minmax(118px,.8fr);gap:10px;align-items:center;margin:0 auto 5px}
  .sudoku-board-column{width:100%;max-width:min(54vw,38dvh);justify-self:center}
  .sudoku-board-frame{padding:5px}
  .sudoku-cell{font-size:clamp(14px,5vw,20px)}
  .sudoku-board-caption{margin-top:5px;font-size:5px}
  .sudoku-tools{min-width:0;justify-content:center}
  .sudoku-rule{display:none}
  .sudoku-select-label{margin:0 0 5px;font-size:6px}
  .sudoku-keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .sudoku-keypad button{height:34px;font-size:16px}
  .sudoku-tool-actions{gap:3px;margin-top:7px}
  .sudoku-hint,.sudoku-erase,.sudoku-reset{font-size:7px}
  .sudoku-feedback{min-height:24px;margin:5px 0;font-size:8px;line-height:1.25}
  .sudoku-check,.sudoku-next{min-height:36px;font-size:7px;padding:0 8px}
  .sudoku-next{margin-top:6px}
  .sudoku-session-foot{flex:0 0 25px;min-height:25px;padding-top:7px;font-size:5px}

  /* Çengel uses a compact board-and-clue split instead of stacking both panels. */
  .cengel-session{height:100%;min-height:0;display:flex;flex-direction:column;padding-top:7px;overflow:hidden}
  .cengel-meta{flex:0 0 28px;margin:0 0 4px;font-size:6px}
  .cengel-date-picker{width:110px;padding:4px;font-size:9px}
  .cengel-progress{flex:0 0 2px;margin:0 0 6px}
  .cengel-layout{flex:1;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;overflow:hidden}
  .cengel-left{display:flex;flex-direction:column;justify-content:center;min-height:0;padding:5px;overflow:hidden}
  .cengel-board-viewport{flex:0 1 auto;min-height:0;overflow:hidden;padding:0}
  .cengel-board{width:100%;height:auto;max-height:100%;gap:1px;padding:1px}
  .cengel-cell.letter-cell b{font-size:clamp(6px,2.1vw,10px)}
  .cengel-cell.letter-cell i{font-size:5px}
  .cengel-board-caption{gap:4px;margin:4px 0 0;font-size:5px;letter-spacing:0}
  .cengel-current-clue{min-height:58px;padding:7px}
  .cengel-current-clue p{margin:5px 0 0;font-size:12px;line-height:1.2}
  .cengel-clue-tabs{gap:3px;margin:5px 0 4px}
  .cengel-clue-tabs button{padding:5px 3px;font-size:6px}
  .cengel-clue-list{flex:1;min-height:0;max-height:none;grid-template-columns:1fr;gap:3px;margin:0 0 4px;overflow:auto}
  .cengel-clue-item{min-height:27px;padding:3px 4px;font-size:7px}
  .cengel-keyboard{flex:0 0 auto;gap:3px;margin:4px auto 0}
  .cengel-key-row{gap:2px}
  .cengel-key-row button,.cengel-backspace{height:24px;min-width:0;padding:0 3px;font-size:8px}
  .cengel-backspace{width:25px}
  .cengel-actions{margin-top:4px}
  .cengel-hint,.cengel-reset{padding:3px 0;font-size:7px}
  .cengel-feedback{min-height:15px;margin:3px 0;font-size:7px}
  .cengel-check{min-height:34px;font-size:7px}
  .cengel-foot{flex:0 0 23px;margin-top:5px;padding-top:6px;font-size:5px}

  /* Word-search board scales to the available height, keeping its word list and actions visible. */
  .wordsearch-session{height:100%;min-height:0;display:flex;flex-direction:column;padding-top:5px;overflow:hidden}
  .wordsearch-meta{flex:0 0 28px;gap:6px;margin:0 0 4px;font-size:7px}
  .wordsearch-meta label{font-size:6px}
  .wordsearch-date{width:112px;min-height:30px;padding:4px;font-size:9px}
  .wordsearch-back{min-height:30px;font-size:7px}
  .wordsearch-daily-summary{flex:0 0 24px;margin:2px 0 5px;font-size:7px}
  .wordsearch-round-list{flex:1;min-height:0;grid-template-rows:repeat(5,minmax(0,1fr));gap:5px}
  .wordsearch-round{min-height:0;padding:5px 7px;gap:7px}
  .wordsearch-round-index{width:28px;height:28px;flex-basis:28px;font-size:11px}
  .wordsearch-round-copy b{font-size:11px}
  .wordsearch-round-copy small,.wordsearch-round-progress{font-size:7px}
  .wordsearch-unlock-note{flex:0 0 auto;margin:5px 0;font-size:8px}
  .wordsearch-foot{flex:0 0 22px;margin-top:4px;padding-top:5px;font-size:6px}
  .wordsearch-play-heading{flex:0 0 39px;margin:2px 0 4px}
  .wordsearch-play-heading>div>span{font-size:6px}
  .wordsearch-play-heading h3{font-size:17px}
  .wordsearch-play-heading>b{font-size:18px}
  .wordsearch-progress{flex:0 0 3px;margin:0 0 5px}
  .wordsearch-board-wrap{flex:0 1 auto;min-height:0;width:min(100%,38dvh);max-height:38dvh;align-self:center;overflow:hidden;padding:4px}
  .wordsearch-board{width:100%;height:100%;aspect-ratio:1}
  .wordsearch-cell{font-size:clamp(7px,2.5vw,12px)}
  .wordsearch-words-head{flex:0 0 22px;margin:4px 1px 2px}
  .wordsearch-words-head b{font-size:12px}
  .wordsearch-words-head span{font-size:6px}
  .wordsearch-words{flex:0 0 auto;max-height:44px;overflow:hidden;gap:3px}
  .wordsearch-word{padding:3px 5px;font-size:7px}
  .wordsearch-feedback{flex:0 0 22px;min-height:22px;margin:3px 0;font-size:9px}
  .wordsearch-actions{flex:0 0 34px;gap:8px;margin:2px 0 4px}
  .wordsearch-hint,.wordsearch-reset{min-height:32px;padding:4px;font-size:8px}
  .wordsearch-next{flex:0 0 38px;min-height:38px;font-size:8px}
  .wordsearch-session>.wordsearch-foot{flex-basis:19px;margin-top:3px;padding-top:4px}
}

/* Fill the iPhone viewport and give puzzle boards priority over decorative space. */
@media(max-width:600px){
  html,body{height:100%;min-height:0;overflow:hidden}
  .shell{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding-bottom:env(safe-area-inset-bottom)}
  .topbar{flex:0 0 58px;height:58px}
  .magazine-app{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:3px 0 4px}
  .magazine-shell{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .magazine-topline{flex:0 0 23px;min-height:23px;padding:0 4px 4px;margin:0;align-items:center}
  .magazine-stage{flex:1 1 auto;min-height:0;padding:8px 0;overflow:hidden}
  .physical-cover{width:min(380px,calc(100vw - 58px));height:auto;aspect-ratio:310/490;max-height:100%;transform:none}
  .physical-cover.active{animation:cover-land .45s ease-out}
  .physical-cover-inner{padding:20px 22px 18px 30px}
  .cover-title{left:30px;bottom:72px}
  .cover-title{max-width:calc(100% - 128px)}
  .cover-title h1{font-size:clamp(30px,8.8vw,42px)}
  .cover-footer{left:30px;right:20px;bottom:19px}
  .physical-cover .cover-turn{right:12px;top:auto;bottom:40px;width:min(132px,42%);height:44px;min-height:44px;padding:4px 8px;font-size:clamp(8px,2.1vw,9px);transform:none;z-index:4}
  .physical-cover .cover-turn:hover{transform:translateY(-2px)}
  .physical-spread{width:100%;height:100%;min-height:0;grid-template-columns:minmax(0,1fr);gap:0}
  .paper-leaf,.left-leaf,.right-leaf{height:100%;min-height:0;overflow:hidden}
  .page-controls{flex:0 0 45px;min-height:45px;margin:0 8px;padding:5px 0 0}
  .page-controls button{font-size:7px}
  .shell>footer{flex:0 0 42px;height:42px;font-size:6px}

  .modal-backdrop.open .modal.sudoku-modal,
  .modal-backdrop.open .modal.cengel-modal,
  .modal-backdrop.open .modal.wordsearch-modal{
    padding:calc(env(safe-area-inset-top) + 8px) 12px calc(env(safe-area-inset-bottom) + 5px)
  }
  .sudoku-modal>.modal-description{font-size:10px;line-height:1.25;margin-bottom:4px}
  .sudoku-session{height:calc(100% - 2px);margin-top:2px;padding:6px 12px 0}
  .sudoku-session-top{flex-basis:17px}
  .sudoku-progress{margin:3px 0 5px}
  .sudoku-levels{flex-basis:29px;margin-bottom:3px}
  .sudoku-play-layout{display:flex;flex:1 1 auto;flex-direction:column;justify-content:flex-start;gap:5px;width:100%;max-width:none;margin:0 auto 3px}
  .sudoku-board-column{width:min(calc(100vw - 64px),calc(100dvh - 520px),410px);max-width:none;flex:0 0 auto}
  .sudoku-board-frame{padding:5px}
  .sudoku-cell{font-size:clamp(17px,6vw,27px)}
  .sudoku-board-caption{margin-top:3px;font-size:6px}
  .sudoku-tools{width:100%;flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr);justify-content:start}
  .sudoku-select-label{margin:0 0 3px;font-size:6px}
  .sudoku-keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .sudoku-keypad button{height:34px;font-size:16px}
  .sudoku-tool-actions{margin-top:4px}
  .sudoku-feedback{min-height:18px;margin:3px 0;font-size:8px}
  .sudoku-check,.sudoku-next{min-height:34px}
  .sudoku-next{margin-top:4px}
  .sudoku-session-foot{display:none}
}

@media(max-width:600px) and (max-height:740px){
  .sudoku-modal>.modal-description{display:none}
  .sudoku-board-column{width:min(calc(100vw - 64px),calc(100dvh - 450px),340px)}
  .sudoku-keypad button{height:30px}
  .sudoku-feedback{min-height:14px;margin:2px 0}
  .sudoku-session-foot{display:none}
  .magazine-topline{font-size:6px}
  .cover-title{bottom:64px}
  .cover-title h1{font-size:33px}
}

/* Final responsive pass: each printed page and active puzzle stays inside the device viewport. */
.classic-puzzle>i svg,.paper-link>span svg,.sudoku-check>span svg,.cengel-check>span svg,.wordsearch-round-progress svg,.sudoku-next>span svg{
  display:block;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round
}
.ui-arrow,.ui-lock{display:inline-block;width:1em;height:1em;vertical-align:-.16em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.wordsearch-next .ui-arrow{margin-left:5px}
.sudoku-rule-icon svg{width:15px;height:15px;fill:currentColor}
.paper-link>span{display:inline-flex;vertical-align:middle;align-items:center}
.note-page .signature{margin-top:auto;padding-bottom:clamp(10px,3dvh,26px)}
.classic-puzzle>i{display:grid;place-items:center}
.note-art svg{width:clamp(54px,11dvh,92px);height:clamp(54px,11dvh,92px);fill:currentColor}
.cover-prism,.light-source,.sudoku-rule-icon,.preview-art{font-variant-emoji:text}

/* App privacy and support links stay visible in the compact magazine footer. */
.shell>footer.site-footer{gap:12px;letter-spacing:.1em}
.footer-links{display:flex;align-items:center;gap:16px}
.footer-links a{color:#aeb5a5;text-decoration:none;transition:color .18s}
.footer-links a:hover,.footer-links a:focus-visible{color:var(--gold)}
@media(max-width:480px){.shell>footer.site-footer{gap:8px}.footer-links{gap:10px}.footer-tagline{display:none}}

@media(max-width:600px){
  .magazine-app{padding:2px 0 3px}
  .magazine-shell,.magazine-stage{min-height:0}
  .magazine-stage{height:100%;flex:1 1 auto;padding:6px 8px;align-items:stretch;justify-content:stretch}
  .physical-spread.active{width:100%;height:100%;min-height:0;display:grid;grid-template-columns:minmax(0,1fr);align-self:stretch}
  .paper-leaf.mobile-leaf-active{display:flex;height:100%;min-height:0;flex-direction:column;overflow:hidden;padding:clamp(12px,2.3dvh,20px) clamp(14px,4.5vw,22px) 46px}
  .paper-masthead{flex:0 0 auto;font-size:clamp(6px,1.6vw,8px);padding-bottom:6px}
  .paper-kicker{flex:0 0 auto;margin:clamp(8px,1.8dvh,14px) 0 6px;font-size:clamp(6px,1.8vw,8px)}
  .paper-leaf h2{flex:0 0 auto;font-size:clamp(27px,8.2vw,39px);line-height:.98;margin:0 0 6px}
  .paper-intro{flex:0 0 auto;font-size:clamp(9px,2.7vw,12px);line-height:1.4;margin:0 0 8px}
  .paper-footer{left:clamp(14px,4.5vw,22px);right:clamp(14px,4.5vw,22px);bottom:12px;padding-top:6px;font-size:clamp(5px,1.6vw,7px)}
  .classics-page .paper-kicker{margin-top:clamp(8px,1.8dvh,14px)}
  .classics-page h2{font-size:clamp(27px,8.2vw,39px);margin:0 0 6px}
  .classics-page .paper-intro{font-size:clamp(9px,2.7vw,12px);line-height:1.4;margin-bottom:8px}
  .classics-page .classic-list{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;justify-content:space-evenly;gap:clamp(5px,1.2dvh,10px);margin:4px 0 16px}
  .classics-page .classic-puzzle{flex:1 1 0;min-height:clamp(56px,8.5dvh,76px);max-height:110px;grid-template-columns:clamp(42px,14vw,56px) minmax(0,1fr) 14px;gap:clamp(6px,2vw,10px);padding:6px 8px}
  .classics-page .classic-art{width:100%;height:clamp(42px,7dvh,58px);font-size:clamp(7px,2vw,10px)}
  .classics-page .word-mini{font-size:clamp(5px,1.7vw,7px)}
  .classics-page .classic-info{gap:3px;min-width:0}
  .classics-page .classic-info b{font-size:clamp(11px,3.6vw,15px)}
  .classics-page .classic-info small{font-size:clamp(6px,2.1vw,9px)}
  .classics-page .classic-puzzle>i{font-size:14px}
  .premium-page .paper-kicker,.discovery-page .paper-kicker{margin-top:clamp(8px,1.8dvh,14px)}
  .premium-page .premium-room{flex:1 1 auto;min-height:100px;max-height:34dvh;height:auto;margin:5px 0 7px}
  .premium-page .paper-body,.discovery-page .paper-body{flex:0 0 auto;font-size:clamp(9px,2.7vw,12px);line-height:1.45;margin:3px 0 6px}
  .premium-page .paper-link,.discovery-page .paper-link{flex:0 0 auto;align-self:flex-start;margin:2px 0 0;padding:8px 0;font-size:9px}
  .discovery-page .light-puzzle{flex:1 1 auto;min-height:110px;max-height:34dvh;height:auto;margin:5px 0 7px}
  .note-page .note-art{flex:0 1 auto;height:clamp(88px,15dvh,136px);min-height:70px;margin:clamp(9px,2dvh,17px) 0 clamp(8px,1.7dvh,14px)}
  .note-page .paper-kicker{margin:0 0 6px}
  .note-page h2{font-size:clamp(28px,8vw,38px)}
  .note-page .paper-body{flex:0 0 auto;max-width:none;font-size:clamp(9px,2.7vw,11px);line-height:1.5;margin:5px 0}
  .note-page .signature{margin:clamp(8px,2dvh,18px) 0 0;font-size:15px}
  .page-controls{flex:0 0 42px;min-height:42px;padding:3px 0 0}

  .modal-backdrop.open .modal.sudoku-modal,
  .modal-backdrop.open .modal.cengel-modal,
  .modal-backdrop.open .modal.wordsearch-modal{padding:calc(env(safe-area-inset-top) + 8px) 12px calc(env(safe-area-inset-bottom) + 6px)}
  .modal-backdrop.open .modal.sudoku-modal>.eyebrow,
  .modal-backdrop.open .modal.cengel-modal>.eyebrow,
  .modal-backdrop.open .modal.wordsearch-modal>.eyebrow{flex:0 0 auto}
  .modal-backdrop.open .modal.sudoku-modal>h2,
  .modal-backdrop.open .modal.cengel-modal>h2,
  .modal-backdrop.open .modal.wordsearch-modal>h2{flex:0 0 auto}
  .sudoku-session{flex:1 1 auto;height:auto;min-height:0;margin:3px -12px 0;padding:5px 12px 0}
  .sudoku-session-top{flex:0 0 16px;font-size:7px}
  .sudoku-progress{flex:0 0 2px;margin:3px 0 5px}
  .sudoku-levels{flex:0 0 29px;min-height:29px;margin:0 0 3px;padding:1px 0 3px}
  .sudoku-play-layout{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;justify-content:flex-start;gap:3px;width:100%;max-width:none;margin:0 auto 2px}
  .sudoku-board-column{width:min(calc(100vw - 38px),40dvh,360px);max-width:none;flex:0 0 auto;justify-self:center}
  .sudoku-board-frame{padding:4px}
  .sudoku-cell{font-size:clamp(14px,5vw,22px)}
  .sudoku-board-caption{margin-top:3px;font-size:6px}
  .sudoku-tools{width:100%;min-height:0;flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-start}
  .sudoku-rule{display:none}
  .sudoku-select-label{flex:0 0 auto;margin:1px 0 3px;font-size:7px}
  .sudoku-keypad{flex:0 0 auto;grid-template-columns:repeat(9,minmax(0,1fr));gap:4px}
  .sudoku-keypad button{height:clamp(30px,4.2dvh,37px);min-width:0;padding:0;font-size:clamp(14px,4vw,18px)}
  .sudoku-tool-actions{flex:0 0 auto;gap:8px;margin-top:4px}
  .sudoku-hint,.sudoku-erase,.sudoku-reset{font-size:clamp(7px,2.2vw,9px)}
  .sudoku-feedback{flex:0 0 auto;min-height:16px;margin:3px 0;font-size:8px;line-height:1.2}
  .sudoku-check,.sudoku-next{flex:0 0 auto;min-height:34px;padding:0 10px;font-size:8px}
  .sudoku-next{margin-top:4px}
  .sudoku-session-foot{display:none}

  .cengel-session{height:100%;min-height:0;display:flex;flex:1 1 auto;flex-direction:column;padding-top:5px;overflow:hidden}
  .cengel-meta{flex:0 0 27px;min-height:27px;margin:0 0 3px;font-size:clamp(6px,1.8vw,8px)}
  .cengel-date-picker{width:clamp(96px,30vw,125px);padding:3px;font-size:9px}
  .cengel-progress{flex:0 0 2px;margin:0 0 4px}
  .cengel-layout{display:grid;flex:1 1 auto;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);gap:5px;overflow:hidden}
  .cengel-left{min-height:0;display:flex;flex-direction:column;justify-content:center;padding:4px 7px;overflow:hidden}
  .cengel-board-viewport{width:100%;height:min(34dvh,300px);min-height:0;flex:0 1 auto;display:grid;place-items:center;overflow:hidden;padding:0}
  .cengel-board{width:100%!important;height:auto!important;max-width:100%;max-height:100%;gap:1px;padding:1px}
  .cengel-cell.letter-cell b{font-size:clamp(6px,2vw,10px)}
  .cengel-cell.letter-cell i{font-size:clamp(4px,1.2vw,6px)}
  .cengel-board-caption{flex:0 0 auto;gap:4px;margin:3px 0 0;font-size:clamp(4px,1.4vw,6px);letter-spacing:0}
  .cengel-right{display:flex;min-height:0;flex-direction:column;overflow:hidden}
  .cengel-current-clue{flex:0 0 auto;min-height:49px;padding:6px 8px}
  .cengel-clue-eyebrow{font-size:6px}
  .cengel-current-clue p{margin:3px 0 0;font-size:clamp(12px,3.6vw,16px);line-height:1.15}
  .cengel-clue-tabs{flex:0 0 28px;gap:5px;margin:4px 0}
  .cengel-clue-tabs button{flex:1;min-height:26px;padding:4px;font-size:7px}
  .cengel-clue-list{flex:1 1 auto;min-height:36px;max-height:none;grid-template-columns:1fr 1fr;gap:3px;margin:0 0 3px;overflow:auto}
  .cengel-clue-item{min-height:26px;padding:3px 5px;font-size:clamp(6px,1.8vw,8px)}
  .cengel-clue-item b{font-size:10px}
  .cengel-keyboard{flex:0 0 auto;width:100%;max-width:430px;gap:3px;margin:3px auto 0}
  .cengel-key-row{width:100%;gap:2px}
  .cengel-key-row button,.cengel-backspace{flex:1 1 0;width:auto;min-width:0;height:clamp(28px,4.2dvh,36px);padding:0 1px;font-size:clamp(7px,2.1vw,9px)}
  .cengel-key-row .cengel-backspace{flex:0 0 clamp(25px,8vw,34px)}
  .cengel-actions{flex:0 0 27px;margin-top:2px}
  .cengel-hint,.cengel-reset{padding:2px 0;font-size:7px}
  .cengel-hint b{width:16px;height:16px}
  .cengel-feedback{flex:0 0 15px;min-height:15px;margin:1px 0;font-size:7px}
  .cengel-check{flex:0 0 32px;min-height:32px;padding:0 9px;font-size:7px}
  .cengel-foot{display:none}

  .wordsearch-session{flex:1 1 auto;min-height:0;height:100%}
  .wordsearch-board-wrap{width:min(calc(100vw - 24px),42dvh);max-height:42dvh}
  .wordsearch-words{flex:0 1 auto;max-height:clamp(54px,10dvh,88px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .wordsearch-actions{margin:3px 0 5px}
  .modal-backdrop.open .modal:not(.sudoku-modal):not(.cengel-modal):not(.wordsearch-modal){width:min(100%,520px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto}
}

/* Keep the Word Hunt picker inside the phone viewport, including iPhone safe areas. */
@media(max-width:600px){
  .modal-backdrop.wordsearch-open{position:fixed;inset:0;height:100vh;height:100dvh;overflow:hidden}
  .modal-backdrop.open .modal.wordsearch-modal{
    height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;min-height:0;
    padding: max(env(safe-area-inset-top), 16px) 12px max(env(safe-area-inset-bottom), 8px);
    overflow:hidden;overscroll-behavior:none
  }
  .modal-backdrop.open .modal.wordsearch-modal>.eyebrow{margin-bottom:3px}
  .modal-backdrop.open .modal.wordsearch-modal>h2{margin-bottom:3px}
  .modal-backdrop.open .modal.wordsearch-modal>.modal-description{margin-bottom:6px}
  .modal-backdrop.open .modal.wordsearch-modal #game-area{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}
  .modal-backdrop.open .modal.wordsearch-modal>.feedback{display:none}
  .modal-backdrop.open .wordsearch-session{flex:1 1 auto;min-height:0;height:auto}
  .modal-backdrop.open .wordsearch-round-list{flex:1 1 0;min-height:0;grid-template-rows:repeat(5,minmax(0,1fr));gap:4px;overflow:hidden}
  .modal-backdrop.open .wordsearch-round{min-height:0;padding:4px 7px}
  .modal-backdrop.open .wordsearch-round-index{width:28px;height:28px;flex-basis:28px}
  .modal-backdrop.open .wordsearch-unlock-note{font-size:7px;line-height:1.2;margin:3px 0}
}

@media(max-width:600px) and (max-height:740px){
  .paper-leaf.mobile-leaf-active{padding-top:10px;padding-bottom:42px}
  .paper-kicker,.classics-page .paper-kicker,.premium-page .paper-kicker,.discovery-page .paper-kicker{margin-top:7px}
  .classics-page .classic-puzzle{min-height:52px}
  .note-page .note-art{height:76px;min-height:58px;margin:7px 0}
  .note-page .paper-body{font-size:9px;line-height:1.35}
  .sudoku-board-column{width:min(calc(100vw - 38px),34dvh,265px)}
  .sudoku-levels{flex-basis:26px;min-height:26px}
  .sudoku-keypad button{height:29px}
  .cengel-board-viewport{height:27dvh}
  .cengel-current-clue{min-height:42px}
  .cengel-clue-list{display:none}
  .cengel-key-row button,.cengel-backspace{height:27px}
  .wordsearch-board-wrap{width:min(100%,32dvh);max-height:32dvh}
  .wordsearch-meta{flex-basis:24px}
  .wordsearch-play-heading{flex-basis:32px}
}

/* Mobile magazine layout: one fitted page at a time, with a short, stable turn. */
@media(max-width:600px){
  html,body{width:100%;height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}
  .shell{
    width:100%;height:100dvh;min-height:0;max-height:100dvh;
    display:flex;flex-direction:column;overflow:hidden;
    padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)
  }
  .topbar{flex:0 0 54px;height:54px;min-height:54px}
  .magazine-app{flex:1 1 auto;min-height:0;display:flex;overflow:hidden;padding:2px 0}
  .magazine-shell{width:100%;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .magazine-topline{flex:0 0 22px;min-height:22px;padding:0 4px 3px;margin:0;font-size:clamp(5px,1.6vw,7px);letter-spacing:.08em}
  .magazine-stage{width:100%;height:100%;flex:1 1 auto;min-height:0;padding:7px;overflow:hidden;align-items:center;justify-content:center}
  .physical-cover{
    width:min(100%,410px,calc((100dvh - 180px)*.632));height:auto;max-height:100%;aspect-ratio:310/490;
    flex:0 0 auto;align-self:center;transform:none;box-shadow:12px 16px 22px #0008,2px 3px 0 #a9955e,4px 5px 0 #82784f
  }
  .physical-cover.active{animation:none}
  .physical-cover:hover{transform:none;filter:none}
  .physical-cover-inner{min-height:0;padding:clamp(14px,2.5dvh,20px) clamp(14px,4.2vw,22px) 18px clamp(22px,7vw,30px)}
  .cover-spine{left:0;width:9px}
  .cover-title{left:clamp(22px,7vw,30px);bottom:clamp(62px,9dvh,78px);max-width:calc(100% - 104px)}
  .cover-title p{font-size:clamp(5px,1.5vw,7px);margin-bottom:8px}
  .cover-title h1{font-size:clamp(30px,8.2vw,39px);margin-bottom:8px}
  .cover-title>span{font-size:clamp(6px,1.7vw,8px)}
  .cover-footer{left:clamp(22px,7vw,30px);right:14px;bottom:15px;padding-top:6px;font-size:clamp(4px,1.35vw,6px)}
  .physical-cover .cover-turn{right:10px;bottom:34px;width:min(42%,132px);height:42px;min-height:42px;padding:4px 7px;font-size:clamp(7px,2vw,9px)}
  .physical-spread{display:none}
  .physical-spread.active{
    width:100%;height:100%;min-width:0;min-height:0;flex:1 1 auto;
    display:grid;grid-template-columns:minmax(0,1fr);align-self:stretch;
    transform:none;filter:none;animation:none
  }
  .physical-spread:before{display:none}
  .paper-leaf,.left-leaf,.right-leaf{display:none;width:100%;min-width:0;height:100%;min-height:0;overflow:hidden}
  .paper-leaf.mobile-leaf-active{
    display:flex;flex-direction:column;width:100%;height:100%;min-height:0;min-width:0;overflow:hidden;
    padding:clamp(12px,2.1dvh,18px) clamp(14px,4.5vw,22px) 44px;box-shadow:inset 0 0 18px #72674416
  }
  .paper-masthead{flex:0 0 auto;font-size:clamp(6px,1.6vw,8px)}
  .paper-footer{left:clamp(14px,4.5vw,22px);right:clamp(14px,4.5vw,22px);bottom:11px;font-size:clamp(5px,1.5vw,7px)}
  .page-controls{flex:0 0 40px;min-height:40px;height:40px;margin:0 8px;padding:3px 0 0}
  .page-controls{gap:4px}
  .page-controls button{min-width:32px;min-height:32px;font-size:7px;padding:0 2px}
  .page-dots{flex:0 0 auto;gap:3px}
  .page-dots .page-dot{width:22px;height:30px;min-width:22px;min-height:30px;padding:0;background:transparent}
  .page-count{font-size:6px}
  .shell>footer{flex:0 0 30px;height:30px;min-height:30px;font-size:5px}
  .magazine-stage.turn-next .physical-spread.active,.magazine-stage.turn-prev .physical-spread.active{animation:none}
  .physical-cover.mobile-page-arrive-forward,.physical-cover.mobile-page-arrive-backward,
  .paper-leaf.mobile-page-arrive-forward,.paper-leaf.mobile-page-arrive-backward{animation-duration:.24s;animation-fill-mode:both}
  .physical-cover.mobile-page-arrive-forward,.paper-leaf.mobile-page-arrive-forward{animation-name:mobile-page-arrive-forward}
  .physical-cover.mobile-page-arrive-backward,.paper-leaf.mobile-page-arrive-backward{animation-name:mobile-page-arrive-backward}
  .page-turn-sheet.mobile-page-turn{position:absolute;z-index:9;top:auto;right:auto;bottom:auto;box-shadow:none;transform:none;overflow:hidden;animation-duration:.24s!important}
  .page-turn-sheet.mobile-page-turn.forward{left:auto;transform-origin:center;animation:mobile-page-exit-forward .24s ease-out both}
  .page-turn-sheet.mobile-page-turn.backward{left:auto;transform-origin:center;animation:mobile-page-exit-backward .24s ease-out both}
  .mobile-page-turn-face.physical-cover{display:block!important;width:100%!important;height:100%!important;max-height:none!important;aspect-ratio:auto!important;transform:none!important;box-shadow:none!important;animation:none!important}
  .mobile-page-turn-face.paper-leaf{display:flex!important;flex-direction:column;width:100%!important;height:100%!important;min-height:0!important;padding:clamp(12px,2.1dvh,18px) clamp(14px,4.5vw,22px) 44px!important}
  @keyframes mobile-page-exit-forward{to{opacity:0;transform:translateX(-9px) scale(.99)}}
  @keyframes mobile-page-exit-backward{to{opacity:0;transform:translateX(9px) scale(.99)}}
  @keyframes mobile-page-arrive-forward{from{opacity:.72;transform:translateX(7px)}to{opacity:1;transform:translateX(0)}}
  @keyframes mobile-page-arrive-backward{from{opacity:.72;transform:translateX(-7px)}to{opacity:1;transform:translateX(0)}}
}

@media(max-width:600px) and (max-height:720px){
  .topbar{flex-basis:46px;height:46px;min-height:46px}
  .magazine-topline{flex-basis:19px;min-height:19px}
  .page-controls{flex-basis:36px;height:36px;min-height:36px}
  .shell>footer{flex-basis:24px;height:24px;min-height:24px}
  .physical-cover{width:min(100%,410px,calc((100dvh - 145px)*.632))}
  .physical-cover-inner{padding-top:12px;padding-bottom:12px}
  .cover-title{bottom:58px}
  .cover-title h1{font-size:clamp(28px,8vw,34px)}
  .cover-footer{bottom:11px}
  .physical-cover .cover-turn{bottom:28px;height:38px;min-height:38px}
  .paper-leaf.mobile-leaf-active{padding-top:7px;padding-bottom:34px}
  .paper-masthead{padding-bottom:4px}
  .paper-kicker{margin-top:6px;margin-bottom:4px}
  .paper-leaf h2{font-size:clamp(23px,7.4vw,29px);margin-bottom:4px}
  .paper-intro{font-size:clamp(8px,2.5vw,10px);line-height:1.3;margin-bottom:4px}
  .paper-footer{bottom:10px}
  .classics-page .classic-list{gap:5px;margin-top:2px;margin-bottom:24px}
  .classics-page .classic-puzzle{flex:0 0 clamp(48px,9dvh,56px);min-height:0;padding:4px 7px}
  .classics-page .classic-art{height:clamp(34px,7dvh,40px)}
  .premium-page .premium-room{min-height:76px;max-height:25dvh;margin:3px 0 5px}
  .discovery-page .light-puzzle{min-height:80px;max-height:24dvh;margin:3px 0 5px}
  .note-page .note-art{height:clamp(54px,12dvh,68px);min-height:50px;margin:6px 0}
}

@media(max-width:600px) and (orientation:landscape) and (max-height:500px){
  .magazine-stage{padding:3px 8px}
  .paper-leaf.mobile-leaf-active{padding:5px 12px 24px}
  .paper-masthead{padding-bottom:2px;font-size:5px}
  .paper-kicker{margin:4px 0 2px;font-size:5px}
  .paper-leaf h2,.classics-page h2,.note-page h2{font-size:20px;line-height:1;margin:0 0 3px}
  .page-title-row{margin:3px 0}
  .paper-intro,.page-intro{font-size:7px;line-height:1.2;margin:0 0 4px}
  .classics-page .classic-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:1fr;gap:4px;margin:2px 0 8px}
  .classics-page .classic-puzzle{min-height:0;max-height:56px;grid-template-columns:24px minmax(0,1fr) 8px;gap:3px;padding:3px}
  .classics-page .classic-art{width:24px;height:24px;font-size:7px}
  .classics-page .classic-info{gap:2px}
  .classics-page .classic-info b{font-size:9px}
  .classics-page .classic-info small{font-size:5px}
  .classics-page .classic-puzzle>i{font-size:10px}
  .page-footer{left:12px;right:12px;bottom:7px;padding-top:4px;font-size:5px}
  .premium-page .premium-room{min-height:46px;max-height:62px;height:auto;margin:3px 0 4px}
  .premium-page .paper-body,.discovery-page .paper-body,.note-page .paper-body{font-size:7px;line-height:1.25;margin:2px 0 3px}
  .premium-page .paper-link,.discovery-page .paper-link{margin:0;padding:4px 0;font-size:7px}
  .discovery-page .light-puzzle{min-height:46px;max-height:62px;height:auto;margin:3px 0 4px}
  .note-page .note-art{height:44px;min-height:40px;margin:4px 0}
  .note-page .signature{font-size:11px;margin-top:4px}
  .note-page .signature small{font-size:5px;margin-top:2px}
}

@media(prefers-reduced-motion:reduce) and (max-width:600px){.mobile-page-arrive-forward,.mobile-page-arrive-backward,.page-turn-sheet.mobile-page-turn{animation-duration:.01ms!important}}

/* Short landscape phones: reclaim the header/footer space so every page card stays tappable. */
@media(orientation:landscape) and (max-height:500px) and (max-width:600px){
  html,body{height:100dvh;min-height:0;overflow:hidden}
  .shell{height:100dvh;max-height:100dvh;padding:0;overflow:hidden}
  .topbar,.magazine-topline,.shell>footer{display:none}
  .magazine-app{min-height:0;padding:0;overflow:hidden}
  .magazine-stage{padding:4px 8px}
  .paper-leaf.mobile-leaf-active{padding:5px 12px 20px}
  .paper-masthead{display:none}
  .classics-page .paper-kicker{display:none}
  .classics-page h2{font-size:18px;line-height:1;margin:0 0 3px}
  .classics-page .paper-intro{display:none}
  .classics-page .classic-list{margin:2px 0 8px;gap:4px}
  .classics-page .classic-puzzle{flex-basis:clamp(44px,15dvh,52px);max-height:52px}
  .paper-footer{display:none}
  .page-controls{flex-basis:32px;height:32px;min-height:32px;padding:1px 0 0}
}

/* Landscape phones wider than the single-page breakpoint keep a compact two-page spread. */
@media(orientation:landscape) and (max-height:500px) and (min-width:601px) and (max-width:950px){
  html,body{width:100%;height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none}
  .shell{width:100%;height:100dvh;min-height:0;max-height:100dvh;display:flex;flex-direction:column;padding:0;overflow:hidden}
  .topbar{flex:0 0 36px;height:36px;min-height:36px}
  .magazine-app{flex:1 1 auto;min-height:0;display:flex;overflow:hidden;padding:0}
  .magazine-shell{width:100%;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .magazine-topline{display:none}
  .magazine-stage{width:100%;height:auto;flex:1 1 auto;min-height:0;padding:4px 8px;overflow:hidden;align-items:stretch;justify-content:stretch}
  .physical-spread.active{width:100%;height:100%;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;transform:none;filter:none;animation:none}
  .physical-spread:before{display:none}
  .physical-spread.active .paper-leaf{display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;overflow:hidden;padding:7px 10px 24px}
  .physical-cover .cover-spine{left:0;width:10px}
  .paper-masthead{flex:0 0 auto;padding-bottom:3px;font-size:6px}
  .classics-page .paper-kicker{margin:6px 0 3px;font-size:6px}
  .classics-page h2{font-size:21px;line-height:1;margin:0 0 3px}
  .classics-page .paper-intro{font-size:7px;line-height:1.2;margin:0 0 3px}
  .classics-page .classic-list{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;justify-content:space-evenly;gap:4px;margin:2px 0 8px}
  .classics-page .classic-puzzle{flex:0 1 56px;min-height:42px;max-height:56px;grid-template-columns:32px minmax(0,1fr) 8px;gap:5px;padding:3px}
  .classics-page .classic-art{width:30px;height:30px;font-size:7px}
  .classics-page .classic-info{gap:2px}
  .classics-page .classic-info b{font-size:10px}
  .classics-page .classic-info small{font-size:6px}
  .classics-page .classic-puzzle>i{font-size:10px}
  .paper-footer{display:none}
  .page-controls{flex:0 0 32px;height:32px;min-height:32px;padding:1px 4px 0}
  .shell>footer{display:none}
}

/* Keep both the cover and the two-page view inside every short landscape phone. */
@media(orientation:landscape) and (max-height:600px) and (min-width:601px){
  html,body{width:100%;height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none}
  .shell{width:100%;height:100dvh;min-height:0;max-height:100dvh;display:flex;flex-direction:column;padding:0 3%;overflow:hidden}
  .topbar{flex:0 0 36px;height:36px;min-height:36px}
  .magazine-app{flex:1 1 auto;min-height:0;display:flex;overflow:hidden;padding:0}
  .magazine-shell{width:100%;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
  .magazine-topline{display:none}
  .magazine-stage{width:100%;height:auto;flex:1 1 auto;min-height:0;padding:4px 8px;overflow:hidden;align-items:stretch;justify-content:stretch}
  .physical-cover{width:min(48vw,calc((100dvh - 76px)*.632));height:auto;max-height:100%;aspect-ratio:310/490;transform:none;align-self:center;margin-inline:auto}
  .physical-cover.active{animation:none}
  .physical-cover-inner{padding:clamp(9px,3dvh,16px) clamp(12px,2vw,20px) 12px clamp(18px,2.8vw,26px)}
  .cover-title{left:clamp(18px,2.8vw,26px);bottom:clamp(42px,10dvh,58px);max-width:calc(100% - 74px)}
  .cover-title p{font-size:clamp(5px,.8vw,7px);margin-bottom:4px}
  .cover-title h1{font-size:clamp(21px,3.2vw,30px);line-height:.98;margin-bottom:4px}
  .cover-title>span{font-size:clamp(6px,.9vw,8px)}
  .cover-footer{display:none}
  .physical-cover .cover-turn{right:9px;bottom:12px;width:min(45%,120px);height:34px;min-height:34px;padding:3px 6px;font-size:7px}
  .physical-spread.active{width:100%;height:100%;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;transform:none;filter:none;animation:none}
  .physical-spread:before{display:none}
  .physical-spread.active .paper-leaf{display:flex;width:100%;height:100%;min-width:0;min-height:0;flex-direction:column;overflow:hidden;padding:7px 10px 24px}
  .paper-masthead{flex:0 0 auto;padding-bottom:3px;font-size:6px}
  /* Keep the decorative light artwork inside its card at short landscape heights. */
  .discovery-page .light-source,.discovery-page .light-target,.discovery-page .light-mirror{top:calc(50% - 19px)}
  .discovery-page .light-path{top:50%}
  .classics-page .paper-kicker{margin:6px 0 3px;font-size:6px}
  .classics-page h2{font-size:21px;line-height:1;margin:0 0 3px}
  .classics-page .paper-intro{font-size:7px;line-height:1.2;margin:0 0 3px}
  .classics-page .classic-list{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;justify-content:space-evenly;gap:4px;margin:2px 0 8px}
  .classics-page .classic-puzzle{flex:0 1 56px;min-height:42px;max-height:56px;grid-template-columns:32px minmax(0,1fr) 8px;gap:5px;padding:3px}
  .classics-page .classic-art{width:30px;height:30px;font-size:7px}
  .classics-page .classic-info{gap:2px}
  .premium-page .paper-kicker,.discovery-page .paper-kicker{margin:5px 0 3px;font-size:6px}
  .premium-page h2,.discovery-page h2{font-size:21px;line-height:1;margin:0 0 3px}
  .premium-page .paper-intro,.discovery-page .paper-intro{font-size:7px;line-height:1.2;margin:0 0 3px}
  .premium-page .premium-room{height:min(20dvh,72px);min-height:48px;margin:3px 0 4px}
  .discovery-page .light-puzzle{height:min(20dvh,72px);min-height:48px;margin:3px 0 4px}
  .premium-page .paper-body,.discovery-page .paper-body,.note-page .paper-body{font-size:7px;line-height:1.25;margin:2px 0 3px}
  .premium-page .paper-link,.discovery-page .paper-link{margin:0;padding:4px 0;font-size:6px}
  .note-page .note-art{height:min(14dvh,54px);min-height:40px;margin:4px 0}
  .note-page .signature{font-size:11px;margin:4px 0 0}
  .note-page .signature small{font-size:5px;margin-top:2px}
  .physical-spread.active .paper-footer{left:10px;right:10px;bottom:5px;padding-top:4px;font-size:5px}
  .page-controls{flex:0 0 32px;height:32px;min-height:32px;padding:1px 0 0}
  .shell>footer{display:none}
  .modal-backdrop.open{padding:0;overflow:hidden}
  .modal-backdrop.open .modal{max-height:100dvh;overflow:auto;overscroll-behavior:contain}
}

/* A Fold opened in landscape is almost square, so let the magazine shrink with its viewport. */
@media(orientation:landscape) and (min-width:951px) and (min-height:601px) and (max-height:1000px){
  html,body{height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none}
  .shell{height:100dvh;min-height:0;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden}
  .topbar{flex:0 0 64px;height:64px;min-height:64px}
  .magazine-app{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden;padding:8px 0 10px}
  .magazine-shell{width:100%;flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .magazine-topline{flex:0 0 20px;min-height:20px;padding-bottom:5px}
  .magazine-stage{flex:1 1 auto;min-height:0;height:auto;padding:8px 0;overflow:hidden}
  .physical-spread.active{height:100%;min-height:0}
  .physical-cover{max-height:100%;height:min(570px,100%);width:auto;aspect-ratio:310/490}
  .page-controls{flex:0 0 40px;min-height:40px;margin-top:0}
  .shell>footer{flex:0 0 48px;height:48px}
}

/* The smallest foldable cover screens need a shorter, larger cover layout. */
@media(max-width:600px) and (orientation:landscape) and (max-height:360px){
  .physical-cover{width:min(60vw,calc((100dvh - 42px)*.632));max-height:100%}
  .physical-cover-inner{padding:8px 13px 8px 20px}
  .cover-brandline small{font-size:5px;line-height:1.2}
  .cover-title{left:20px;bottom:38px;max-width:calc(100% - 58px)}
  .cover-title p{font-size:5px;margin-bottom:3px}
  .cover-title h1{font-size:clamp(18px,6vw,24px);line-height:.94;margin-bottom:3px}
  .cover-title>span{font-size:6px}
  .cover-footer{display:none}
  .physical-cover .cover-turn{right:7px;bottom:8px;width:min(45%,76px);height:28px;min-height:28px;font-size:6px}

  /* Compact the two keyboard games on a foldable's very small outer display. */
  .modal-backdrop.open{padding:0;place-items:stretch;overflow:hidden}
  .modal-backdrop.open .modal.sudoku-modal,
  .modal-backdrop.open .modal.cengel-modal,
  .modal-backdrop.open .modal.wordsearch-modal{
    width:100%;height:100dvh;max-height:100dvh;min-height:0;margin:0;
    padding:5px 8px;overflow:hidden;border:0;box-shadow:none
  }
  .modal-backdrop.open .modal.sudoku-modal>.eyebrow,
  .modal-backdrop.open .modal.cengel-modal>.eyebrow,
  .modal-backdrop.open .modal.wordsearch-modal>.eyebrow,
  .modal-backdrop.open .modal.sudoku-modal>.modal-description,
  .modal-backdrop.open .modal.cengel-modal>.modal-description,
  .modal-backdrop.open .modal.wordsearch-modal>.modal-description{display:none}
  .modal-backdrop.open .modal.sudoku-modal>h2,
  .modal-backdrop.open .modal.cengel-modal>h2,
  .modal-backdrop.open .modal.wordsearch-modal>h2{font-size:18px;line-height:1;margin:0 48px 3px 0}
  .modal-backdrop.open .modal.sudoku-modal .modal-close,
  .modal-backdrop.open .modal.cengel-modal .modal-close,
  .modal-backdrop.open .modal.wordsearch-modal .modal-close{position:absolute;top:4px;right:6px;width:26px;height:26px;font-size:19px}
  .modal-backdrop.open .modal.sudoku-modal #game-area,
  .modal-backdrop.open .modal.cengel-modal #game-area,
  .modal-backdrop.open .modal.wordsearch-modal #game-area{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}
  .modal-backdrop.open .sudoku-session{height:100%;min-height:0;margin:0 -8px;padding:3px 8px 0}
  .modal-backdrop.open .sudoku-session-top{flex-basis:14px;font-size:6px}
  .modal-backdrop.open .sudoku-progress,.modal-backdrop.open .sudoku-levels{display:none}
  .modal-backdrop.open .sudoku-play-layout{display:grid;flex:1 1 auto;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:7px;align-items:center;margin:0 auto}
  .modal-backdrop.open .sudoku-board-column{width:min(100%,calc(100dvh - 124px),132px);max-width:none;justify-self:center}
  .modal-backdrop.open .sudoku-board-frame{padding:3px}
  .modal-backdrop.open .sudoku-cell{font-size:clamp(9px,3.2vw,13px)}
  .modal-backdrop.open .sudoku-board-caption{font-size:5px;margin-top:2px}
  .modal-backdrop.open .sudoku-tools{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:2px}
  .modal-backdrop.open .sudoku-rule,.modal-backdrop.open .sudoku-select-label,.modal-backdrop.open .sudoku-feedback,.modal-backdrop.open .sudoku-next{display:none}
  .modal-backdrop.open .sudoku-keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
  .modal-backdrop.open .sudoku-keypad button{height:23px;min-height:23px;font-size:12px}
  .modal-backdrop.open .sudoku-tool-actions{gap:4px;margin:2px 0}
  .modal-backdrop.open .sudoku-tool-actions button{font-size:6px}
  .modal-backdrop.open .sudoku-check{min-height:26px;padding:0 5px;font-size:6px}
  .modal-backdrop.open .sudoku-session-foot{display:none}
  .modal-backdrop.open .cengel-session{height:100%;min-height:0;flex:1 1 auto;padding-top:3px}
  .modal-backdrop.open .cengel-meta{flex-basis:21px;min-height:21px;margin:0 0 3px;font-size:6px}
  .modal-backdrop.open .cengel-date-picker{width:92px;padding:2px;font-size:7px}
  .modal-backdrop.open .cengel-progress{margin:0 0 3px}
  .modal-backdrop.open .cengel-layout{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-template-rows:minmax(0,1fr);gap:4px}
  .modal-backdrop.open .cengel-left{min-height:0;padding:3px}
  .modal-backdrop.open .cengel-board-viewport{height:min(47dvh,145px);min-height:0}
  .modal-backdrop.open .cengel-board-caption{font-size:4px}
  .modal-backdrop.open .cengel-right{min-height:0}
  .modal-backdrop.open .cengel-current-clue{min-height:38px;padding:4px}
  .modal-backdrop.open .cengel-clue-eyebrow{font-size:5px}
  .modal-backdrop.open .cengel-current-clue p{font-size:10px;line-height:1.05;margin:2px 0 0}
  .modal-backdrop.open .cengel-clue-tabs{flex:0 0 22px;margin:2px 0}
  .modal-backdrop.open .cengel-clue-tabs button{min-height:20px;padding:2px;font-size:6px}
  .modal-backdrop.open .cengel-clue-list{display:none}
  .modal-backdrop.open .cengel-keyboard{gap:2px;margin-top:2px}
  .modal-backdrop.open .cengel-key-row{gap:1px}
  .modal-backdrop.open .cengel-key-row button,.modal-backdrop.open .cengel-backspace{height:18px;min-height:18px;padding:0;font-size:6px}
  .modal-backdrop.open .cengel-key-row .cengel-backspace{flex-basis:20px}
  .modal-backdrop.open .cengel-actions{flex-basis:19px;margin-top:1px}
  .modal-backdrop.open .cengel-hint,.modal-backdrop.open .cengel-reset{font-size:6px}
  .modal-backdrop.open .cengel-feedback{display:none}
  .modal-backdrop.open .cengel-check{flex-basis:25px;min-height:25px;padding:0 4px;font-size:6px}
  .modal-backdrop.open .cengel-foot{display:none}
  .modal-backdrop.open .wordsearch-session{flex:1 1 auto;min-height:0;height:auto;overflow:auto}
  .modal-backdrop.open .wordsearch-board-wrap{width:min(calc(100vw - 28px),40dvh);max-height:40dvh}
}
}

/* Crossword-first mobile layout: keep the interlocking grid in view and move
   clue navigation into a drawer instead of shrinking the board beside a list. */
.modal-backdrop.open .modal.cengel-modal{width:min(920px,100%);height:min(94dvh,940px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px);display:flex;flex-direction:column;overflow:hidden;padding:24px 26px 16px}
.modal-backdrop.open .modal.cengel-modal>.eyebrow{flex:0 0 auto;margin-bottom:5px}
.modal-backdrop.open .modal.cengel-modal>h2{flex:0 0 auto;margin-bottom:5px;font-size:clamp(25px,4vw,32px)}
.modal-backdrop.open .modal.cengel-modal>.modal-description{flex:0 0 auto;max-width:740px;margin-bottom:10px;font-size:12px;line-height:1.35}
.modal-backdrop.open .modal.cengel-modal .modal-close{position:absolute;top:18px;right:20px;width:42px;height:42px;margin:0;background:#20281f;z-index:8}
.modal-backdrop.open .modal.cengel-modal #game-area{display:flex;flex:1 1 auto;min-height:0;overflow:hidden}
.modal-backdrop.open .modal.cengel-modal>.feedback{display:none!important}
.modal-backdrop.open .cengel-session{position:relative;display:flex;flex:1 1 auto;flex-direction:column;min-height:0;height:100%;padding-top:7px;overflow:hidden}
.modal-backdrop.open .cengel-meta{flex:0 0 27px;min-height:27px;margin:0 0 4px;font-size:9px}
.modal-backdrop.open .cengel-date-picker{width:122px;padding:4px 6px;font-size:10px}
.modal-backdrop.open .cengel-progress{flex:0 0 3px;margin:0 0 5px}
.cengel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:0 0 38px;min-width:0}
.cengel-count{color:#c3b681;font-size:10px;letter-spacing:.06em}
.cengel-zoom-controls{display:flex;align-items:center;gap:4px}
.cengel-zoom-controls button,.cengel-open-clues,.cengel-clue-nav button,.cengel-drawer-close{min-width:36px;min-height:34px;padding:0 9px;border:1px solid #53604b;background:#20291f;color:#eee6ce;font:600 12px var(--sans)}
.cengel-zoom-controls .cengel-zoom-value{min-width:42px;color:#c8c3ad;text-align:center;font-size:10px}
.cengel-zoom-controls .cengel-fit{min-width:70px;font-size:10px}
.cengel-open-clues{min-width:92px;color:#e4d29b;font-size:10px}
.cengel-open-clues b{margin-left:4px;color:#d7c37e}
.modal-backdrop.open .cengel-board-viewport{display:flex;flex:1 1 auto;align-items:center;justify-content:flex-start;min-height:135px;height:auto;max-height:none;margin:3px 0 0;padding:5px;overflow:auto;overscroll-behavior:contain;border:1px solid #786b48;background:linear-gradient(145deg,#202a21,#151c16);scrollbar-color:#80734b #20291f;scrollbar-width:thin}
.modal-backdrop.open .cengel-board{display:grid;flex:none;min-height:0;gap:1px;justify-content:stretch;align-content:stretch;align-items:stretch;justify-items:stretch;padding:1px;margin-inline:auto;border:1px solid #80734b;box-shadow:0 8px 20px #0005}
.modal-backdrop.open .cengel-cell.letter-cell b{font-size:clamp(10px,2.5vw,16px)}
.modal-backdrop.open .cengel-cell.letter-cell i{font-size:clamp(6px,.85vw,9px)}
.modal-backdrop.open .cengel-board-caption{display:flex;flex:0 0 20px;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:3px 2px 4px;color:#929b88;font-size:9px;letter-spacing:.04em}
.modal-backdrop.open .cengel-dock{flex:0 0 auto;min-height:0;padding:9px 11px 8px;border:1px solid #4b5845;background:linear-gradient(145deg,#202b22,#19221b)}
.cengel-dock-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
.modal-backdrop.open .cengel-current-clue{min-height:0;padding:0;border:0;background:transparent;box-shadow:none}
.modal-backdrop.open .cengel-clue-eyebrow{font-size:9px;letter-spacing:.1em}
.modal-backdrop.open .cengel-current-clue p{margin:4px 0 0;font-size:clamp(16px,2.3vw,20px);line-height:1.2}
.cengel-clue-nav{display:flex;gap:5px}
.cengel-clue-nav button{width:38px;height:38px;padding:0;color:#e2d5ae;font-size:22px}
.modal-backdrop.open .cengel-keyboard{width:min(100%,590px);max-width:590px;gap:4px;margin:8px auto 0}
.modal-backdrop.open .cengel-key-row{gap:4px}
.modal-backdrop.open .cengel-key-row button,.modal-backdrop.open .cengel-backspace{flex:1 1 0;min-width:0;height:36px;min-height:36px;padding:0 2px;font-size:12px}
.modal-backdrop.open .cengel-key-row .cengel-backspace{flex:0 0 38px}
.cengel-dock-actions{display:flex;align-items:center;gap:12px;margin-top:7px}
.modal-backdrop.open .cengel-hint,.modal-backdrop.open .cengel-reset{min-height:34px;padding:4px 3px;font-size:10px}
.modal-backdrop.open .cengel-hint b{width:21px;height:21px;font-size:10px}
.modal-backdrop.open .cengel-dock-actions .cengel-check{flex:1;min-height:37px;padding:0 12px;font-size:10px}
.modal-backdrop.open .cengel-feedback{flex:0 0 auto;min-height:15px;margin:3px 0 0;font-size:10px}
.modal-backdrop.open .cengel-clue-drawer[hidden]{display:none!important}
.modal-backdrop.open .cengel-clue-drawer:not([hidden]){position:absolute;z-index:7;inset:-3px -4px -3px;display:flex;justify-content:flex-end;background:#070b08b8}
.cengel-drawer-panel{display:flex;flex-direction:column;width:min(420px,100%);height:100%;padding:15px;border-left:1px solid #85774d;background:linear-gradient(145deg,#263127,#141b15);box-shadow:-16px 0 40px #0008}
.cengel-drawer-head{display:flex;align-items:center;justify-content:space-between;color:#f0ead8;font:500 21px var(--serif)}
.cengel-drawer-count{margin-left:8px;color:#c3b681;font:600 11px var(--sans)}
.modal-backdrop.open .cengel-clue-tabs{flex:0 0 auto;gap:6px;margin:11px 0 8px}
.modal-backdrop.open .cengel-clue-tabs button{min-height:40px;padding:6px 10px;font-size:10px}
.modal-backdrop.open .cengel-clue-list{display:grid;flex:1 1 auto;min-height:0;grid-template-columns:1fr;gap:5px;max-height:none;margin:0;overflow:auto}
.modal-backdrop.open .cengel-clue-item{min-height:48px;padding:8px 10px;font-size:12px;line-height:1.3}
.modal-backdrop.open .cengel-clue-item b{font-size:14px;flex-basis:24px}
.modal-backdrop.open .cengel-clue-item i{font-size:10px}
@media(max-width:650px){
  .modal-backdrop.open .modal.cengel-modal{width:100%;height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 8px);max-height:none;padding:19px 13px 9px}
  .modal-backdrop.open .modal.cengel-modal>.eyebrow{font-size:8px}
  .modal-backdrop.open .modal.cengel-modal>h2{max-width:calc(100% - 48px);font-size:27px}
  .modal-backdrop.open .modal.cengel-modal>.modal-description{max-width:calc(100% - 5px);margin-bottom:7px;font-size:11px}
  .modal-backdrop.open .modal.cengel-modal .modal-close{top:12px;right:12px;width:40px;height:40px}
  .modal-backdrop.open .cengel-session{padding-top:5px}
  .modal-backdrop.open .cengel-meta{flex-basis:26px;min-height:26px;font-size:8px}
  .modal-backdrop.open .cengel-date-picker{width:106px;padding:3px;font-size:9px}
  .cengel-toolbar{flex-basis:36px;gap:5px}
  .cengel-zoom-controls{gap:3px}
  .cengel-zoom-controls button,.cengel-open-clues{min-width:32px;min-height:34px;padding:0 7px;font-size:11px}
  .cengel-zoom-controls .cengel-fit{min-width:63px;font-size:9px}
  .cengel-count{max-width:96px;font-size:8px;line-height:1.2}
  .cengel-open-clues{min-width:76px;font-size:9px}
  .modal-backdrop.open .cengel-board-viewport{min-height:120px;margin-top:2px;padding:3px}
  .modal-backdrop.open .cengel-board-caption{flex-basis:19px;font-size:8px}
  .modal-backdrop.open .cengel-dock{padding:7px 8px 6px}
  .modal-backdrop.open .cengel-clue-eyebrow{font-size:8px}
  .modal-backdrop.open .cengel-current-clue p{font-size:16px;line-height:1.18}
  .cengel-clue-nav button{width:34px;height:36px;min-width:34px;min-height:36px}
  .modal-backdrop.open .cengel-keyboard{gap:4px;margin-top:7px}
  .modal-backdrop.open .cengel-key-row{gap:3px}
  .modal-backdrop.open .cengel-key-row button,.modal-backdrop.open .cengel-backspace{height:34px;min-height:34px;font-size:11px}
  .modal-backdrop.open .cengel-key-row .cengel-backspace{flex-basis:32px}
  .cengel-dock-actions{gap:8px;margin-top:6px}
  .modal-backdrop.open .cengel-hint,.modal-backdrop.open .cengel-reset{font-size:9px}
  .modal-backdrop.open .cengel-dock-actions .cengel-check{min-height:36px;font-size:9px}
  .modal-backdrop.open .cengel-feedback{font-size:9px}
}

/* Keep the fixed clue dock inside short phones and narrow compact devices. */
@media(max-width:340px) and (orientation:portrait){
  .modal-backdrop.open .modal.cengel-modal{padding:12px 9px 7px}
  .modal-backdrop.open .modal.cengel-modal>.eyebrow{margin-bottom:3px}
  .modal-backdrop.open .modal.cengel-modal>h2{font-size:23px;line-height:1;margin-bottom:4px}
  .modal-backdrop.open .modal.cengel-modal>.modal-description{display:none}
  .modal-backdrop.open .modal.cengel-modal .modal-close{top:9px;right:9px;width:34px;height:34px}
  .modal-backdrop.open .cengel-meta{flex-basis:23px;min-height:23px;margin-bottom:2px}
  .cengel-toolbar{flex-basis:32px;gap:3px}
  .cengel-zoom-controls button,.cengel-open-clues{min-width:28px;min-height:30px;padding:0 5px;font-size:10px}
  .cengel-zoom-controls .cengel-fit{min-width:55px;font-size:8px}
  .cengel-count{max-width:73px;font-size:7px}
  .cengel-open-clues{min-width:65px;font-size:8px}
  .modal-backdrop.open .cengel-board-viewport{min-height:78px;flex:1 1 78px}
  .modal-backdrop.open .cengel-board-caption{flex-basis:16px;font-size:7px}
  .modal-backdrop.open .cengel-dock{padding:5px 6px 4px}
  .modal-backdrop.open .cengel-current-clue p{font-size:14px}
  .cengel-clue-nav button{width:29px;height:30px;min-width:29px;min-height:30px}
  .modal-backdrop.open .cengel-keyboard{gap:3px;margin-top:4px}
  .modal-backdrop.open .cengel-key-row{gap:2px}
  .modal-backdrop.open .cengel-key-row button,.modal-backdrop.open .cengel-backspace{height:28px;min-height:28px;font-size:10px}
  .modal-backdrop.open .cengel-key-row .cengel-backspace{flex-basis:27px}
  .cengel-dock-actions{gap:5px;margin-top:3px}
  .modal-backdrop.open .cengel-hint,.modal-backdrop.open .cengel-reset{min-height:27px;font-size:8px}
  .modal-backdrop.open .cengel-dock-actions .cengel-check{min-height:29px;font-size:8px}
  .modal-backdrop.open .cengel-feedback{min-height:10px;margin-top:1px;font-size:8px}
}

/* Landscape phones need a shorter title and keyboard while retaining the grid. */
@media(max-height:500px) and (orientation:landscape){
  .modal-backdrop.open .modal.cengel-modal{height:100dvh;max-height:100dvh;padding:5px 14px 4px}
  .modal-backdrop.open .modal.cengel-modal>.eyebrow{margin-bottom:2px;font-size:7px}
  .modal-backdrop.open .modal.cengel-modal>h2{margin-bottom:3px;font-size:22px;line-height:1}
  .modal-backdrop.open .modal.cengel-modal>.modal-description{display:none}
  .modal-backdrop.open .modal.cengel-modal .modal-close{top:5px;right:10px;width:31px;height:31px}
  .modal-backdrop.open .modal.cengel-modal #game-area{flex:1 1 0;min-height:0}
  .modal-backdrop.open .cengel-session{height:auto;flex:1 1 0;padding-top:3px}
  .modal-backdrop.open .cengel-meta{flex-basis:19px;min-height:19px;margin-bottom:2px;font-size:7px}
  .modal-backdrop.open .cengel-date-picker{width:96px;padding:2px 4px;font-size:8px}
  .modal-backdrop.open .cengel-progress{margin-bottom:2px}
  .cengel-toolbar{flex-basis:27px;gap:5px}
  .cengel-zoom-controls button,.cengel-open-clues{min-height:25px;padding:0 6px;font-size:9px}
  .cengel-zoom-controls .cengel-fit{min-width:57px;font-size:8px}
  .cengel-count{font-size:7px}
  .modal-backdrop.open .cengel-board-viewport{min-height:62px;margin-top:1px;padding:2px}
  .modal-backdrop.open .cengel-board-caption{flex-basis:14px;padding:1px;font-size:7px}
  .modal-backdrop.open .cengel-dock{padding:3px 8px}
  .modal-backdrop.open .cengel-clue-eyebrow{font-size:7px}
  .modal-backdrop.open .cengel-current-clue p{margin-top:2px;font-size:14px;line-height:1.05}
  .cengel-clue-nav button{width:28px;height:27px;min-width:28px;min-height:27px;font-size:17px}
  .modal-backdrop.open .cengel-keyboard{gap:2px;margin-top:3px}
  .modal-backdrop.open .cengel-key-row{gap:2px}
  .modal-backdrop.open .cengel-key-row button,.modal-backdrop.open .cengel-backspace{height:24px;min-height:24px;font-size:9px}
  .modal-backdrop.open .cengel-key-row .cengel-backspace{flex-basis:27px}
  .cengel-dock-actions{gap:8px;margin-top:2px}
  .modal-backdrop.open .cengel-hint,.modal-backdrop.open .cengel-reset{min-height:23px;padding:1px;font-size:8px}
  .modal-backdrop.open .cengel-hint b{width:17px;height:17px;font-size:8px}
  .modal-backdrop.open .cengel-dock-actions .cengel-check{min-height:26px;font-size:8px}
  .modal-backdrop.open .cengel-feedback{min-height:9px;margin:1px 0 0;font-size:7px}
}
/* The cover carries its own logo. Keep the topbar's slot so every page starts at the same height. */
body.home-cover .shell>.topbar{visibility:hidden}

/* Refined cover spine: gold rules, brand mark, vertical wordmark and issue number. */
.cover-spine{left:-24px;width:25px;writing-mode:initial;transform:none;flex-direction:column;justify-content:center;gap:9px;padding:12px 0;background:linear-gradient(90deg,#101726,#18253a 66%,#111a28);border-color:#a88f5a;box-shadow:inset -2px 0 4px #0005}
.cover-spine:before,.cover-spine:after{content:"";position:absolute;left:4px;right:4px;height:1px;background:#d9bd78;opacity:.8}
.cover-spine:before{top:8px}.cover-spine:after{bottom:8px}
.cover-spine-logo{display:block;width:13px;height:13px;flex:none;object-fit:contain}
.cover-spine-name{writing-mode:vertical-rl;transform:rotate(180deg);font:600 6px/1 var(--sans);letter-spacing:.18em;color:#e2d3ac}
.cover-spine small{position:absolute;bottom:12px;left:0;right:0;text-align:center;color:#d3bd7f;font:500 5px/1 var(--sans);letter-spacing:.08em}
@media(max-width:600px){.cover-spine{left:0;width:23px;gap:8px}.cover-spine-logo{width:12px;height:12px}.cover-spine-name{font-size:5.5px}}
@media(orientation:landscape) and (max-height:500px) and (min-width:601px) and (max-width:950px){.physical-cover .cover-spine{left:0;width:22px}}

/* Use the complete cover lockup on the spine, scaled and turned as one mark. */
.cover-spine-logo{position:absolute;left:50%;top:50%;width:92px;height:auto;max-width:none;transform:translate(-50%,-50%) rotate(-90deg);object-fit:contain}
.cover-spine-name{display:none}
.cover-spine-logo{filter:drop-shadow(0 0 1px #ead49c66) brightness(1.04)}

/* One confident masthead: larger wordmark, no duplicate descriptor, subtle gold rule. */
.cover-brandline{justify-content:flex-start;align-items:center}
.cover-brand-logo{width:min(58%,215px)}
.cover-masthead-rule{position:absolute;z-index:3;top:calc(18% - 10px);left:clamp(22px,7vw,34px);right:clamp(14px,4.2vw,25px);height:1px;background:linear-gradient(90deg,#d9bd78aa,#d9bd7855,transparent)}

/* Cover entry: an editorial serif link, integrated with the navy cover. */
.nocturne .physical-cover .cover-turn{right:clamp(14px,4.2vw,25px);bottom:clamp(42px,7dvh,54px);width:auto;height:auto;min-height:0;max-width:calc(100% - 42px);display:flex;align-items:center;gap:5px;padding:4px 0 7px;background:transparent;border:0;border-radius:0;color:#f0e8d5;box-shadow:none;font:italic clamp(13px,3.3vw,16px)/1.2 var(--serif);letter-spacing:-.02em;white-space:nowrap}
.nocturne .physical-cover .cover-turn:after{content:"";position:absolute;left:0;right:17px;bottom:2px;height:1px;background:linear-gradient(90deg,#d9bd78 0 38%,#d9bd7866 100%)}
.nocturne .physical-cover .cover-turn:hover{transform:translateY(-2px);color:#fff7e4}
.nocturne .physical-cover .cover-turn-label{display:inline;width:auto;height:auto;flex:0 1 auto;border-radius:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}
.nocturne .physical-cover .cover-turn-label em{color:#e0c16a;font:inherit}
.nocturne .physical-cover .cover-turn-arrow{display:inline-grid;place-items:center;width:16px;height:18px;flex:none;background:none;color:#e0c16a;font-size:14px;line-height:1;margin:0}
.nocturne .physical-cover .cover-turn-arrow svg{display:block;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.nocturne .physical-cover .cover-turn:focus-visible{outline:1px solid #d9bd78;outline-offset:5px}

/* Keep the full-bleed cover art inside the visible face, beside the inset spine. */
@media(max-width:600px){
  .nocturne .physical-cover .cover-spine{left:0;width:23px}
  .nocturne .physical-cover .cover-art{left:23px;width:calc(100% - 23px)}
}
@media(orientation:landscape) and (max-height:500px) and (min-width:601px) and (max-width:950px){
  .nocturne .physical-cover .cover-spine{left:0;width:22px}
  .nocturne .physical-cover .cover-art{left:22px;width:calc(100% - 22px)}
}
@media(max-width:600px) and (orientation:landscape) and (max-height:360px){
  .nocturne .physical-cover .cover-spine{left:0;width:10px}
  .nocturne .physical-cover .cover-art{left:10px;width:calc(100% - 10px)}
}


/* Phone play stays on one screen: selection never enlarges or scrolls the board. */
@media(max-width:650px), (max-height:500px) and (orientation:landscape){
  .modal-backdrop.open .modal.cengel-modal{overflow:hidden}
  .modal-backdrop.open .cengel-board-viewport{overflow:hidden;overscroll-behavior:none}
  .modal-backdrop.open .cengel-zoom-controls{display:none!important}
}

/* Matched new-generation pages and full-screen playable game previews. */
.newgen-page{display:flex;flex-direction:column;}
.newgen-page .paper-kicker{margin-bottom:8px;}
.newgen-page h2{margin-bottom:8px;}
.newgen-page .paper-intro{margin-bottom:10px;}
.newgen-art{position:relative;display:grid;place-items:center;flex:1 1 150px;min-height:132px;max-height:220px;margin:8px 0 10px;overflow:hidden;border:1px solid #c8c0ae;background:radial-gradient(ellipse at 50% 46%,#f7f2e5,#e5dfcf 76%);}
.newgen-art>span{position:absolute;bottom:10px;color:#827b68;font-size:7px;letter-spacing:.16em;}
.block-art-grid{width:min(44%,190px);aspect-ratio:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;transform:perspective(360px) rotateX(5deg);}
.block-art-grid i{border:1px solid #c8c0ac;background:linear-gradient(145deg,#f0eadb,#ddd5c2);box-shadow:inset 0 1px #fff9;}
.block-art-grid i.filled{border-color:#8e7a4b;background:linear-gradient(145deg,#ead99d,#b89c55);box-shadow:inset 1px 1px #fff8,2px 3px 0 #8c7746,3px 4px 5px #2a271c30;}
.arrows-art-grid{width:min(59%,252px);aspect-ratio:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;transform:perspective(420px) rotateX(4deg);}
.arrows-art-grid i{display:grid;place-items:center;border:1px solid #c8c0ae;background:linear-gradient(145deg,#f2ecdd,#e1d9c7);color:#89836e;font:600 clamp(10px,2vw,17px)/1 var(--serif);font-style:normal;}
.arrows-art-grid i:not(:empty){border-color:#847243;background:linear-gradient(145deg,#34463a,#1b2a21);color:#e2c874;text-shadow:0 2px 1px #0009;box-shadow:inset 0 1px #ffffff30,0 2px 0 #101a14,0 3px 5px #0003;}
.newgen-page .paper-body{max-width:440px;margin:0 0 8px;}
.newgen-page .paper-link{align-self:flex-start;margin: auto 0 48px;flex:none;}
.standalone-game-open{padding:0!important;place-items:stretch!important;}
.standalone-game-open .standalone-game-modal{width:100%;height:100dvh;max-height:100dvh;min-height:0;max-width:none;display:flex;flex-direction:column;overflow:hidden;padding:0;border:0;box-shadow:none;background:#0c1411;}
.standalone-game-modal>.eyebrow,.standalone-game-modal>h2,.standalone-game-modal>.modal-description,.standalone-game-modal>.feedback{display:none!important;}
.standalone-game-modal #game-area{display:flex;flex:1 1 auto;width:100%;height:100%;min-height:0;margin:0;overflow:hidden;}
.standalone-game-frame{display:block;flex:1 1 auto;width:100%;height:100%;min-height:0;border:0;background:#0c1411;}
.standalone-game-modal .modal-close{z-index:12;top:10px;right:10px;width:40px;height:40px;display:grid;place-items:center;border:1px solid #a88f5a;border-radius:50%;background:#15201be8;color:#eee7d2;font-size:27px;line-height:1;}
html.embedded .top-tools{margin-right:52px;}
@media(max-width:600px){
  .newgen-art{flex:1 1 130px;min-height:118px;max-height:190px;margin:5px 0 8px;}
  .newgen-art>span{bottom:7px;font-size:6px;}
  .block-art-grid{width:min(48%,176px);gap:2px;}
  .arrows-art-grid{width:min(62%,228px);gap:2px;}
  .newgen-page .paper-body{font-size:clamp(9px,2.8vw,12px);line-height:1.55;margin:0 0 6px;}
  /* Keep the action above the fixed folio footer so it remains tappable. */
  .newgen-page .paper-link{font-size:clamp(8px,2.6vw,10px);padding:7px 0 5px;margin-bottom:48px;}
  .standalone-game-modal .modal-close{position:fixed;top:calc(env(safe-area-inset-top) + 8px);right:10px;width:42px;height:42px;}
}

/* Keep the mobile cover and interior pages on the same page frame. */
@media(max-width:600px){
  .physical-cover{width:100%;height:100%;max-height:100%;aspect-ratio:auto;}
  .paper-leaf.newgen-page{display:none;}
  .paper-leaf.newgen-page.mobile-leaf-active{display:flex;}
}
@media(max-height:700px){
  .newgen-art{flex-basis:110px;min-height:96px;max-height:160px;margin:4px 0 6px;}
  .newgen-page .paper-kicker{margin-top:clamp(5px,1.3dvh,9px);margin-bottom:4px;}
  .newgen-page h2{font-size:clamp(25px,7.5vw,35px);margin-bottom:4px;}
  .newgen-page .paper-intro{font-size:clamp(8px,2.4vw,10px);line-height:1.3;margin-bottom:5px;}
  .newgen-page .paper-body{font-size:clamp(8px,2.25vw,10px);line-height:1.35;}
}
@media(max-width:360px){
  .newgen-page .paper-body{font-size:9px;}
  .newgen-art{min-height:108px;}
  .arrows-art-grid{width:66%;}
}

/* Keep new-generation actions clear of the page controls in short landscape tablets. */
@media(orientation:landscape) and (max-height:600px) and (min-width:601px){
  .newgen-art{flex:0 1 58px;min-height:54px;max-height:58px;margin:3px 0 4px;}
  .newgen-page .paper-body{font-size:7px;line-height:1.25;margin:1px 0 3px;}
  .newgen-page .paper-link{margin:0 0 30px;padding:3px 0;font-size:6px;}
}

/* Keep modal controls reachable and visibly focused on compact touch screens. */
#modal :focus-visible{outline:2px solid #f0d98b;outline-offset:2px}
@media(max-width:600px){
  .modal-backdrop.open .modal .modal-close{width:44px;height:44px;min-width:44px;min-height:44px}
}
