@font-face{font-family:Cinzel;src:url(/assets/fonts/Cinzel-Regular.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Cinzel;src:url(/assets/fonts/Cinzel-Bold.ttf) format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Cinzel;src:url(/assets/fonts/Cinzel-Black.ttf) format("truetype");font-weight:900;font-display:swap}:root{--ink: #f4e9d4;--ink-dim: #cdbfa3;--gold: #e8c879;--shadow: rgba(0, 0, 0, .75)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;overflow:hidden;background:#1a120b;font-family:Cinzel,Times New Roman,serif;color:var(--ink);user-select:none;touch-action:none}#scene{position:fixed;inset:0;width:100%;height:100%;display:block}#ui{position:fixed;inset:0;pointer-events:none}#ui>*{pointer-events:auto}.shadowed{text-shadow:0 2px 6px var(--shadow),0 0 2px var(--shadow)}.hud-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:center;flex-direction:column;align-items:center;padding-top:14px;gap:2px}.hud-best{font-size:clamp(14px,2.6vw,20px);letter-spacing:1px;color:var(--ink-dim)}.hud-score{font-size:clamp(22px,4.4vw,34px);letter-spacing:2px;font-weight:700}.hud-score.flash{animation:pop .35s ease}@keyframes pop{0%{transform:scale(1)}40%{transform:scale(1.18);color:var(--gold)}to{transform:scale(1)}}.corner-btn{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;color:var(--ink);font-family:inherit;cursor:pointer;font-size:13px;letter-spacing:1px;opacity:.92;transition:transform .12s,opacity .12s}.corner-btn:hover{transform:scale(1.07);opacity:1}.corner-btn:disabled{opacity:.3;cursor:default}.corner-btn .ring{width:52px;height:52px;border-radius:50%;border:2px solid var(--ink);display:flex;align-items:center;justify-content:center;font-size:20px;background:#140c0659}.corner-btn .label{text-decoration:underline;text-underline-offset:3px}.btn-menu{top:14px;left:16px}.btn-options{top:92px;left:16px}.btn-rotate{top:14px;right:16px}.btn-undo{top:92px;right:16px}.rotate-count{position:absolute;top:-4px;right:4px;font-size:12px;font-weight:700;color:var(--gold)}.rotate-bar{width:54px;height:6px;border:1px solid var(--ink-dim);border-radius:3px;overflow:hidden;margin-top:2px}.rotate-bar>i{display:block;height:100%;width:0%;background:var(--gold)}.btn-rotate.arming .ring{box-shadow:0 0 14px var(--gold);border-color:var(--gold)}.piece-rotate{position:absolute;width:40px;height:40px;border-radius:50%;border:2px solid var(--gold);background:#140c068c;color:var(--gold);font-size:18px;display:none;align-items:center;justify-content:center;cursor:pointer;transform:translate(-50%,-50%)}.piece-rotate.show{display:flex}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:radial-gradient(ellipse at center,#0a060359,#0a0603c7);backdrop-filter:blur(1px)}.overlay.hidden{display:none}.title-kanji{font-size:clamp(48px,13vw,110px);font-weight:900;line-height:1}.title-roman{font-size:clamp(24px,6vw,46px);letter-spacing:6px;margin-bottom:18px}.welcome{color:var(--ink-dim);letter-spacing:3px;margin-bottom:4px;min-height:1.2em}.menu-btn{background:none;border:none;color:var(--ink);font-family:inherit;font-size:clamp(20px,4.4vw,30px);letter-spacing:3px;padding:6px 10px;cursor:pointer;text-decoration:underline;text-underline-offset:6px;text-decoration-color:transparent;transition:text-decoration-color .15s,transform .12s,color .12s}.menu-btn:hover{text-decoration-color:var(--gold);color:var(--gold);transform:scale(1.04)}.menu-btn:disabled{opacity:.35;cursor:default}.panel{background:#1c120aeb;border:1px solid #5a4226;border-radius:10px;padding:26px 30px;max-width:min(560px,90vw);max-height:86vh;overflow-y:auto;box-shadow:0 20px 60px #0009}.panel h2{text-align:center;letter-spacing:3px;margin-bottom:16px;font-size:28px}.panel p{line-height:1.55;margin-bottom:12px;color:var(--ink);font-size:15px}.panel .row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0}.panel label{letter-spacing:1px}.panel input[type=range]{flex:1;accent-color:var(--gold)}.panel .actions{display:flex;gap:12px;justify-content:center;margin-top:18px;flex-wrap:wrap}.book{display:flex;max-width:min(860px,94vw);max-height:88vh;background:linear-gradient(135deg,#4b3621,#2c1f12);padding:12px;border-radius:8px;border:2px solid #5a4226;box-shadow:0 26px 70px #000000b3;transform-origin:center;animation:bookopen .42s cubic-bezier(.2,.8,.3,1)}@keyframes bookopen{0%{opacity:0;transform:perspective(1400px) rotateX(10deg) scale(.92)}to{opacity:1;transform:none}}.book-page{width:340px;max-width:44vw;padding:24px 26px;overflow-y:auto;color:#4f3a1d;background:radial-gradient(120% 90% at 50% 0%,#fffaeb8c,#fffaeb00),linear-gradient(180deg,#efe3c6,#e2d2aa)}.book-left{border-radius:5px 0 0 5px;box-shadow:inset -22px 0 26px -16px #3c28108c}.book-right{border-radius:0 5px 5px 0;box-shadow:inset 22px 0 26px -16px #3c28108c}.book-page h2{text-align:center;letter-spacing:3px;font-size:24px;color:#523a1c;padding-bottom:8px;margin-bottom:14px;border-bottom:1px solid rgba(120,90,40,.45)}.book-page .row{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:13px 0}.book-page label{letter-spacing:1px;color:#4f3a1d;font-size:15px}.book-page input[type=range]{flex:1;max-width:170px;accent-color:#a9802f}.book-page input[type=checkbox]{width:18px;height:18px;accent-color:#a9802f}.book-page .actions{display:flex;justify-content:center;margin-top:16px}.book-page .menu-btn{color:#6a4a1e;font-size:22px;text-underline-offset:5px}.book-page .menu-btn:hover{color:#8a5a1c;text-decoration-color:#a9802f}.book-page.disabled{opacity:.45;pointer-events:none}.amb-note{margin-top:14px;font-size:12px;color:#6b5733;text-align:center;line-height:1.5}@media (max-width: 620px){.book{flex-direction:column;max-height:90vh}.book-page{width:78vw;max-width:78vw}.book-left{border-radius:5px 5px 0 0;box-shadow:inset 0 -16px 22px -14px #3c281080}.book-right{border-radius:0 0 5px 5px;box-shadow:inset 0 16px 22px -14px #3c281080}}.toast{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%);text-align:center;font-size:clamp(22px,5vw,40px);font-weight:700;color:var(--gold);pointer-events:none;opacity:0}.toast.show{animation:toast 1.6s ease forwards}@keyframes toast{0%{opacity:0;transform:translate(-50%,-30%) scale(.8)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-70%) scale(1.05)}}.field{display:flex;flex-direction:column;gap:4px;margin:10px 0;text-align:left}.field label{font-size:13px;letter-spacing:1px;color:var(--ink-dim)}.field input{font-family:Quicksand,Cinzel,sans-serif;font-size:16px;padding:9px 11px;background:#0c080499;border:1px solid #5a4226;border-radius:6px;color:var(--ink);outline:none}.field input:focus{border-color:var(--gold)}.auth-status{min-height:1.3em;text-align:center;font-size:14px;margin:8px 0;color:var(--gold)}.auth-status.error{color:#e58a72}.auth-toggle{text-align:center;margin-top:10px;font-size:14px;color:var(--ink-dim)}.auth-toggle a{color:var(--gold);cursor:pointer;text-decoration:underline}.account-name{text-align:center;font-size:22px;margin-bottom:6px}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:22px;letter-spacing:4px;color:var(--ink-dim);background:#1a120b}
