:root{--ink-900:#0a0a0a;--ink-800:#151410;--ink-700:#1f1d17;--ink-600:#2a2720;--ink-500:#3a362d;--paper-50:#faf6ec;--paper-100:#f3ecd9;--paper-200:#e8dfc4;--paper-300:#d4c69e;--gold-400:#e0c177;--gold-500:#c9a961;--gold-600:#a8893f;--gold-glow:#c9a96159;--jade-400:#6baa95;--jade-500:#4a8f7a;--jade-600:#2f6a57;--crimson-500:#c94a3a;--duck-blue:#3650d1;--mono:"JetBrains Mono", "SF Mono", ui-monospace, monospace;--serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", serif;--sans:"Noto Sans SC", "PingFang SC", -apple-system, system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{font-family:var(--sans);background:var(--ink-900);color:var(--paper-50);-webkit-font-smoothing:antialiased}.ink-texture{background-image:radial-gradient(circle at 20% 30%,#c9a9610a 0%,#0000 40%),radial-gradient(circle at 80% 70%,#4a8f7a08 0%,#0000 35%),repeating-linear-gradient(0deg,#0000 0 2px,#ffffff02 2px 3px)}.paper-texture{background-color:var(--paper-50);background-image:radial-gradient(circle at 10% 20%,#a8893f0a 0%,#0000 50%),radial-gradient(circle at 90% 80%,#4a8f7a0a 0%,#0000 50%)}.brush-stroke{position:relative}.brush-stroke:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--gold-500) 15%, var(--gold-400) 50%, var(--gold-500) 85%, transparent 100%);opacity:.85;filter:blur(.3px);border-radius:2px;height:3px;position:absolute;bottom:-6px;left:0;right:0}.rank-ring{background:conic-gradient(from 0deg, var(--gold-500) 0%, var(--gold-400) var(--progress,60%), #ffffff14 var(--progress,60%), #ffffff14 100%)}.seal{background:var(--crimson-500);color:var(--paper-50);font-family:var(--serif);letter-spacing:.1em;border-radius:3px;justify-content:center;align-items:center;padding:4px 6px;font-weight:700;display:inline-flex;transform:rotate(-4deg);box-shadow:inset 0 0 0 1px #ffffff26,0 1px 2px #0000004d}.btn-gold{background:linear-gradient(180deg, var(--gold-400) 0%, var(--gold-500) 50%, var(--gold-600) 100%);color:var(--ink-900);font-family:var(--sans);border:1px solid var(--gold-600);cursor:pointer;font-weight:700;transition:transform .15s,box-shadow .15s;box-shadow:inset 0 1px #ffffff4d,0 2px #0000004d,0 8px 20px #c9a96140}.btn-gold:hover{transform:translateY(-1px);box-shadow:inset 0 1px #fff6,0 3px #0000004d,0 12px 28px #c9a96166}.btn-ghost{color:var(--paper-50);font-family:var(--sans);cursor:pointer;background:0 0;border:1px solid #faf6ec40;transition:all .15s}.btn-ghost:hover{border-color:var(--gold-500);color:var(--gold-400);background:#c9a9610f}@keyframes gold-pulse{0%,to{box-shadow:0 0 0 0 var(--gold-glow)}50%{box-shadow:0 0 28px 4px var(--gold-glow)}}@keyframes drift{0%{opacity:0;transform:translate(0)scale(1)}15%{opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(.4);opacity:0}}.spirit-particle{background:var(--gold-400);width:4px;height:4px;box-shadow:0 0 8px var(--gold-400), 0 0 16px var(--gold-glow);animation:drift var(--dur,3.5s) linear infinite;animation-delay:var(--delay,0s);pointer-events:none;border-radius:50%;position:absolute}@keyframes shimmer-gold{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer-gold{background:linear-gradient(90deg,#c9a9611a 0%,#e0c17780 50%,#c9a9611a 100%) 0 0/200% 100%;animation:2s infinite shimmer-gold}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.float-y{animation:4s ease-in-out infinite float-y}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.blink{animation:1s steps(2,end) infinite blink}.nosel{-webkit-user-select:none;user-select:none}html,body{-webkit-text-size-adjust:100%;max-width:100%;overflow-x:hidden}.ink-texture,.paper-texture{min-width:0;max-width:100%;overflow-x:clip}img,svg,video,canvas{max-width:100%}.skip-link{z-index:1000;background:var(--gold-500);color:var(--ink-900);font-family:var(--sans);border-radius:8px;padding:10px 16px;font-size:13px;font-weight:700;text-decoration:none;transition:top .15s;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}a:focus-visible,button:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--gold-400);outline-offset:2px;border-radius:3px}a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}
