:root{color:#233d36;font-synthesis:none;--green:#36765a;--yellow:#aa7725;--gray:#66716e;--border:#dddcd3;background:#f5f3ed;font-family:Inter,Segoe UI,sans-serif;font-weight:400}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,.button{border:1px solid var(--border);color:#233d36;cursor:pointer;background:#fffefa;border-radius:9px;padding:12px 18px;font-weight:650;transition:background .12s,transform .12s}button:hover:not(:disabled){background:#ecefe7}button:active:not(:disabled){transform:translateY(1px)}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,.board:focus-visible{outline-offset:4px;outline:3px solid #ad7c28}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.primary{color:#fff;background:#294f40;border-color:#294f40;width:100%;padding:15px 18px}.primary:hover:not(:disabled){background:#1c3f31}.button{text-align:center;display:block}.small{color:#737c73;font-size:12px;line-height:1.7}.eyebrow{letter-spacing:1.7px;color:#7c8274;font-size:10px;font-weight:750}.app-shell{max-width:1240px;margin:auto;padding:0 44px}.header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:100px;display:flex}.brand{letter-spacing:-1.3px;align-items:center;font-size:27px;font-weight:800;display:flex}.brand:hover{text-decoration:none}.brand-dot{color:#8ba387}.brand-icon{color:#fff;background:#2e5543;border-radius:6px;justify-content:center;align-items:center;width:34px;height:38px;margin-right:11px;font-size:23px;display:inline-flex;position:relative;transform:rotate(-5deg);box-shadow:3px 3px #d9dfce}.brand-icon span{color:#c6cc90;font-size:15px;position:absolute;bottom:0;right:3px}.header-right{align-items:center;gap:24px;display:flex}.connection{color:#788075;align-items:center;gap:7px;font-size:11px;display:flex}.connection i{background:#a68b5c;border-radius:100%;width:6px;height:6px}.connection.online i{background:#56805b}.icon-button{border-radius:50%;flex-shrink:0;width:32px;height:32px;padding:0;font-size:16px}.game-layout{grid-template-columns:minmax(0,1fr) 300px;gap:68px;max-width:1000px;margin:40px auto 28px;display:grid}.game-main{min-width:0}.game-heading{justify-content:space-between;align-items:center;display:flex}.game-heading h1{letter-spacing:-1px;margin:8px 0 0;font-family:Georgia,serif;font-size:31px;font-weight:400}.attempt-badge{background:#eaece2;border:1px solid #dcdfd0;border-radius:9px;padding:10px 13px;font-size:20px;font-weight:700}.attempt-badge span{color:#85907b;margin-left:4px;font-size:12px}.board-wrap{width:max-content;max-width:100%;margin:27px auto 0;position:relative}.board{border-radius:4px;outline:none;flex-direction:column;gap:7px;display:flex}.board-row{gap:7px;display:flex}.tile{color:#254536;background:#fcfbf7;border:1.5px solid #dedfd5;border-radius:7px;justify-content:center;align-items:center;width:56px;height:56px;font-size:27px;font-weight:700;display:flex;position:relative}.tile.current{border-color:#b6c4b1}.tile.filled{background:#f1f4ea;border-color:#698774}.tile small{font-size:12px;position:absolute;bottom:1px;right:5px}.tile.correct,.key.correct,.legend .correct{background:var(--green);color:#fff;border-color:var(--green)}.tile.present,.key.present,.legend .present{background:var(--yellow);color:#fff;border-color:var(--yellow)}.tile.absent,.key.absent,.legend .absent{background:var(--gray);color:#fff;border-color:var(--gray)}.board-overlay{text-align:center;background:#f5f3edea;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.board-overlay h2{margin:16px 0 4px;font-family:Georgia,serif;font-size:24px;font-weight:400;line-height:1.3}.board-overlay p{color:#77816e;font-size:12px;line-height:1.8}.overlay-icon{color:#85946f;font-size:34px}.message{text-align:center;color:#5b6d5b;scrollbar-width:thin;height:51px;padding:8px 0;font-size:12px;line-height:1.4;overflow-y:auto}.keyboard{flex-direction:column;gap:6px;max-width:530px;margin:0 auto;display:flex}.key-row{justify-content:center;gap:5px;display:flex}.key{background:#e3e7dc;border:0;border-bottom:2px solid #d1d7c9;border-radius:6px;flex:1;min-width:0;height:47px;padding:0;font-size:13px;position:relative}.key:hover:not(:disabled):not(.correct):not(.present):not(.absent){background:#d4ddcb}.key.wide{flex:1.7;font-size:10px}.key small{font-size:9px;position:absolute;bottom:0;right:3px}.key:disabled{opacity:.65}.legend{color:#7b8275;justify-content:center;gap:17px;margin-top:22px;font-size:9px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend i{border-radius:3px;justify-content:center;align-items:center;width:15px;height:15px;font-size:10px;font-style:normal;display:inline-flex}.room-panel{padding-top:1px}.room-card{border:1px solid var(--border);background:#fdfcf8;border-radius:14px;padding:22px;box-shadow:0 5px 20px #283a2911}.section-heading{justify-content:space-between;align-items:center;display:flex}.pill{color:#647a58;background:#edf0e5;border-radius:20px;padding:5px 8px;font-size:9px}.room-code{background:#f2f2ea;border:1px dashed #d7dccb;border-radius:9px;justify-content:space-between;align-items:center;margin:17px 0 23px;padding:12px 14px;display:flex}.room-code .small{font-size:10px;display:block}.room-code strong{letter-spacing:2px;font-family:monospace;font-size:20px}.room-code .icon-button{background:0 0}.players-heading{justify-content:space-between;align-items:center;display:flex}.players-heading h2{margin:0;font-size:13px}.players-heading h2 span{color:#929c86;margin-left:5px}.players-heading .small{font-size:10px}.players{flex-direction:column;gap:5px;max-height:385px;margin:12px 0;padding:0;list-style:none;display:flex;overflow:auto}.players li{align-items:center;gap:9px;padding:10px 0;display:flex}.avatar{color:#657f52;background:#e5ebda;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex;position:relative}.avatar-1{color:#9c7843;background:#ece0cd}.avatar-2{color:#577381;background:#dde6e9}.avatar-3{color:#80648b;background:#e8deec}.avatar i{background:#bcbfb7;border:2px solid #fff;border-radius:100%;width:8px;height:8px;position:absolute;bottom:-1px;right:-1px}.avatar i.is-online{background:#698c5a}.player-info{flex:1;min-width:0}.player-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;display:block;overflow:hidden}.player-info strong small{color:#929a8b;font-size:9px;font-weight:400}.player-info>span{color:#899180;margin-top:3px;font-size:9px;display:block}.host-tag{color:#9c8b52}.player-progress{text-align:right}.player-progress strong{color:#697b61;font-size:10px}.player-progress>div{gap:3px;margin-top:6px;display:flex}.player-progress i{background:#e9ece1;border-radius:2px;width:6px;height:6px}.player-progress i.used{background:#a7b59b}.player-progress i.solved{background:#528361}.host-actions{text-align:center;border-top:1px solid #ecece3;margin-top:16px;padding-top:18px}.host-actions .small{margin:11px 0 0;font-size:10px}.host-actions .primary{padding:13px;font-size:12px}.text-button{color:#818b77;background:0 0;border:0;padding:8px;font-size:11px}.leave{margin:13px auto 0;font-size:10px;display:block}.side-note{text-align:center;color:#889376;padding:30px 10px}.side-note>span{font-size:25px}.side-note p{margin:10px;font-family:Georgia,serif;font-size:19px;font-style:italic;line-height:1.4}.side-note small{color:#99a08d;font-size:10px;line-height:1.8}.answer{text-align:center;background:#edf2e7;border-radius:8px;flex-direction:column;gap:7px;padding:16px;display:flex}.answer strong{letter-spacing:5px;font-size:24px}.answer .small{font-size:10px}.welcome{grid-template-columns:1fr 390px;align-items:center;gap:80px;max-width:960px;margin:85px auto 100px;display:grid}.intro h1{letter-spacing:-2px;margin:22px 0;font:61px/1.05 Georgia,serif}.intro>p{color:#7b8476;font-size:14px;line-height:1.9}.sample{gap:6px;margin:28px 0;display:flex}.sample span{background:#fffefa;border:1px solid #d5d9ca;border-radius:6px;justify-content:center;align-items:center;width:42px;height:46px;font-size:21px;font-weight:700;display:flex}.sample .correct{background:var(--green);color:#fff;border-color:var(--green)}.sample .present{background:var(--yellow);color:#fff;border-color:var(--yellow)}.intro-note{color:#8a927d;font-size:11px;line-height:1.8}.intro-note span{float:left;margin-right:14px;font-size:23px}.entry-card{border:1px solid var(--border);background:#fdfcf8;border-radius:16px;padding:34px;box-shadow:0 10px 40px #34472c0b}.entry-card h2{margin:15px 0 26px;font:26px Georgia,serif}.entry-card p{font-size:13px;line-height:1.7}.entry-card form{flex-direction:column;gap:12px;display:flex}label{font-size:12px;font-weight:650}input{color:#294f40;background:#fffefa;border:1px solid #cdd3c4;border-radius:7px;width:100%;min-width:0;padding:14px}input::placeholder{color:#a0a591;font-size:12px}.entry-card .small{text-align:center;font-size:10px}.divider{color:#9a9f90;align-items:center;gap:12px;margin:25px 0;font-size:10px;display:flex}.divider:before,.divider:after{content:"";background:#e4e6db;flex:1;height:1px}.join-row{gap:8px;display:flex}.join-row button{padding:10px 15px;font-size:12px}.error{color:#a24d32}.loading{flex-direction:column;justify-content:center;align-items:center;min-height:65vh;display:flex}footer{border-top:1px solid var(--border);color:#949c89;justify-content:space-between;gap:12px;padding:22px 0 27px;font-size:9px;display:flex}footer a{text-decoration:underline}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}dialog{color:#294337;background:#fcfbf6;border:1px solid #d8ddcf;border-radius:16px;width:min(90vw,480px);padding:26px;box-shadow:0 25px 90px #1b34263b}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#243e3670}dialog p{color:#6c7b65;font-size:13px;line-height:1.8}dialog>button{margin-top:10px}.modal-heading{justify-content:space-between;align-items:center;gap:15px;display:flex}.modal-heading h2{margin:5px 0;font:26px Georgia,serif}@media (width>=1200px){.tile{width:58px;height:58px}.game-layout{margin-top:45px}}@media (width<=950px){.app-shell{padding:0 24px}.game-layout{grid-template-columns:minmax(0,1fr) 260px;gap:25px}.room-card{padding:16px}.game-heading h1{font-size:26px}.welcome{grid-template-columns:1fr 340px;gap:30px;margin:65px auto}.intro h1{font-size:49px}.footer-source{display:none}.key{font-size:12px}}@media (width<=700px){.app-shell{padding:0 16px}.header{height:70px}.brand{font-size:24px}.brand-icon{width:28px;height:32px;font-size:20px}.header-right{gap:14px}.connection{font-size:9px}.game-layout{flex-direction:column;gap:24px;max-width:490px;margin:25px auto 20px;display:flex}.game-heading h1{font-size:27px}.eyebrow{letter-spacing:1.3px;font-size:9px}.board-wrap{margin-top:21px}.tile{width:50px;height:50px;font-size:25px}.board-row,.board{gap:6px}.message{min-height:51px;padding-top:13px;font-size:11px}.key{height:48px;font-size:12px}.key-row{gap:4px}.key.wide{font-size:9px}.legend{gap:12px;margin-top:16px;font-size:8px}.room-panel{padding:0}.room-card{padding:18px}.room-code{margin:13px 0}.room-code strong{font-size:19px}.players{grid-template-columns:1fr 1fr;gap:0 15px;max-height:230px;display:grid}.players li{gap:7px}.player-info strong{font-size:11px}.player-progress i{width:4px}.avatar{width:27px;height:29px}.player-info>span{font-size:8px}.host-actions{margin-top:7px;padding-top:14px}.host-actions .primary{padding:14px}.side-note{display:none}.welcome{flex-direction:column;align-items:stretch;gap:28px;max-width:410px;margin:40px auto;display:flex}.intro h1{margin:18px 0;font-size:49px}.intro>p{font-size:13px}.sample{margin:20px 0}.intro-note{display:none}.entry-card{padding:25px}.entry-card h2{font-size:25px}footer{flex-direction:column;gap:4px;padding:18px 0;font-size:8px;line-height:1.8}.attempt-badge{font-size:18px}.board-overlay h2{font-size:23px}}@media (width<=360px){.app-shell{padding:0 10px}.game-heading h1{font-size:24px}.key{font-size:11px}.key-row{gap:3px}.players{grid-template-columns:1fr}.tile{width:48px;height:48px}}.mobile-presence{display:none}@media (width>=701px) and (height<=800px){.header{height:76px}.game-layout{margin-top:26px;margin-bottom:20px}.board-wrap{margin-top:20px}.tile{width:46px;height:46px;font-size:24px}.board,.board-row{gap:6px}.key{height:42px}.legend{margin-top:15px}.message{min-height:43px;padding-top:12px}}@media (width<=700px){.mobile-presence{gap:7px;padding:14px 0 0;display:flex;overflow:auto}.mobile-presence>span{background:#eaece2;border-radius:20px;flex-shrink:0;align-items:center;gap:6px;padding:6px 10px;font-size:10px;display:inline-flex}.mobile-presence strong{text-overflow:ellipsis;white-space:nowrap;max-width:85px;font-weight:500;overflow:hidden}.mobile-presence small{color:#728265;font-size:9px}.mobile-presence i{background:#acb3a3;border-radius:50%;width:5px;height:5px}.mobile-presence i.is-online{background:#58815c}.board-wrap{margin-top:16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.key:is(.correct,.present,.absent):disabled{opacity:1}.key.absent{border-style:dashed;border-width:1px}.key small{font-size:11px;font-weight:800;line-height:1;bottom:3px}:root .connection-card{--connection-card:var(--theme-card,#fdfcf8);--connection-ink:var(--theme-ink,#294f40);--connection-muted:var(--theme-muted,#62715e);--connection-line:var(--theme-line,#cbd4c2);border:1px solid var(--connection-line);width:min(440px,100%);color:var(--connection-ink);background:var(--connection-card);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:14px;margin:40px auto;padding:28px;display:flex}:root[data-theme=classic] .connection-card{--connection-card:#fdfcf8;--connection-ink:#294f40;--connection-muted:#62715e;--connection-line:#cbd4c2}.connection-card-mark{width:48px;height:48px;color:var(--connection-card);background:var(--connection-ink);border-radius:12px;place-items:center;font-size:27px;font-weight:750;display:grid}:root .connection-card h1{color:var(--connection-ink);margin:0;font-size:26px;line-height:1.25}:root .connection-card p{color:var(--connection-ink);overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.7}.connection-card>button{width:100%;min-height:44px;font-size:13px}.connection-card>small{color:var(--connection-muted);font-size:11px;line-height:1.5}.connection-card>button:focus-visible{outline:3px solid var(--connection-ink);outline-offset:3px}@media (width<=480px){:root .connection-card{margin-block:24px;padding:20px}:root .connection-card h1{font-size:23px}}@media (height<=450px){:root .connection-card{gap:10px;margin-block:16px;padding:16px}.connection-card-mark{display:none}:root .connection-card h1{font-size:22px}}.connection-card .connection-room-code{border:1px solid var(--connection-line);color:var(--connection-ink);letter-spacing:2px;border-radius:8px;padding:8px 12px;font-size:18px;font-weight:750;line-height:1.3}.bootstrap-state,.bootstrap-state :is(h1,p,summary,a){font-family:system-ui,sans-serif}.bootstrap-help{width:100%;font-size:12px}.bootstrap-help>summary,.bootstrap-help>a{min-height:44px;color:inherit;cursor:pointer;padding:12px;text-decoration:underline;display:block}.bootstrap-help>summary:focus-visible,.bootstrap-help>a:focus-visible{outline-offset:-3px;border-radius:6px;outline:3px solid}.bootstrap-help>p{margin:4px 0}
