:root{font-family:STKaiti,KaiTi,Kaiti SC,Songti SC,system-ui,sans-serif;color:#2b2620;background:#15110c;--paper: #f3ece0;--panel: #fffaf0;--ink: #2b2620;--ink2: #5a4f40;--sub: #897a5e;--line: #bdae8e;--vermilion: #b3402f;--gold: #a9801f;--gold-l: #c9a23a;--jade: #3f7d5a;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--viewport-height: 100dvh;--content-max: 920px;--page-inline: 16px;--page-gap: 16px}*{box-sizing:border-box}html{height:100%;overflow:hidden}html,body,#vue-app{width:100%;min-width:0;margin:0}body,#vue-app{height:100%;min-height:100%;min-height:var(--viewport-height);overflow:hidden}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid rgba(169,128,31,.35);outline-offset:2px}#vue-auth-root{position:relative;z-index:450}#vue-topbar.vue-shell-slot,#vue-topbar .vue-top-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0}#vue-topbar .vue-top-info{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden;white-space:nowrap;font-size:12px;color:var(--ink2, #5a4f40)}#vue-dock-top.vue-shell-slot{width:100%}#vue-dock-top .vue-dock-top{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}#vue-log-tabs.vue-shell-slot,#vue-detail.vue-shell-slot,#vue-arena.vue-shell-slot{display:block;width:100%}#vue-arena .vue-arena{width:100%}#vue-boss.vue-shell-slot{display:contents}#vue-arena .arena-row{display:flex}#vue-dock-btns.vue-shell-slot{display:block;width:100%}#vue-modals.vue-shell-slot{display:contents}.attrs-row{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:12px;color:var(--ink2, #5a4f40)}.attrs-row span{opacity:.9}.origin-gate{position:fixed;inset:0;z-index:460;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));background:radial-gradient(circle at 20% 15%,rgba(184,134,11,.18),transparent 35%),radial-gradient(circle at 80% 80%,rgba(63,125,90,.14),transparent 40%),linear-gradient(160deg,#17120e,#0b0907 55%,#15100c);overflow:auto}.origin-card{width:min(560px,100%);max-height:calc(var(--viewport-height) - var(--safe-top) - var(--safe-bottom) - 24px);overflow-y:auto;overscroll-behavior:contain;padding:28px 24px 22px;border-radius:18px;border:1px solid rgba(214,193,146,.28);background:linear-gradient(165deg,#fffaf0,#f0e5d1);box-shadow:0 24px 70px #00000073}.origin-kicker{margin:0 0 6px;color:#b3402f;font-size:11px;letter-spacing:.2em;font-weight:700}.origin-head h1{margin:0 0 8px;font:700 26px/1.25 STKaiti,KaiTi,serif;color:#2b2620}.origin-sub{margin:0 0 14px;color:#6d5d49;font-size:13px;line-height:1.65}.origin-steps{display:flex;gap:8px;margin-bottom:16px}.origin-dot{width:28px;height:4px;border-radius:99px;background:#7d684833}.origin-dot.on{background:#b3402f}.origin-dot.done{background:#a9801f}.origin-options{display:grid;gap:10px}.origin-opt{text-align:left;padding:12px 14px;border-radius:12px;cursor:pointer;border:1px solid rgba(125,104,72,.25);background:#fffdf8e6;display:grid;gap:4px;font:inherit;color:inherit}.origin-opt b{font-size:15px;color:#2b2620}.origin-opt span{font-size:12px;color:#6d5d49;line-height:1.5}.origin-opt.active{border-color:#a9801f;box-shadow:0 0 0 3px #a9801f29;background:#fff}.origin-preview{margin-top:14px;padding:12px;border-radius:12px;background:#a9801f14;border:1px solid rgba(169,128,31,.18)}.origin-preview-sum{margin:0 0 8px;font-size:13px;font-weight:700;color:#5a4a30}.origin-attrs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.origin-attrs li{display:grid;justify-items:center;gap:2px;font-size:11px;color:#6d5d49}.origin-attrs b{font-size:16px;color:#2b2620}.origin-err{margin:10px 0 0;color:#b3402f;font-size:13px;font-weight:700;text-align:center}.origin-actions{margin-top:16px;display:flex;gap:10px;justify-content:flex-end}.origin-btn{min-height:44px;padding:0 18px;border-radius:10px;border:0;cursor:pointer;font:inherit;font-weight:700}.origin-btn.primary{color:#fff8ec;background:linear-gradient(135deg,#8f2c22,#bd4939)}.origin-btn.ghost{color:#5a4a30;background:#7d68481f}.origin-btn:disabled{opacity:.5;cursor:wait}@media(max-width:420px){.origin-attrs{grid-template-columns:repeat(3,1fr)}.origin-card{padding:22px 16px 18px}}.map-card.current{border-color:var(--gold, #a9801f)!important}.map-card.locked{opacity:.92}.auth-gate{position:fixed;inset:0;z-index:450;display:flex;align-items:center;justify-content:center;overflow:hidden;overflow-x:clip;overscroll-behavior:none;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:radial-gradient(circle at 18% 15%,rgba(184,134,11,.19),transparent 28%),radial-gradient(circle at 82% 82%,rgba(69,119,91,.17),transparent 30%),linear-gradient(135deg,#17120e,#0b0907 48%,#17110c)}.auth-gate:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.32;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E");mix-blend-mode:overlay}.auth-gate:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.025),transparent 30%,rgba(169,128,31,.04) 68%,transparent)}.auth-atmosphere{position:absolute;pointer-events:none;border-radius:50%;filter:blur(2px)}.auth-atmosphere-one{width:520px;height:520px;left:-260px;top:-200px;border:1px solid rgba(232,207,146,.12);box-shadow:0 0 100px #a9801f14 inset}.auth-atmosphere-two{width:430px;height:430px;right:-210px;bottom:-220px;border:1px solid rgba(87,143,105,.12);box-shadow:0 0 100px #3f7d5a14 inset}.auth-gate .enso{position:absolute;top:50%;left:27%;width:min(580px,70vw);height:min(580px,70vw);transform:translate(-50%,-58%);background-position:center;background-size:cover;animation:ensoSpin 48s linear infinite;opacity:.28;filter:invert(.74) sepia(.35) saturate(.65) contrast(1.15)}.auth-gate .petal{position:absolute;top:-20px;width:8px;height:8px;border-radius:60% 0;background:var(--vermilion);opacity:.45;animation:fall linear infinite}.auth-shell{position:relative;z-index:2;width:min(920px,100%);max-width:100%;height:auto;max-height:calc(100dvh - 16px);min-height:0;display:grid;grid-template-columns:minmax(280px,1.05fr) minmax(300px,.95fr);border:1px solid rgba(214,193,146,.24);border-radius:26px;overflow:hidden;background:#120e0ad1;box-shadow:0 32px 90px #00000094,0 0 0 1px #ffffff06 inset;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);animation:inkIn .65s ease both}.auth-brand{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;min-width:0;padding:46px 46px 42px;overflow:hidden;text-align:left;background:linear-gradient(180deg,#0a080614,#0a0806d1),radial-gradient(ellipse at 50% 20%,rgba(238,218,164,.14),transparent 43%)}.auth-brand:after{content:"";position:absolute;left:0;right:0;bottom:0;height:46%;background:linear-gradient(180deg,transparent,rgba(8,6,4,.88))}.auth-brand>*{position:relative;z-index:2}.auth-brand .start-hero{position:absolute;z-index:1;width:min(390px,88%);height:auto;max-height:390px;object-fit:contain;left:50%;top:33%;transform:translate(-50%,-50%);opacity:.9;filter:drop-shadow(0 20px 30px rgba(0,0,0,.65)) saturate(.82) contrast(1.05);-webkit-mask-image:linear-gradient(#000 0 68%,transparent 96%);mask-image:linear-gradient(#000 0 68%,transparent 96%)}.auth-brand-mark{position:absolute;left:34px;top:30px;width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(216,193,139,.4);color:var(--gold-l);transform:rotate(45deg);background:#0c090680;box-shadow:0 0 28px #a9801f1f}.auth-brand-mark span{transform:rotate(-45deg);font:700 22px/1 STKaiti,KaiTi,serif}.auth-overline{margin:0 0 9px;color:var(--gold-l);font-size:10px;letter-spacing:.32em;opacity:.8}.auth-brand h1{margin:0;color:#f2e5c7;font:700 clamp(30px,4vw,44px)/1.12 "STKaiti","KaiTi",serif;letter-spacing:.07em;text-shadow:0 5px 24px rgba(0,0,0,.5)}.auth-brand h1 span{color:var(--vermilion);margin:0 .06em}.auth-brand-copy{max-width:430px;margin:16px 0 18px;color:#eee2c7ad;font-size:13px;line-height:1.9}.auth-benefits{display:flex;flex-wrap:wrap;gap:8px}.auth-benefits span{padding:5px 9px;border:1px solid rgba(216,193,139,.18);border-radius:20px;color:#eee2c7b8;background:#ffffff09;font-size:10.5px}.auth-panel{position:relative;display:flex;flex-direction:column;justify-content:center;padding:28px 32px 22px;background:linear-gradient(145deg,#fffaf0,#f0e5d1);text-align:left;box-shadow:-18px 0 60px #0000002e;overflow:hidden;min-height:0}.auth-panel:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.2;background:radial-gradient(circle at 90% 8%,rgba(169,128,31,.22),transparent 25%)}.auth-panel>*{position:relative;z-index:1}.auth-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.auth-kicker{margin:0 0 4px;color:var(--vermilion);font-size:11px;font-weight:700;letter-spacing:.24em}.auth-panel h2{margin:0;color:var(--ink);font:700 26px/1.2 STKaiti,KaiTi,serif;letter-spacing:.08em}.auth-security{margin-top:4px;color:var(--jade);white-space:nowrap;font-size:10px}.auth-security span{display:inline-block;width:7px;height:7px;margin-right:4px;border-radius:50%;background:var(--jade);box-shadow:0 0 0 4px #3f7d5a1a}.auth-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:3px;margin-bottom:12px;border:1px solid rgba(116,96,65,.18);border-radius:12px;background:#82694314}.auth-switch button{min-height:34px;border:0;border-radius:8px;color:var(--sub);background:transparent;font-weight:600;cursor:pointer;transition:.2s ease}.auth-switch button.active{color:var(--ink);background:#fffdf8;box-shadow:0 4px 12px #45331b1a,0 0 0 1px #a9801f26}.auth-card{display:flex;flex-direction:column;gap:6px;margin:0}.auth-label{margin:2px 0 0 2px;color:#675a4a;font-size:11px;font-weight:700;letter-spacing:.09em}.auth-field{position:relative;display:flex;align-items:center}.auth-field-icon{position:absolute;left:12px;width:25px;height:25px;display:grid;place-items:center;z-index:1;border:1px solid rgba(169,128,31,.22);border-radius:7px;color:var(--gold);font:700 10px/1 STKaiti,KaiTi,serif;background:#a9801f12}.auth-field input{width:100%;min-height:44px;padding:10px 58px 10px 47px;border:1px solid rgba(125,104,72,.25);border-radius:11px;color:var(--ink);background:#fffdf8e6;box-shadow:0 1px #fffc inset}.auth-field input:hover{border-color:#a9801f75}.auth-field input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #a9801f2e}.auth-pass-toggle{position:absolute;right:8px;z-index:1;min-height:34px;padding:0 8px;border:0;border-radius:7px;color:var(--sub);background:transparent;font-size:11px;cursor:pointer}.auth-mode-hint{margin:0 1px 2px;color:var(--sub);font-size:11px;line-height:1.4}.auth-submit{min-height:44px;border:0;border-radius:11px;color:#fff8ec;background:linear-gradient(135deg,#8f2c22,#bd4939);box-shadow:0 10px 22px #8f2c2238;font-size:14px;font-weight:700;letter-spacing:.14em;cursor:pointer}.auth-submit.register{background:linear-gradient(135deg,#8a6818,#b38b2e);box-shadow:0 10px 22px #8a681833}.auth-or{display:flex;align-items:center;gap:10px;margin:8px 0 6px;color:#948570;font-size:10px}.auth-or:before,.auth-or:after{content:"";height:1px;flex:1;background:#7d68482e}.auth-guest{width:100%;min-height:44px;display:grid;place-items:center;gap:1px;border:1px solid rgba(63,125,90,.32);border-radius:11px;color:#315f46;background:#3f7d5a14;cursor:pointer}.auth-guest:hover{border-color:#3f7d5a94;background:#3f7d5a21}.auth-guest b{font-size:14px}.auth-guest small{color:#6f796f;font-size:10px}.auth-guest:disabled,.auth-cancel-bind:disabled{opacity:.55;cursor:wait}.auth-cancel-bind{min-height:32px;margin-top:8px;border:0;color:#6d5d49;background:transparent;text-decoration:underline;cursor:pointer}.auth-err{min-height:16px;margin:0;display:flex;align-items:center;justify-content:center;color:var(--vermilion);font-size:12px;font-weight:700;text-align:center}.auth-err:not(:empty){padding:6px 8px;border:1px solid rgba(179,64,47,.18);border-radius:8px;background:#b3402f12}.auth-notice{margin:0;padding:6px 8px;border-radius:8px;color:var(--ink2);background:#a9801f17;font-size:11px;text-align:center}.auth-trust{display:flex;justify-content:center;flex-wrap:wrap;gap:6px 12px;color:#7b6d5d;font-size:9.5px}.auth-trust span:before{content:"✓";margin-right:4px;color:var(--jade);font-weight:700}.auth-terms{margin:10px 3px 0;color:#827462;font-size:9.5px;line-height:1.5;text-align:center}@media(min-width:761px)and (max-height:700px){.auth-panel{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}}.auth-terms a{margin-left:6px;color:#765b1a}.auth-loading{width:100%;display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px;border:1px solid rgba(169,128,31,.18);border-radius:12px;color:var(--ink);background:#fffdf89e}.auth-loading b{font-size:15px;letter-spacing:.12em}.auth-loading small{color:var(--sub)}.auth-spinner{display:block;width:30px;height:30px;border:2px solid rgba(169,128,31,.18);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}.session-loading{position:fixed;inset:0;z-index:450;min-height:100vh;display:grid;place-content:center;justify-items:center;gap:8px;color:#eee0bd;background:radial-gradient(circle at 50% 30%,rgba(169,128,31,.16),transparent 35%),#100d09}.session-loading h1{margin:8px 0 0;font-size:24px}.session-loading p{margin:0;color:#eee0bda6}.migration-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 12%,rgba(179,64,47,.08),transparent 42%),var(--paper)}.migration-panel{width:min(620px,100%);padding:34px;border:1px solid #c9b99a;border-radius:18px;background:var(--panel);box-shadow:0 18px 55px #4a351524}.session-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.session-head h1{margin:0 0 12px;font-family:serif}.eyebrow{margin:0 0 8px;color:var(--gold);font-size:11px;letter-spacing:.14em}.session-badge{padding:5px 10px;border:1px solid rgba(63,125,90,.25);border-radius:999px;color:var(--jade);background:#3f7d5a12;font-size:11px;white-space:nowrap}.player-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:24px 0}.player-preview div{padding:12px;border:1px solid #d8c8ab;border-radius:9px;background:#f5eee2}.player-preview dt{color:#806d55;font-size:12px}.player-preview dd{margin:4px 0 0;font-weight:700}.actions{display:flex;flex-wrap:wrap;gap:10px}.actions button,.primary-action{min-height:44px;display:inline-grid;place-items:center;padding:0 18px;border:0;border-radius:9px;color:#fffaf0;background:var(--vermilion);text-decoration:none;cursor:pointer}.actions .secondary{background:#6d5d49}.actions .danger{color:var(--vermilion);border:1px solid rgba(179,64,47,.25);background:transparent}.actions button:disabled{opacity:.55;cursor:wait}.migration-note{margin:20px 0 0;color:var(--sub);font-size:12px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ensoSpin{0%{transform:translate(-50%,-58%) rotate(0)}to{transform:translate(-50%,-58%) rotate(360deg)}}@keyframes fall{to{transform:translate(80px,110vh) rotate(440deg)}}@keyframes inkIn{0%{opacity:0;transform:translateY(14px) scale(.99)}}@media(max-width:760px){.auth-gate{align-items:stretch;justify-content:stretch;padding:0;overflow-y:auto;overflow-x:clip}.auth-shell{height:auto;max-height:none;min-height:100%;min-height:100dvh;width:100%;grid-template-columns:1fr;border:0;border-radius:0;overflow:visible}.auth-brand{min-height:min(290px,34dvh);max-height:36dvh;padding:28px 24px 26px;justify-content:flex-end}.auth-brand .start-hero{width:250px;max-height:250px;top:39%;left:72%;opacity:.7}.auth-brand-mark{left:24px;top:24px;width:42px;height:42px}.auth-brand-copy{max-width:62%;margin:10px 0 12px;font-size:11px;line-height:1.65}.auth-brand h1{font-size:30px}.auth-panel{padding:28px 22px max(28px,env(safe-area-inset-bottom));box-shadow:0 -16px 44px #00000040;overflow:visible}.auth-panel-head{margin-bottom:18px}}@media(max-width:390px){.auth-brand{min-height:250px}.auth-brand .start-hero{width:215px;top:37%;left:74%}.auth-brand-copy{max-width:72%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.auth-panel{padding:24px 18px max(24px,env(safe-area-inset-bottom))}.auth-panel h2{font-size:25px}.auth-security{display:none}.auth-switch{margin-bottom:16px}.auth-field input,.auth-submit{min-height:48px}.migration-panel{padding:24px}.player-preview{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.auth-atmosphere-one{width:min(520px,100%);height:min(520px,100%);left:0;top:0}.auth-atmosphere-two{width:min(430px,100%);height:min(430px,100%);right:0;bottom:0}#vue-app,#vue-app>*,.auth-shell,.auth-brand,.auth-panel,.origin-card,.migration-panel,.session-head,.actions{min-width:0}.auth-gate,.origin-gate,.migration-shell,.session-loading{min-height:var(--viewport-height);padding-top:max(var(--safe-top),var(--page-inline));padding-right:max(var(--safe-right),var(--page-inline));padding-bottom:max(var(--safe-bottom),var(--page-inline));padding-left:max(var(--safe-left),var(--page-inline))}.auth-brand h1{font-size:36px}.auth-brand-copy,.auth-terms,.auth-mode-hint,.auth-notice,.auth-err{overflow-wrap:anywhere}.auth-panel-head{min-width:0}.auth-panel-head>div:first-child{min-width:0}.auth-security{max-width:132px;white-space:normal;text-align:right}.auth-field input{min-width:0}.auth-panel{overflow-y:auto;overscroll-behavior:contain}.auth-shell{width:min(var(--content-max),100%);max-height:calc(var(--viewport-height) - var(--safe-top) - var(--safe-bottom) - 24px)}.migration-shell{overflow:auto}.migration-panel{max-height:calc(var(--viewport-height) - var(--safe-top) - var(--safe-bottom) - 24px);overflow-y:auto;overscroll-behavior:contain}.session-head h1{overflow-wrap:anywhere}.actions button,.actions a,.origin-btn,.auth-submit,.auth-guest{min-height:44px}@media(max-width:760px){:root{--page-inline: 12px;--page-gap: 12px}.auth-gate,.origin-gate,.migration-shell,.session-loading{padding-inline:max(var(--safe-left),0px) max(var(--safe-right),0px)}.auth-shell{max-height:none}.auth-brand h1{font-size:30px}.auth-brand .start-hero{width:min(250px,70%);left:auto;right:0;transform:translateY(-50%)}.auth-brand{padding-inline:24px}.auth-panel{padding-inline:22px}.migration-shell{place-items:start center}.migration-panel{width:min(620px,100%);padding:24px;max-height:none}}@media(max-width:359px),(max-height:640px){:root{--page-inline: 8px}.origin-card{padding:20px 16px 16px}.origin-head h1{font-size:24px}.origin-sub{margin-bottom:10px}.origin-actions{flex-wrap:wrap}.origin-actions .origin-btn{flex:1 1 120px}.auth-brand{min-height:230px;padding:22px 18px 20px}.auth-brand-copy{margin-block:8px 10px;line-height:1.6}.auth-panel{padding:22px 16px max(22px,var(--safe-bottom))}.auth-panel-head{margin-bottom:12px}.auth-panel h2{font-size:24px}.auth-security{display:none}.migration-panel{padding:20px 16px}}@media(min-width:768px){:root{--page-inline: 24px;--page-gap: 24px}.auth-gate,.origin-gate,.migration-shell,.session-loading{padding-inline:max(var(--safe-left),var(--page-inline)) max(var(--safe-right),var(--page-inline))}.migration-panel{width:min(680px,100%)}}@media(min-width:1200px){:root{--content-max: 1040px}}
