:root{--paper: #F1ECDD;--paper-2: #E8E0C8;--ink: #1B2A44;--ink-soft: #55607A;--rule: rgba(64, 104, 168, .13);--margin: rgba(214, 92, 80, .38);--green: #2E9C61;--gold: #D6A12C;--grey: #A9A391;--white: #FBF8F0;--astronomy: #7D8CFF;--biology: #3FC596;--chemistry: #FF9A3D;--physics: #F2A93B;--medicine: #FF7E9C;--accent: var(--astronomy);--tile: 52px;--gap: 6px;--display: "Lilita One", "Rubik", system-ui, sans-serif;--serif: "Source Serif 4", Georgia, serif;--ui: "Rubik", system-ui, sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;color:var(--ink);font:400 16px/1.45 var(--ui);background-color:var(--paper);background-image:linear-gradient(90deg,transparent calc(50% - 300px),var(--margin) calc(50% - 300px),var(--margin) calc(50% - 298px),transparent calc(50% - 298px)),repeating-linear-gradient(180deg,transparent 0 31px,var(--rule) 31px 32px)}@media(max-width:640px){body{background-image:repeating-linear-gradient(180deg,transparent 0 31px,var(--rule) 31px 32px)}}button{font:inherit;color:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.page{max-width:540px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 16px 28px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:baseline;gap:8px;text-decoration:none;color:var(--ink)}.brand img{align-self:center;width:44px;height:auto}.wordmark{font-family:var(--display);font-size:28px;letter-spacing:.5px;line-height:1}.daily{font-family:var(--serif);font-style:italic;font-size:20px;color:var(--ink-soft)}.tools{display:flex;gap:6px}.tool{height:36px;min-width:36px;padding:0 10px;border:2px solid var(--ink);border-radius:10px;background:var(--white);box-shadow:0 3px 0 var(--ink);cursor:pointer;font-weight:600;font-size:13px}.tool:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.tool.icon{padding:0;display:grid;place-items:center}.tool svg{width:18px;height:18px}.dateline{margin:14px 0 6px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;font-family:var(--serif);font-size:17px}#dayNo{font-weight:700}.streak{margin-left:auto;font-family:var(--ui);font-size:14px;font-weight:600}.route{position:relative;display:grid;grid-template-columns:repeat(5,1fr);padding:46px 0 6px;margin:0 -4px}.route:before{content:"";position:absolute;left:10%;right:10%;top:72px;border-top:2px dashed rgba(27,42,68,.35)}.stop{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;padding:0 2px;cursor:pointer}.stop .planet{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;transition:transform .22s ease}.stop img{width:52px;height:52px;border-radius:50%;filter:saturate(.85);box-shadow:0 0 0 2px var(--ink)}.stop .name{font-size:12px;font-weight:500;line-height:1.2;text-align:center;color:var(--ink-soft)}.stop .mark{position:absolute;top:-6px;right:calc(50% - 32px);min-width:22px;height:22px;padding:0 5px;border-radius:11px;border:2px solid var(--ink);background:var(--white);font-size:11px;font-weight:700;line-height:18px;text-align:center}.stop .mark.won{background:var(--green);color:var(--white)}.stop .mark.lost{background:var(--grey);color:var(--white)}.stop.on .planet{transform:scale(1.12)}.stop.on .name{color:var(--ink);font-weight:700}.ufo{position:absolute;top:0;left:0;width:46px;height:auto;pointer-events:none;transition:transform .65s cubic-bezier(.45,0,.25,1)}.ufo.hover{animation:bob 2.6s ease-in-out infinite}@keyframes bob{50%{translate:0 -4px}}.sheet{margin-top:10px}.clue{position:relative;margin:0 0 16px;padding:16px 18px 14px;background:var(--white);border:2px solid var(--ink);border-radius:14px;box-shadow:0 4px 0 var(--ink)}.clue .tag{position:absolute;top:-13px;left:14px;padding:2px 10px;border:2px solid var(--ink);border-radius:8px;background:var(--accent);font-size:13px;font-weight:700;transform:rotate(-2deg)}.clue p{margin:6px 0 0;font-family:var(--serif);font-size:19px;line-height:1.5}.clue .len{margin-top:8px;font-family:var(--ui);font-size:13px;color:var(--ink-soft)}.grid{display:grid;gap:var(--gap);justify-content:center;margin:0 auto}.row{display:grid;grid-auto-flow:column;gap:var(--gap)}.row.shake{animation:shake .36s ease}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.tile{width:var(--tile);height:var(--tile);display:grid;place-items:center;border:2px solid rgba(27,42,68,.28);border-radius:8px;background:#fbf8f0b3;font-weight:700;font-size:calc(var(--tile) * .5);text-transform:uppercase}.tile.filled{border-color:var(--ink);animation:pop 90ms ease}@keyframes pop{50%{transform:scale(1.08)}}.tile.correct,.tile.present,.tile.absent{color:var(--white);border-color:var(--ink)}.tile.correct{background:var(--green)}.tile.present{background:var(--gold)}.tile.absent{background:var(--grey)}.tile.flip{animation:flip .42s ease both}@keyframes flip{0%{transform:rotateX(0)}50%{transform:rotateX(90deg)}to{transform:rotateX(0)}}.msg{min-height:24px;margin:12px 0 4px;text-align:center;font-weight:600;font-size:15px}.after{margin:6px 0 0;text-align:center}.after .verdict{font-family:var(--serif);font-size:20px;margin:0}.after .points{font-weight:700;color:var(--green);margin:2px 0 12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;cursor:pointer;border:2px solid var(--ink);border-radius:12px;background:var(--accent);box-shadow:0 4px 0 var(--ink);font-weight:700;font-size:16px}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.btn.quiet{background:var(--white)}.link{background:none;border:0;padding:4px;color:var(--ink);text-decoration:underline;cursor:pointer;font-size:14px}.kbd{position:sticky;bottom:0;z-index:2;margin:10px -16px 0;padding:10px 16px max(10px,env(safe-area-inset-bottom));display:grid;gap:7px;-webkit-user-select:none;user-select:none;background:var(--paper);box-shadow:0 -2px #1b2a441f,0 -10px 14px -10px #1b2a4440}.krow{display:flex;justify-content:center;gap:5px}.key{flex:1 1 0;max-width:44px;height:54px;padding:0;border:2px solid var(--ink);border-radius:8px;background:var(--white);box-shadow:0 3px 0 var(--ink);cursor:pointer;font-weight:600;font-size:17px}.kbd .msg,.slip{position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50% 0;min-height:0;margin:0;padding:6px 14px;max-width:calc(100% - 32px);border-radius:10px;background:var(--ink);color:var(--white);font-size:15px;font-weight:600;text-align:center;white-space:nowrap;pointer-events:none;transition:opacity .16s ease;z-index:3}.kbd .msg:empty,.slip:empty{opacity:0}.boardwrap{position:relative}.phone-input{position:absolute;left:0;top:var(--row-top, 0);width:100%;height:var(--tile);margin:0;padding:0;border:0;outline:0;opacity:0;background:transparent;color:transparent;caret-color:transparent;font-size:16px}.slip,.phone-keys .kbd{display:none}.phone-keys .slip{display:block;top:var(--row-top, 0);bottom:auto;translate:-50% calc(-100% - 8px)}.key.wide{max-width:72px;flex-grow:1.6;font-size:13px}.key:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.key.correct{background:var(--green);color:var(--white)}.key.present{background:var(--gold);color:var(--white)}.key.absent{background:var(--grey);color:var(--white)}.results{margin-top:18px}.results h1{font-family:var(--serif);font-weight:600;font-size:22px;margin:0 0 4px}.total{display:flex;align-items:baseline;gap:10px;margin:6px 0 16px}.total strong{font-family:var(--serif);font-size:64px;line-height:1;font-weight:700}.total span{font-size:16px;color:var(--ink-soft)}.lines{list-style:none;padding:0;margin:0 0 18px;border-top:2px solid var(--ink)}.lines li{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid rgba(27,42,68,.18)}.lines img{width:34px;height:34px;border-radius:50%}.lines .w{font-weight:700;letter-spacing:.04em}.lines .h{display:block;font-size:13px;color:var(--ink-soft);font-weight:400;letter-spacing:0}.lines .p{font-weight:700;font-variant-numeric:tabular-nums}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:22px}.box{margin:0 0 18px;padding:14px 16px;background:var(--white);border:2px solid var(--ink);border-radius:14px}.box h2{font-family:var(--serif);font-size:18px;font-weight:600;margin:0 0 8px}.box p{margin:0 0 10px}.board{list-style:none;margin:0;padding:0;counter-reset:rank}.board li{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dashed rgba(27,42,68,.2);counter-increment:rank}.board li:before{content:counter(rank) ".";width:28px;color:var(--ink-soft)}.board li .n{flex:1;font-weight:600}.board li.me .n{text-decoration:underline}.row-form{display:flex;gap:8px;flex-wrap:wrap}.field{flex:1 1 180px;min-height:44px;padding:0 12px;font:inherit;border:2px solid var(--ink);border-radius:10px;background:var(--paper)}.note{font-size:14px;color:var(--ink-soft)}.next{font-family:var(--serif);font-size:17px;margin:0 0 18px}.app{background:var(--ink);color:var(--white);border-color:var(--ink)}.app h2{color:var(--white)}.app .btn{background:var(--gold);color:var(--ink);border-color:var(--white);box-shadow:0 4px #0e1626}.dlg{width:min(460px,calc(100vw - 32px));padding:20px;color:var(--ink);border:2px solid var(--ink);border-radius:16px;background:var(--white);box-shadow:0 6px 0 var(--ink)}.dlg::backdrop{background:#1b2a4473}.dlg h2{font-family:var(--serif);margin:0 0 10px;font-size:21px}.dlg ol{padding-left:20px;margin:0 0 16px}.dlg li{margin-bottom:8px}.dlg form{display:grid;gap:10px}.toast{position:fixed;left:50%;bottom:24px;translate:-50% 20px;opacity:0;pointer-events:none;padding:10px 16px;border-radius:10px;background:var(--ink);color:var(--white);font-weight:600;transition:opacity .2s,translate .2s}.toast.show{opacity:1;translate:-50% 0}.foot{margin-top:30px;font-size:13px;color:var(--ink-soft);text-align:center}.foot p{margin:4px 0}.offline{color:var(--ink);font-weight:600}@media(max-width:640px){.kbd{gap:6px;padding-top:8px}.key{height:46px}.dateline{margin:10px 0 4px}.route{padding-top:38px}.route:before{top:64px}.clue{padding:14px 16px 12px;margin-bottom:12px}.clue p{font-size:18px;line-height:1.42}}@media(max-width:380px){.key{height:44px;font-size:15px}.wordmark{font-size:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:4px 0 2px;padding:4px;border:2px solid var(--ink);border-radius:14px;background:var(--paper-2)}.tab{min-height:38px;border:0;border-radius:10px;background:transparent;cursor:pointer;font-weight:600;font-size:15px;color:var(--ink-soft)}.tab.on{background:var(--white);color:var(--ink);box-shadow:0 0 0 2px var(--ink),0 3px 0 var(--ink)}.quiz{margin-top:18px}.qhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px;font-size:14px;font-weight:600;color:var(--ink-soft)}.dots{display:flex;gap:4px}.dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--ink);background:transparent}.dot.now{background:var(--accent)}.dot.right{background:var(--green)}.dot.wrong{background:var(--grey)}.clue .term{font-family:var(--display);font-size:30px;line-height:1.15;letter-spacing:.5px;margin-top:10px}.options{display:grid;gap:10px}.opt{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:10px 14px;text-align:left;cursor:pointer;font-size:17px;font-weight:600;border:2px solid var(--ink);border-radius:12px;background:var(--white);box-shadow:0 3px 0 var(--ink)}.opt.long{font-family:var(--serif);font-weight:400;font-size:16px;line-height:1.4}.opt .key{flex:0 0 26px;height:26px;display:grid;place-items:center;border-radius:8px;border:1.5px solid var(--ink);font-family:var(--ui);font-size:13px;font-weight:700}.opt:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}.opt:disabled{cursor:default}.opt.right{background:var(--green);color:var(--white)}.opt.right .key,.opt.wrong .key{background:transparent;color:var(--white);border-color:var(--white)}.opt.wrong{background:var(--grey);color:var(--white)}.opt.faded{opacity:.55}.msg.good,.lines .p.ok{color:var(--green)}.lines .p.no{color:var(--grey)}
