:where(.source-body),:where(.source-body) *{box-sizing:border-box}html.source-page,html.source-page body{margin:0;font-family:ui-rounded,'Trebuchet MS',Arial,sans-serif}:where(.source-body) button,:where(.source-body) input,:where(.source-body) select,:where(.source-body) textarea{font:inherit}:where(.source-body) button{cursor:pointer}:where(.source-body) button:disabled{cursor:default}:where(.source-body) button:focus-visible,:where(.source-body) input:focus-visible,:where(.source-body) textarea:focus-visible,:where(.source-body) select:focus-visible{outline:3px solid #ffe091;outline-offset:3px}:where(.source-body) [hidden]{display:none!important}.source-body{overflow:hidden;width:100vw;height:100vh;background:transparent}.stage{position:absolute;left:50%;top:50%;width:720px;height:1280px;transform-origin:center;color:#fff4d7;isolation:isolate}.game-header{position:absolute;top:30px;left:48px;right:48px;height:76px;display:flex;align-items:center;justify-content:space-between;gap:15px}.game-header h1{font-size:43px;line-height:1;margin:0;letter-spacing:2px;text-shadow:0 4px #1b2516}.game-header p{font-size:14px;letter-spacing:2px;margin:8px 0 0;color:#cfdeb9}.puzzle-tag{max-width:168px;padding:13px 15px;background:#35241bea;border:1px solid #9c7646;border-radius:12px;font-size:17px;white-space:nowrap;font-weight:bold}.cabinet{position:absolute;top:124px;left:26px;right:26px;bottom:52px;border:18px solid #98603b;border-radius:32px;background:repeating-linear-gradient(2deg,#a97445 0,#b47e4d 3px,#a97445 6px,#a26c41 9px);box-shadow:inset 0 0 0 3px #dfac6b,inset 0 0 0 8px #5e3724,0 14px 0 #4f301f,0 20px 35px #0005;padding:15px;z-index:2}.scoreboard{height:92px;padding:6px 14px;background:#472c1dcf;border-radius:14px;box-shadow:inset 0 3px 5px #0006;margin:0 0 12px}.scoreboard h2{font-size:14px;letter-spacing:2px;color:#e9c995;margin:0 0 4px;text-align:center}.leaders{height:64px;display:flex;gap:8px;justify-content:center;align-items:center}.leader{display:grid;grid-template-columns:34px minmax(0,1fr);grid-template-rows:22px 20px;gap:0 4px;flex:1;min-width:0;max-width:108px}.avatar{grid-row:1/3;display:inline-flex;width:34px;height:34px;align-self:center;align-items:center;justify-content:center;border:2px solid #dbb979;border-radius:50%;background:hsl(var(--hue) 33% 42%);color:#fff;position:relative;overflow:hidden;font-weight:bold}.avatar img,.solver-pin img,.chip-avatar img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.player-name{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-self:end}.player-score{font-size:14px;color:#ffe19c}.empty-leader{font-size:16px;color:#dfc7a4;margin:0}.board-shell{height:508px;margin-top:8px;border:5px solid #633c25;border-radius:17px;background:radial-gradient(ellipse at 50% 15%,#5b3c27,#362317);box-shadow:inset 0 5px 14px #0007,0 2px 0 #e5b679;display:flex;align-items:center;justify-content:center;padding:16px;overflow:visible}.crossword{display:grid;gap:6px;flex:none;position:relative}.tile{width:var(--tile);height:var(--tile);position:relative;display:flex;justify-content:center;align-items:center;border:2px solid #e9c598;background:linear-gradient(145deg,#f7e8ca,#ecd3a3);border-radius:7px;box-shadow:0 4px 0 #a67a48,0 5px 6px #0005;color:#4b321f}.tile .letter{font-size:calc(var(--tile)*.6);font-weight:800;line-height:1}.tile.visible{background:linear-gradient(145deg,#fff4d8,#f2db9e)}.tile.solved{border-color:#8ec485;background:linear-gradient(145deg,#e7efd1,#c3d7a9);box-shadow:0 4px 0 #70864f,0 5px 6px #0004}.tile.star-cell{border-color:#e9bd48}.star-mark{font-size:17px;color:#b18820;text-shadow:0 1px #fff8}.solver-pin{display:flex;position:absolute;bottom:-7px;width:23px;height:23px;border:2px solid #fff1c8;background:hsl(var(--hue) 38% 39%);border-radius:50%;color:white;align-items:center;justify-content:center;font-size:14px;font-weight:bold;overflow:hidden;z-index:3}.word-status{height:53px;display:flex;justify-content:center;align-items:center;gap:7px;overflow:hidden}.word-chip{display:flex;align-items:center;gap:3px;border-radius:7px;font-size:14px;letter-spacing:1px;color:#f4d8af;background:#67452c;padding:6px 7px;white-space:nowrap}.word-chip.found{background:#426039;color:#eef7dc}.word-chip.gold{color:#ffdf77}.chip-avatar{position:relative;overflow:hidden;width:16px;height:16px;display:inline-flex;border-radius:50%;align-items:center;justify-content:center;color:#fff;background:hsl(var(--hue) 30% 40%);font-size:14px;letter-spacing:0}.felt{height:306px;border:6px solid #704325;border-radius:26px;background:radial-gradient(ellipse at 50% 40%,#427e4c,#1f5035 74%);box-shadow:inset 0 6px 18px #0006,0 2px 0 #e1ab65;position:relative}.rack{position:absolute;left:50%;top:7px;transform:translateX(-50%);width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,#2b653e33 45%,#163e2429 67%,transparent 69%);touch-action:none;user-select:none}.rack svg{position:absolute;inset:0;width:280px;height:280px;pointer-events:none;z-index:1;overflow:visible}.rack polyline{fill:none;stroke:#ffd36f;stroke-width:11;stroke-linecap:round;stroke-linejoin:round;opacity:.8}.rack-key{position:absolute;width:56px;height:56px;border-radius:50%;border:2px solid #efd9a7;background:linear-gradient(135deg,#fff6db,#e3c48b);box-shadow:0 5px 0 #b2854b,0 8px 10px #0004;color:#563925;font-size:34px;line-height:1;font-weight:bold;z-index:2;transition:left .45s,top .45s,background .15s,transform .15s;touch-action:none;padding:0}.rack-key.selected{background:#ffd477;transform:scale(1.08);box-shadow:0 4px 0 #ad762d,0 0 18px #ffce7680}.rack-key:disabled{opacity:1}.submit-word{position:absolute;left:65px;top:117px;width:150px;height:48px;border:0;background:transparent;color:#f6e5b8;font-size:24px;font-weight:bold;z-index:3;letter-spacing:1px;padding:0}.felt-control{position:absolute;bottom:27px;width:80px;text-align:center}.felt-control.left{left:10px}.felt-control.right{right:10px}.round-button{width:62px;height:62px;border-radius:50%;border:3px solid #a6cd84;box-shadow:0 4px 0 #16442c;background:linear-gradient(#63925d,#376543);color:#fff2b9;font-size:39px;line-height:1;padding:0}.round-button.hint{background:linear-gradient(#f5cd72,#be8c38);color:#57371b;border-color:#ffe4a0;box-shadow:0 4px 0 #765221;font-size:32px}.felt-control small{display:block;font-size:14px;font-weight:bold;color:#e4edc8;letter-spacing:.8px;margin:9px 0 0}.felt-control b{display:block;max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:#ffe29c;margin-top:4px}.cabinet-foot{height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.cabinet-foot strong{font-size:15px;letter-spacing:1px;color:#392a19}.cabinet-foot span{font-size:14px;color:#f6e4c5;letter-spacing:.6px}.activity{position:absolute;left:35px;right:35px;bottom:7px;text-align:center;font-size:17px;line-height:25px;height:27px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f3dfb9}.source-footer{position:absolute;bottom:6px;left:44px;right:44px;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:14px;color:#dee4cd;z-index:5}.mode-label{font-weight:bold;letter-spacing:1px;white-space:nowrap;padding:5px 7px;border-radius:5px;background:#254b30}.mode-label[data-mode=demo]{background:#825124;color:#fff1c6}.connection{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.leaves{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}.leaf{position:absolute;width:75px;height:220px;border-radius:100% 0 100% 0;background:repeating-linear-gradient(42deg,transparent 0,transparent 17px,#173d2580 18px,#173d2580 20px),linear-gradient(110deg,#306141,#4c7d48);box-shadow:inset 8px 0 13px #112c1b55;transform:rotate(-26deg)}.leaf:nth-child(1){left:1px;top:50px}.leaf:nth-child(2){right:1px;top:130px;transform:rotate(206deg)}.leaf:nth-child(3){left:-18px;bottom:60px;transform:rotate(-65deg)}.leaf:nth-child(4){right:-6px;bottom:5px;transform:rotate(22deg)}.banner{position:absolute;left:48px;right:48px;top:335px;min-height:195px;border:4px solid #edd28c;border-radius:22px;background:#173c2df5;box-shadow:0 14px 35px #0008;z-index:8;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;text-align:center;padding:24px}.banner strong{font-size:36px;color:#ffe09b;letter-spacing:2px}.banner span{font-size:20px;line-height:1.45;overflow-wrap:anywhere}.source-body .effects{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:10}.flying-letter{position:absolute;width:56px;height:56px;border-radius:9px;background:#ffe19b;color:#54381f;display:flex;justify-content:center;align-items:center;font-size:34px;font-weight:bold;box-shadow:0 0 25px #ffd475;transition:transform .72s ease-in,opacity .72s ease-in}.hint-flash{animation:glint .65s ease-out}.shake{animation:shake .35s ease-out}@keyframes glint{0%{filter:brightness(2);transform:scale(1.15)}100%{filter:brightness(1);transform:scale(1)}}@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.fatal{position:fixed;inset:20px;background:#342b22;color:#fff2d4;font:20px/1.6 Arial,sans-serif;padding:30px;z-index:99;border-radius:10px;overflow:auto}
/* Original golden cabinet and carved wooden tiles; no reference artwork. */
.board-shell{background:repeating-linear-gradient(0deg,#b97f3020 0 1px,transparent 1px 6px),radial-gradient(ellipse at 50% 12%,#efd083,#cd994e);border-color:#855024;box-shadow:inset 0 2px 0 #ffe0a2,inset 0 0 18px #86502066,0 2px 0 #e5b679}
.tile{background:linear-gradient(135deg,#64401e,#9c6a30);border-color:#aa7736;box-shadow:inset 0 4px 8px #35200999,0 1px 0 #ffe0a2}
.tile.visible,.tile.solved{background:repeating-linear-gradient(0deg,#96602610 0 1px,transparent 1px 4px),linear-gradient(135deg,#ffe3a2,#d2a55d);border-color:#f7d991;box-shadow:inset 0 0 0 2px #b18141,0 4px 0 #70421d,0 5px 6px #0005}
.star-mark{color:#ffd45b;text-shadow:0 2px 2px #5a3716;font-size:calc(var(--tile)*.55)}
.rack-key{border-radius:9px;background:repeating-linear-gradient(0deg,#98652d14 0 1px,transparent 1px 4px),linear-gradient(135deg,#ffe6ad,#d8ae6a);box-shadow:inset 0 0 0 3px #be9256,0 6px 0 #795026,0 8px 10px #0006}
.round-button.hint{background:linear-gradient(#8ab85b,#46752f);color:#fff0a8;border-color:#d6db85;box-shadow:0 4px 0 #315322}
/* The gift guide sits on the cabinet rails without changing the board or rack geometry. */
.gift-rails{position:absolute;inset:112px -18px 46px;pointer-events:none;z-index:7}.gift-rail{position:absolute;top:0;bottom:0;width:40px;display:flex;gap:8px}.gift-rail-left{left:0}.gift-rail-right{right:0;flex-direction:column}.gift-rail-card{min-width:40px;min-height:0;flex:1;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 4px;border:1px solid #e0bd73;border-radius:10px;background:#2b2019eb;box-shadow:0 5px 12px #0007;color:#fff0c7;writing-mode:vertical-rl;text-orientation:mixed}.gift-rail-card strong{font-size:14px;letter-spacing:1.5px;color:#ffd465}.gift-rail-card span{max-height:150px;overflow:hidden;text-overflow:ellipsis;font-size:14px}.rail-gift-icon{width:27px;height:27px;object-fit:contain;writing-mode:horizontal-tb}.source-page[data-tt-gift-icons=off] .rail-gift-icon{display:none!important}
/* Small game-specific additions to the pinned Codex-4 hosted shell. */
.preview-wrap{position:relative}.preview-tag{position:absolute;top:10px;right:10px;z-index:3;padding:5px 9px;border-radius:999px;background:#ffd43b;color:#101114;font-size:14px;font-weight:800}.practice-form>.primary{margin-top:16px}.puzzle-tools input[type=file]{padding:9px}.save-settings{min-width:180px;font-size:16px!important}.settings-panel .note{min-height:24px}.gift-actions{justify-content:flex-end}.tt-shell .effects{grid-template-columns:1fr}.tt-shell .button-row{display:flex;flex-wrap:wrap}.tt-shell .puzzle-tools .button-row{margin-top:14px}@media(prefers-reduced-motion:reduce){.source-body *,.source-body *::before,.source-body *::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
