:root{color-scheme:dark;--ivory:#f3e5c9;--gold:#d6b67c;--muted:#b4bdb3;--teal:#143c3b;--line:#647163;--ink:#122323;font-family:Arial,Helvetica,sans-serif;color:var(--ivory);background:#081817}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;min-height:100svh}.ambient{position:fixed;inset:0;background:linear-gradient(90deg,#04141140,#061c2240),url('assets/lounge.jpg') center/cover;z-index:-1}.ambient:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#051515aa,transparent 60%)}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:var(--ivory);background:#123331ed;border:1px solid #927f59;border-radius:7px;min-height:48px;padding:12px 18px;cursor:pointer;transition:background .15s,box-shadow .15s,transform .15s}button:hover:not(:disabled){background:#25534f;border-color:#e2c58e}button:disabled{opacity:.43;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffe2a4;outline-offset:5px}h1,h2,p{margin-top:0}h1,h2,.wordmark{font-family:Georgia,'Times New Roman',serif;font-weight:400}h1{font-size:clamp(30px,4vw,50px);letter-spacing:-.02em}h2{font-size:26px}p{line-height:1.65}header{max-width:1480px;margin:auto;padding:26px 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d6b67c30}header .wordmark{font-size:30px;color:#efd49e;border:0;background:none;padding:0;letter-spacing:.01em}nav{display:flex;gap:12px}nav button{background:#0a2523b3;border-color:#ab966d50;font-size:14px}main{max-width:1240px;margin:auto}.eyebrow{font-size:11px;letter-spacing:.19em;font-weight:600;color:var(--gold);line-height:1.7}.home{text-align:center;padding:55px 20px 0;position:relative;min-height:690px}.home .ornament{color:var(--gold);font-size:30px;margin:16px 0 8px}.home h1{font-size:clamp(48px,7.5vw,100px);color:#f2d49a;letter-spacing:-.035em;margin:0;text-shadow:0 3px 18px #0008}.tagline{font-family:Georgia,serif;font-size:clamp(20px,2.2vw,28px);margin-top:10px}.intro{font-size:16px;color:#d0d4c7;margin:24px 0}.home-actions{display:grid;gap:12px;max-width:330px;margin:auto}.home-actions button{display:flex;justify-content:space-between;font-family:Georgia,serif;font-size:22px;padding:15px 24px}.primary{background:linear-gradient(145deg,#a07943,#715128);border-color:#e1bd7c;color:#fff3d6;box-shadow:inset 0 1px #ffe6ba50,0 5px 20px #0005}.primary:hover:not(:disabled){background:#987543}.home-note{color:#c0b397;font-size:10px;letter-spacing:.19em;margin-top:24px}.table-vignette{display:flex;gap:9px;justify-content:center;align-items:center;margin:42px auto 20px;transform:rotate(-7deg);filter:drop-shadow(8px 14px 8px #000a)}.table-vignette>.domino{width:108px;height:54px}.table-vignette>.domino.vertical{width:54px;height:108px;transform:rotate(22deg);margin:0 18px}.brand-footer{display:flex;gap:20px;justify-content:center;align-items:center;font-size:10px;letter-spacing:.17em;color:#cfc4ac;padding:28px 16px}.brand-footer span{font-family:Georgia,serif;letter-spacing:.02em;font-size:13px;color:#b6bbaa}.brand-footer a{color:#cfc4ac;letter-spacing:0;font-size:12px}.game{padding:25px 32px 0}.game-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.game-heading h1{font-size:38px;margin:6px 0 0}.text-button{background:none;border:none;color:#cfb482;padding:0;min-height:38px;font-size:14px;margin-bottom:6px}.progress{font-family:Georgia,serif;font-size:26px;text-align:right;color:#dfcaa4}.progress small{display:block;font-family:Arial,sans-serif;font-size:9px;letter-spacing:.15em;margin-top:8px;color:var(--muted)}.play-area{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(310px,1fr);gap:42px;align-items:start}.board-section{padding:14px 8px}.board-frame{max-width:570px;margin:auto;background:repeating-linear-gradient(6deg,#5b361f 0,#69442b 3px,#57351f 6px,#3e281c 12px);padding:25px;border-radius:12px;border:2px solid #bd955c;box-shadow:inset 0 0 0 4px #321f16,inset 0 0 0 6px #ad845044,0 18px 45px #000a;position:relative;transition:box-shadow .4s}.board-frame.complete{box-shadow:0 0 24px #eeb05ba6,inset 0 0 0 4px #321f16,0 20px 40px #0008}.screw{position:absolute;width:8px;height:8px;border-radius:50%;background:linear-gradient(45deg,#c5a065,#604425);border:1px solid #352613}.screw:after{content:'';position:absolute;width:4px;height:1px;background:#382814;top:2px;left:1px;transform:rotate(30deg)}.tl{left:9px;top:9px}.tr{right:9px;top:9px}.bl{left:9px;bottom:9px}.br{right:9px;bottom:9px}.board{position:relative;display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr);aspect-ratio:var(--cols)/var(--rows);border:5px solid #061e1d;border-radius:4px;background:radial-gradient(ellipse at top,#225452,#133b3a 70%);box-shadow:0 0 0 1px #b3915a, inset 0 0 30px #0007;isolation:isolate}.board:before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' opacity='.12' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");opacity:.35;pointer-events:none}.cell{grid-column:auto;min-width:0;min-height:0;padding:0;border:1px solid #8ca19748;border-radius:3px;margin:2px;background:transparent;box-shadow:inset 0 1px 3px #0005}.cell:hover:not(:disabled){background:#aad8c31c}.cell.blocked{background:#041c1cbd;border:1px solid #031616;box-shadow:none;opacity:1}.placed{z-index:2;min-width:0;min-height:0;padding:0;margin:3px;border:0;background:transparent!important;position:relative;touch-action:none}.domino{display:flex;width:100%;height:100%;border-radius:7px;background:linear-gradient(120deg,#ffefd1,#e4ceaa);box-shadow:inset 0 0 0 1px #fbedcf,inset 0 -4px 3px #9b805b66,1px 5px 4px #0007;color:var(--ink);overflow:hidden;pointer-events:none}.domino.vertical{flex-direction:column}.half{position:relative;display:flex;flex:1;min-width:0;min-height:0;align-items:center;justify-content:center;padding:12%}.horizontal .half{padding:8%}.half+.half{border-left:1px solid #816e4c70;box-shadow:inset 1px 0 #fff6}.vertical .half+.half{border-left:0;border-top:1px solid #816e4c70;box-shadow:inset 0 1px #fff6}.pips{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:10%;width:100%;height:100%;aspect-ratio:1;max-width:80px;max-height:80px}.pips i{display:block;aspect-ratio:1;max-width:17px;border-radius:50%;align-self:center;justify-self:center;width:100%}.pips .dot{background:#182626;box-shadow:inset 1px 2px 1px #0009,0 1px #fff7}.half small{position:absolute;bottom:3px;right:5px;font-size:13px;font-weight:700;background:#f9ebceaa;border-radius:2px;padding:0 1px}.pin{position:absolute;right:5px;top:2px;color:#856126;font-size:12px}.fixed{cursor:default}.table-caption{text-align:center;color:#c2b69a;font-size:10px;letter-spacing:.16em;margin:22px 0}.rack-panel{background:linear-gradient(145deg,#143533f2,#0a2524f2);border:1px solid #a68c575c;border-radius:10px;padding:27px;box-shadow:0 15px 35px #0006;min-height:380px}.rack-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.rack-title h2{margin:0}.rack-title>span{font-size:12px;color:#b4c0b1}.rack-instruction{font-size:14px;color:#bdc8b9;margin:12px 0 22px}.rack{display:grid;grid-template-columns:repeat(3,1fr);gap:18px 12px;align-items:center;min-height:84px;padding:6px 0 15px}.rack-piece{height:58px;padding:0;border:2px solid transparent;min-width:0;min-height:0;background:none!important;touch-action:none;border-radius:7px;position:relative}.rack-piece .domino.vertical{width:50%;height:112px;margin:auto;transform:scale(.6);transform-origin:center 25px}.rack-piece.selected{outline:2px solid #efd390;outline-offset:5px;transform:translateY(-3px)}.rack-piece.selected:after{content:'SELECTED';position:absolute;bottom:-16px;left:0;right:0;color:#f2d599;font-size:8px;letter-spacing:.1em}.selection-controls{display:flex;gap:10px;margin-top:15px}.selection-controls button{font-size:14px;flex:1;padding:10px 6px}.rotate kbd{font:11px Arial;border:1px solid #869082;padding:2px 4px;margin-left:5px;border-radius:3px}.orientation-note{font-size:12px;line-height:1.5;color:#c3cbbc;margin:15px 0;min-height:36px}.tools{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;border-top:1px solid #7e8c6e3d;padding-top:18px;margin-top:10px}.tools button{font-size:12px;padding:8px 2px;min-height:48px;border-color:#9a946060}.guidance{font-size:14px;line-height:1.6;margin-top:18px;padding:14px;border-left:2px solid #baa372;background:#051a1a55;border-radius:0 5px 5px 0;min-height:73px}.guidance.error{border-left:3px dashed #efb393}.game-footer{display:flex;justify-content:space-between;color:#b5bdac;font-size:12px;margin:28px 0 12px}.game-footer>span:first-child{font-family:Georgia,serif;font-style:italic;font-size:17px}.completion-copy{color:#cbd2c0;margin:18px 0}.completion-actions{display:grid;gap:12px;margin:24px 0}.collection{padding:48px 32px}.collection>h1{margin:10px 0}.subtle{color:#bbc8b7;font-size:14px}.puzzle-list{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:32px}.puzzle-card{display:flex;flex-direction:column;align-items:flex-start;gap:14px;position:relative;padding:20px;background:#0e302ef2;min-height:218px}.card-number{font:28px Georgia;color:#dfbf80}.puzzle-card>strong{font:19px Georgia}.puzzle-card>span:last-child{font-size:11px;line-height:1.5;color:#cad0ba}.puzzle-card.done{border-color:#d4b778}.mini-board{display:grid;grid-template-columns:repeat(var(--cols),13px);gap:2px}.mini-board i{width:13px;height:13px;background:#dac5a0;border-radius:1px}.mini-board .off{opacity:0}#preview{position:absolute;inset:0;pointer-events:none;z-index:5}.preview-cell{position:absolute;background:#b8d6c99c;border:3px solid #d0e9b6;border-radius:4px;padding:6px;opacity:.9}.preview-cell .half{height:100%;border:0}.preview-cell.invalid{border:3px dashed #ffd4a4;background:#a263478f}.preview-cell>b{position:absolute;right:3px;top:0;color:#fff;text-shadow:0 1px #000;font-size:20px}.contact-error{position:absolute;border:4px dashed #ffe5b5;background:#9b422229}.hinted{outline:3px dashed #ffdb91;outline-offset:5px}#ghost{position:fixed;z-index:50;width:108px;height:54px;display:none;pointer-events:none;transform:translate(-25%,-50%);opacity:.92;filter:drop-shadow(5px 10px 5px #0007)}#ghost .vertical{width:54px;height:108px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}dialog{color:var(--ivory);background:linear-gradient(145deg,#193c38,#0b2523);border:1px solid #c1a36f;border-radius:12px;width:min(560px,calc(100% - 32px));max-height:calc(100svh - 48px);padding:0;box-shadow:0 20px 90px #000c}dialog::backdrop{background:#02100ede;backdrop-filter:blur(5px)}.dialog-inner{padding:32px}dialog h2{font-size:31px;margin:12px 0 24px}dialog p,.rules{font-size:15px;line-height:1.7;color:#d5ddce}.rules{padding-left:20px}.rules li{padding:0 0 18px 8px}.settings label{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px;min-height:48px}.settings strong{display:block;font-size:16px;font-weight:400}.settings small{display:block;color:#bec7b7;line-height:1.5;margin-top:5px}.settings input{width:24px;height:24px;accent-color:#d6b67c}dialog .primary{width:100%;margin-top:10px}.reduce-motion *, .reduce-motion *:before,.reduce-motion *:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media(min-width:1300px){.game{padding-top:38px}.board-section{padding-top:24px}.rack-panel{padding:30px}.rack-piece{height:66px}}@media(max-width:900px){header{padding:20px 24px}.play-area{gap:24px;grid-template-columns:minmax(0,1.15fr) minmax(290px,1fr)}.game{padding:20px}.rack-panel{padding:18px}.board-frame{padding:18px}.puzzle-list{grid-template-columns:repeat(3,1fr)}.game-heading h1{font-size:32px}}@media(max-width:680px){header{padding:12px 18px}header .wordmark{font-size:24px}nav{gap:6px}nav button{padding:8px 9px;font-size:12px;min-height:44px}.home{padding-top:38px;min-height:660px}.home .eyebrow{font-size:9px}.home h1{font-size:52px}.intro{font-size:15px}.table-vignette{margin-top:34px}.game{padding:12px 16px 0}.game-heading{margin-bottom:8px}.game-heading h1{font-size:29px;margin:5px 0 0}.eyebrow{font-size:9px;letter-spacing:.12em}.game-heading .progress{font-size:21px;margin-bottom:4px}.progress small{font-size:8px;max-width:60px;line-height:1.4}.play-area{display:flex;flex-direction:column;gap:0}.board-section{width:100%;padding:12px 6px 0}.board-frame{max-width:420px;padding:18px}.board{border-width:3px}.table-caption{font-size:8px;margin:16px 0}.rack-panel{width:100%;padding:18px;min-height:0}.rack-title h2{font-size:23px}.rack-instruction{font-size:12px;line-height:1.5;margin:8px 0 10px}.rack-instruction br{display:none}.rack{grid-template-columns:repeat(3,1fr);gap:22px 16px;padding:9px 0 14px;min-height:70px}.rack-piece{height:58px}.rack .pips i{max-width:10px}.selection-controls{margin-top:8px}.orientation-note{min-height:0;margin:12px 0}.tools{padding-top:12px;margin-top:8px}.tools button{font-size:13px}.guidance{min-height:0;font-size:13px;margin-top:12px;padding:10px}.game-footer{margin:20px 0;align-items:center}.game-footer>span:last-child{display:none}.brand-footer{flex-wrap:wrap;gap:12px;padding:20px 12px;font-size:9px}.brand-footer span{font-size:12px}.collection{padding:28px 18px}.puzzle-list{grid-template-columns:repeat(2,1fr);gap:12px}.puzzle-card{padding:16px;min-height:214px}.puzzle-card>strong{font-size:18px}.dialog-inner{padding:24px}.placed{margin:2px}.pips i{max-width:13px}.half small{font-size:11px;bottom:1px;right:3px}}
@media(max-width:680px){body.playing{padding-bottom:136px}.playing .tools{position:fixed;bottom:0;left:0;right:0;z-index:20;padding:10px 16px max(10px,env(safe-area-inset-bottom));margin:0;background:#092524f5;border-top:1px solid #9e895b;box-shadow:0 -6px 25px #0005}.playing .selection-controls{position:fixed;left:0;right:0;bottom:68px;z-index:20;margin:0;padding:8px 16px;background:#092524f5}.playing .selection-controls button{min-height:44px}.playing .rack-panel{padding-bottom:14px}.playing .orientation-note{margin-top:18px}.playing .game-footer{margin-bottom:0}}
