@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#0c111c;--surface:#1c2330;--text:#f0eee9;--muted:#8b93a3;--gold:#e8c87c;--line:#ffffff12;font-family:'DM Sans',sans-serif;font-size:16px;background:var(--bg);color:var(--text)}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 35%,#18223466,transparent 58%),var(--bg);min-height:100svh}button,input{-webkit-tap-highlight-color:transparent;font:inherit}button{cursor:pointer;color:inherit;border:0;background:none;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{opacity:.25;cursor:default}button,button svg{transition:color .2s,background .2s,opacity .2s,transform .2s}button:active:not(:disabled){transform:scale(.97)}svg{width:22px;height:22px;flex-shrink:0}button:hover{color:var(--gold)}.shell{max-width:1040px;margin:auto;padding:0 42px}header{height:106px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px;font-family:Manrope,sans-serif;font-size:24px;font-weight:700;letter-spacing:6px;padding:10px 0}.brand-mark{width:26px;height:26px;border:1.5px solid var(--gold);border-radius:50%;position:relative;display:block}.brand-mark:before{content:'';position:absolute;width:7px;height:7px;background:var(--gold);border-radius:50%;left:8px;top:8px}.brand-mark:after{content:'';position:absolute;width:5px;height:5px;background:var(--gold);border:3px solid var(--bg);box-sizing:content-box;border-radius:50%;left:14px;top:-4px}nav{display:flex;gap:8px}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:#9ca3b1;border-radius:50%}.icon-button:hover{background:#ffffff08}.game{width:min(100%,420px);margin:31px auto 0;position:relative}.daily-heading{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1.6px;color:var(--muted)}.daily-heading b{color:var(--text);font-weight:500;margin-left:3px}.daily-heading>span:last-child{letter-spacing:.3px}.game-meta{display:flex;justify-content:space-between;font-size:12px;letter-spacing:1.4px;color:var(--muted);margin:21px 0 2px}.game-meta b{color:var(--gold);font-size:14px;margin-left:4px}.streak{display:flex;gap:7px;align-items:center}.tiny-orbit{font-size:20px;color:var(--gold);line-height:16px}.board{width:100%;aspect-ratio:1;position:relative;touch-action:none;user-select:none;-webkit-user-select:none}.rings{position:absolute;inset:0;width:100%;height:100%;overflow:visible;fill:none}.outer-ring{stroke:#77829633;stroke-width:1}.inner-ring{stroke:#77829612;stroke-width:1;stroke-dasharray:2 8}.completion-ring{stroke:var(--gold);stroke-width:1.5;stroke-dasharray:930;stroke-dashoffset:930;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset 1.2s ease;opacity:.7}.finished .completion-ring{stroke-dashoffset:0}#gesture-line{stroke:var(--gold);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:.45}.tile{position:absolute;width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;transform:translate(-50%,-50%);background:linear-gradient(155deg,#2c3442 0%,#202734 55%,#1b222e);border:1px solid #ffffff12;box-shadow:0 5px 0 #101622,0 10px 20px #0005,inset 0 1px 0 #ffffff12;font-family:Manrope,sans-serif;font-size:29px;font-weight:600;z-index:2;transition:left .52s cubic-bezier(.22,.8,.24,1.08),top .52s cubic-bezier(.22,.8,.24,1.08),background .3s,box-shadow .3s,transform .15s,color .3s}.tile:hover{color:var(--text);background:linear-gradient(155deg,#384354,#252e3b)}.tile:active:not(:disabled){transform:translate(-50%,-47%) scale(.97)}.tile.center{width:82px;height:82px;color:#262418;background:linear-gradient(140deg,#f5dc99,#e5c373 70%,#dab565);border-color:#f8dda780;box-shadow:0 5px 0 #8c713b,0 9px 26px #0005,0 0 35px #e4c4720a,inset 0 2px 2px #ffefc680;z-index:4;font-size:33px}.tile.selected:not(.center){box-shadow:0 5px 0 #101622,0 0 0 1px #e8c87c80,inset 0 1px 0 #ffffff22;color:var(--gold)}.tile i{position:absolute;bottom:9px;width:3px;height:3px;border-radius:50%;background:transparent;transition:background .3s}.tile.visited i{background:var(--gold)}.tile.center i{background:#615025}.board-caption{position:absolute;left:0;right:0;top:65%;text-align:center;font-size:9px;letter-spacing:1.6px;color:#697383;pointer-events:none}.moving .center{animation:settle .54s}.moving .outer-ring{animation:ring-pulse .55s}.entry{margin-top:2px}.word-tray{height:59px;display:flex;align-items:center;justify-content:center;gap:5px;font-family:Manrope,sans-serif;font-size:30px;font-weight:500;letter-spacing:2px}.word-tray span:not(.tray-placeholder){animation:letter-in .16s ease-out}.word-tray .required{color:var(--gold)}.word-tray .last{position:relative}.word-tray .last:after{content:'';position:absolute;bottom:-5px;height:2px;width:12px;background:var(--gold);left:50%;transform:translateX(-50%)}.word-tray.long{font-size:18px;gap:1px;letter-spacing:0;flex-wrap:wrap}.tray-placeholder{font:500 12px 'DM Sans',sans-serif;letter-spacing:3px;color:#596373}.feedback{min-height:26px;margin:6px 0 15px;text-align:center;color:var(--muted);font-size:12px;letter-spacing:.25px}.feedback.error{color:#efa895}.feedback.success{color:var(--gold)}.entry-actions{display:flex;align-items:center;gap:18px;justify-content:center}.primary{background:var(--gold);color:#25251f;min-height:51px;border-radius:8px;padding:0 22px;display:flex;align-items:center;justify-content:center;gap:24px;font-size:12px;font-weight:800;letter-spacing:1.3px;box-shadow:inset 0 1px 0 #fff5,0 3px 0 #9c834b}.primary:hover{background:#f4d894;color:#25251f}.submit{width:230px}.primary svg{width:19px}.wide{width:100%}.progress-area{margin-top:31px;border-top:1px solid var(--line);padding-top:20px}.progress-heading{display:flex;justify-content:space-between;font-size:11px;letter-spacing:1.3px;color:var(--muted)}.progress-heading b{color:var(--gold);font-weight:500}.progress-letters{display:flex;justify-content:space-between;margin:19px 5px 16px}.progress-letters>span{width:29px;height:35px;display:flex;align-items:flex-start;justify-content:center;color:#647083;font-size:15px;position:relative;transition:color .3s}.progress-letters>span i{position:absolute;bottom:0;width:4px;height:4px;background:#303949;border-radius:50%}.progress-letters>span.visited{color:var(--gold)}.progress-letters>span.visited i{background:var(--gold)}.progress-letters>span.current i{box-shadow:0 0 0 3px #e8c87c20}.history-toggle{width:100%;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:17px 0;font-size:11px;letter-spacing:1.5px;color:var(--muted)}.history-toggle b{display:inline-block;margin-left:10px;color:var(--text);font-weight:500}.history-toggle>span:last-child{font-size:19px;line-height:14px}.history{max-height:0;overflow:auto;opacity:0;display:flex;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--muted);transition:max-height .3s,opacity .3s,padding .3s}.history.open{max-height:110px;opacity:1;padding:8px 0 17px}.history span{padding:5px 8px;background:#ffffff05;border-radius:4px}.history b{color:var(--gold)}footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin:34px 0 0;padding:22px 0;color:#566172;font-size:10px;letter-spacing:2px}.footer-orbit{font-size:21px;color:#697282}.home{max-width:420px;margin:45px auto 0;text-align:center}.eyebrow{font-size:11px;letter-spacing:2.5px;color:var(--gold)}.home-orbit{position:relative;height:255px;width:290px;margin:24px auto 7px}.home-ring{position:absolute;width:215px;height:215px;border:1px solid #74809944;border-radius:50%;left:37.5px;top:20px;transform:rotate(-25deg)}.home-ring.r2{width:155px;height:155px;left:67.5px;top:50px;border-color:#74809918}.home-center,.home-letter{position:absolute;border-radius:50%;font-family:Manrope,sans-serif;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 0 #131a26,0 10px 25px #0004;background:linear-gradient(145deg,#303a48,#1c2431);border:1px solid #ffffff12}.home-center{left:101px;top:83px;width:88px;height:88px;background:linear-gradient(140deg,#f2d58c,#dfbb6b);font-size:42px;color:#27251f;box-shadow:0 5px 0 #90743d,0 8px 36px #0005}.home-letter{width:56px;height:56px;font-size:23px}.l1{left:103px;top:-5px}.l2{left:225px;top:90px}.l3{left:134px;top:205px}.l4{left:4px;top:123px}.home h1{font-family:Manrope,sans-serif;font-size:39px;line-height:1.24;font-weight:500;letter-spacing:-1.7px;margin:20px 0 17px}.home h1 span{color:var(--gold)}.home p{color:var(--muted);font-size:15px;line-height:1.75;margin:0 0 27px}.home .primary{min-height:55px}.text-button{font-size:13px;color:var(--muted);padding:20px 5px}.text-button span{margin-left:7px}.home-metrics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:15px;padding-top:25px}.home-metrics>div+div{border-left:1px solid var(--line)}.home-metrics strong{font-family:Manrope,sans-serif;font-size:19px;font-weight:500;display:block;margin-bottom:8px}.home-metrics span{font-size:9px;letter-spacing:1.3px;color:var(--muted)}.tutorial{position:fixed;left:max(24px,calc(50% - 470px));top:255px;width:210px;border-left:1px solid #e8c87c50;padding:4px 0 7px 19px;animation:letter-in .3s}.tutorial span{font-size:10px;color:var(--gold);letter-spacing:2px}.tutorial strong{font:500 23px Manrope,sans-serif;display:block;margin:15px 0 9px}.tutorial p{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 17px}.small-button{font-size:12px;color:var(--gold);border-bottom:1px solid #e8c87c55;padding:4px 0}.next-practice{display:block;margin:auto;padding:7px}dialog{width:min(calc(100% - 28px),460px);border:1px solid #ffffff16;padding:40px 30px 28px;border-radius:17px;background:#141c29;color:var(--text);box-shadow:0 30px 100px #0008;max-height:90svh;overflow:auto}dialog::backdrop{background:#050910bc;backdrop-filter:blur(9px)}.modal-close{position:absolute;right:9px;top:9px}.modal-close svg{width:18px}h2{font:500 31px Manrope,sans-serif;letter-spacing:-1px;margin:15px 0 25px}.rules{padding-left:23px}.rules li{padding-left:8px;color:var(--gold);margin:0 0 20px;font-size:16px}.rules b{color:var(--text);font-weight:500}.rules p{color:#a2abb9;font-size:14px;line-height:1.6;margin:7px 0}.help-note{padding:15px 0;border-top:1px solid var(--line);font-size:13px;color:#a2abb9;line-height:1.6}.muted{color:var(--muted);line-height:1.7}.small{font-size:12px}.setting{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:22px 0;cursor:pointer}.setting b{font-weight:500}.setting small{display:block;font-size:12px;color:var(--muted);margin-top:7px}.setting input{appearance:none;width:40px;height:23px;background:#353f4f;border-radius:15px;position:relative;cursor:pointer;flex-shrink:0}.setting input:before{content:'';position:absolute;width:17px;height:17px;border-radius:50%;left:3px;top:3px;background:#adb3bd;transition:transform .2s}.setting input:checked{background:var(--gold)}.setting input:checked:before{transform:translateX(17px);background:#27271f}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0}.stats-grid>div{padding:19px 4px;border-top:1px solid var(--line);min-width:0}.stats-grid strong{display:block;font-family:Manrope,sans-serif;font-size:23px;font-weight:500;color:var(--gold);margin-bottom:8px;overflow-wrap:anywhere}.stats-grid span{font-size:12px;color:var(--muted)}.result{text-align:center}.result-emblem{font-size:107px;color:var(--gold);line-height:1.4;margin:9px 0 0}.result-emblem span{display:block;font-size:10px;letter-spacing:2px;margin-top:-15px}.result h2{font:400 44px Georgia,serif;letter-spacing:-1px;margin:25px 0 9px}.result-sub{color:var(--muted);font-size:14px;margin:0 0 28px}.result-numbers{display:grid;grid-template-columns:repeat(3,1fr)}.result-numbers>div+div{border-left:1px solid var(--line)}.result-numbers strong{display:block;font:500 29px Manrope,sans-serif}.result-numbers span{display:block;font-size:10px;letter-spacing:2px;color:var(--muted);margin-top:7px}.par-result{font-size:12px;letter-spacing:2px;color:var(--gold);margin:22px 0}.route{font-size:15px;line-height:1.9;overflow-wrap:anywhere;color:var(--gold);padding:15px 8px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.route i{color:#667083;font-style:normal;padding:0 3px}.result-streak{font-size:11px;letter-spacing:1.5px;color:var(--muted);margin:18px 0}.result .primary{margin-top:20px}.result-links{display:flex;justify-content:center;gap:24px;margin-top:16px}.result-links button{font-size:12px;color:var(--muted)}.copy-status{font-size:12px;color:var(--gold);margin-top:9px}.copy-status textarea{width:100%;height:120px}.countdown{font-size:10px;color:var(--muted);letter-spacing:1.4px;border-top:1px solid var(--line);padding-top:18px}.countdown b{display:block;font-size:18px;font-weight:500;letter-spacing:3px;color:var(--text);margin-top:10px}.shake{animation:shake .22s}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes letter-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes settle{50%{filter:brightness(1.13)}100%{filter:brightness(1)}}@keyframes ring-pulse{50%{stroke:#e8c87c80}100%{stroke:#77829633}}
@media(min-width:900px){.game{margin-top:32px}.shell{padding-bottom:5px}.game .board{width:400px;margin:auto}.game .word-tray{height:48px}.game .progress-area{margin-top:25px}footer{margin-top:25px}.home{margin-top:34px}.home-orbit{height:250px}.home h1{margin-top:11px}}
@media(max-width:899px){.tutorial{position:relative;left:auto;top:auto;width:100%;display:flex;align-items:center;gap:15px;margin:12px 0 0;padding:12px 14px;background:#e8c87c06;border-radius:4px}.tutorial>div{flex:1}.tutorial strong{font-size:15px;display:inline;margin:0 0 0 12px}.tutorial p{font-size:12px;margin:6px 0 0;line-height:1.4}.tutorial .small-button{white-space:nowrap}.tutorial span{font-size:9px}}
@media(max-width:600px){.shell{padding:0 25px}header{height:78px}.brand{font-size:21px;letter-spacing:5px;gap:10px}.brand-mark{width:23px;height:23px}.brand-mark:before{left:6.5px;top:6.5px}.brand-mark:after{left:12px}nav{gap:1px}.icon-button{width:39px;height:42px}nav svg{width:20px}.game{margin-top:23px;max-width:375px}.daily-heading{font-size:10px;letter-spacing:1.2px}.game-meta{margin-top:18px;font-size:10px}.tile{width:62px;height:62px;font-size:26px}.tile.center{width:72px;height:72px;font-size:30px}.board-caption{font-size:8px;letter-spacing:1px;top:64%}.entry{margin-top:0}.word-tray{height:43px;font-size:27px}.feedback{font-size:11px;margin:8px 0 12px;min-height:19px}.entry-actions{gap:14px}.submit{min-height:48px;width:216px;font-size:11px}.progress-area{margin-top:26px;padding-top:17px}.progress-heading{font-size:10px}.progress-letters{margin:15px 3px 13px}.history-toggle{padding:14px 0;font-size:10px}.home{margin-top:29px}.home-orbit{margin-top:20px;transform:scale(.92);height:245px}.home h1{font-size:35px;margin-top:5px}.home p{font-size:14px;margin-bottom:25px}.home-metrics{padding-top:21px;margin-top:8px}.home-metrics strong{font-size:17px}.home-metrics span{font-size:8px}footer{margin-top:26px;font-size:8px;padding:19px 0}.tutorial{margin-top:8px}.text-button{font-size:12px}dialog{padding:39px 25px 25px}}
@media(max-width:600px) and (max-height:760px){header{height:62px}.game{margin-top:16px}.game-meta{margin-top:13px}.board{max-width:300px;margin:auto}.tile{width:56px;height:56px;font-size:24px}.tile.center{width:65px;height:65px;font-size:28px}.entry{margin-top:0}.word-tray{height:35px}.progress-area{margin-top:19px;padding-top:14px}.progress-letters{margin-top:12px;margin-bottom:9px}.feedback{margin:6px 0 10px}footer{margin-top:15px;padding:12px 0}.home{margin-top:20px}.home-orbit{height:217px;transform:scale(.82);margin-top:4px;margin-bottom:-2px}.home h1{font-size:32px}.home p{margin-bottom:18px}.home-metrics{padding-top:16px}.tutorial{padding:10px}.tutorial p{font-size:11px}}
@media(max-width:360px){.shell{padding:0 17px}.daily-heading{font-size:9px}.board{max-width:278px}.tile{width:53px;height:53px}.tile.center{width:62px;height:62px}.tutorial strong{font-size:13px}.tutorial .small-button{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-resolution:1dppx){body{padding-bottom:env(safe-area-inset-bottom)}header{padding-top:env(safe-area-inset-top)}}
/* Visited outer tiles keep a gold rim and a check badge after leaving center. */
.tile.visited:not(.center){
 color:var(--gold);
 border:2px solid #d8b76c;
 background:linear-gradient(155deg,#3b3740 0%,#302e30 55%,#26262b);
 box-shadow:0 5px 0 #101622,0 10px 20px #0005,inset 0 1px 0 #f4d68b24;
}
.tile.visited:not(.center):hover{background:linear-gradient(155deg,#48414a,#353135)}
.tile.visited:not(.center).selected{box-shadow:0 5px 0 #101622,0 0 0 3px #e8c87c30,inset 0 1px 0 #f4d68b35}
.tile.visited:not(.center) i{
 width:19px;height:19px;right:-2px;top:-2px;bottom:auto;
 display:flex;align-items:center;justify-content:center;
 border:2px solid var(--bg);background:var(--gold);border-radius:50%;
}
.tile.visited:not(.center) i:after{
 content:'';width:7px;height:4px;border-left:1.7px solid #29271f;
 border-bottom:1.7px solid #29271f;transform:translateY(-1px) rotate(-45deg);
}
