:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f7efd8;--ink:#111016;--ink-soft:#23202b;--night:#171927;--night-blue:#27334b;--parchment:#eadcb9;--parchment-light:#fff7db;--parchment-dark:#b58b57;--gold:#d9a441;--gold-light:#ffe38a;--cyan:#66e0dd;--green:#6bc76f;--red:#d7524e;--violet:#8d6bd4;--line:#514a49;--shadow:#050408b8;--font-size-min:16px;--font-size-compact:14px;--console-glass-background:#18191b6b;--console-glass-border:#ffffff3d;--console-glass-border-top:#ffffff6b;--console-glass-shadow:inset 0 1px 0 #ffffff1a, 0 18px 46px #00000042;--console-glass-filter:blur(11px) saturate(.58);--floating-tool-size:70px;--floating-tool-gap:10px;--floating-tool-edge:16px;background:#111016;font-family:Noto Sans TC,Microsoft JhengHei,system-ui,sans-serif}*{box-sizing:border-box;letter-spacing:0}html{background:var(--ink);min-width:320px}body{min-height:100vh;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit}button,a,label,select,input[type=file]{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}@media (max-width:560px){:root{--floating-tool-size:58px;--floating-tool-edge:12px}}h1,h2,h3,strong,button{font-weight:900}h1{margin-bottom:12px;font-size:52px;line-height:1.08}h2{margin-bottom:12px;font-size:27px;line-height:1.2}h3{margin-bottom:0;font-size:21px}p{font-size:16px;line-height:1.7}small{font-size:var(--font-size-min);line-height:1.45}code{font-size:var(--font-size-min)}
.pixel-body{background:var(--ink)}.game-screen{isolation:isolate;background:#141521;min-height:100vh;position:relative;overflow:hidden}.game-screen:after{z-index:30;pointer-events:none;content:"";opacity:.2;mix-blend-mode:multiply;background:repeating-linear-gradient(0deg,#0000 0 3px,#0000002e 3px 4px);position:fixed;inset:0}.game-screen__content{z-index:5;width:min(1240px,100%);min-height:100vh;margin:0 auto;padding:34px;position:relative}.world-backdrop{z-index:0;background:linear-gradient(#151627 0%,#2d3550 48%,#6d6263 68%,#201d26 100%);position:fixed;inset:0;overflow:hidden}.game-screen--book .world-backdrop{background:linear-gradient(#18222c 0%,#455154 55%,#22231f 100%)}.game-screen--town .world-backdrop{background:linear-gradient(#20283a 0%,#4f5c69 48%,#594943 70%,#1c191c 100%)}.game-screen--town .world-moon{display:none}.game-screen--battle .world-backdrop{background:linear-gradient(#10121e 0%,#202a3c 50%,#25201f 100%)}.world-backdrop:after{content:"";opacity:.16;background-image:repeating-linear-gradient(90deg,#ffffff1f 0 1px,#0000 1px 8px),repeating-linear-gradient(0deg,#00000026 0 1px,#0000 1px 8px);background-size:8px 8px;position:absolute;inset:0}.world-moon{aspect-ratio:1;width:84px;image-rendering:pixelated;background:#e7c679;border:6px solid #ffe4a4;border-radius:50%;position:absolute;top:7vh;right:10vw;box-shadow:0 0 0 4px #1e1c2799,0 0 32px #ffd78461}.world-ridge{clip-path:polygon(0 80%,8% 48%,13% 68%,20% 28%,29% 72%,40% 36%,46% 62%,55% 18%,64% 66%,73% 38%,82% 70%,91% 31%,100% 72%,100% 100%,0 100%);display:block;position:absolute;left:-5%;right:-5%}.world-ridge--far{background:#242b3bd6;height:46%;bottom:23%}.world-ridge--near{background:#14171ef5;height:40%;bottom:8%;transform:scaleX(-1)}.world-ground{background:repeating-linear-gradient(135deg,#6b5b3d2e 0 2px,#0000 2px 10px),#18171b;height:22%;position:absolute;bottom:0;left:0;right:0}
.game-kicker{color:var(--gold-light);font-family:ui-monospace,Cascadia Mono,monospace;font-size:var(--font-size-min);text-transform:uppercase;align-items:center;gap:8px;margin:0 0 8px;font-weight:900;line-height:1;display:flex}.pixel-divider{align-items:center;gap:8px;margin-bottom:18px;display:flex}.pixel-divider span:first-child,.pixel-divider span:last-child{background:var(--gold);flex:1;height:2px}.pixel-divider span:nth-child(2){border:2px solid var(--gold-light);width:8px;height:8px;transform:rotate(45deg)}.rpg-window{background:#121219f0;border:3px solid #e7cf93;border-radius:2px;position:relative;box-shadow:0 0 0 3px #5e4b33,0 0 0 6px #151219,10px 14px #0504086b}.rpg-window:before,.rpg-window:after{border:2px solid var(--gold-light);content:"";width:10px;height:10px;position:absolute}.rpg-window:before{border-bottom:0;border-right:0;top:5px;left:5px}.rpg-window:after{border-top:0;border-left:0;bottom:5px;right:5px}.rpg-button{cursor:pointer;color:#fff6dc;min-height:44px;font-size:var(--font-size-min);text-align:center;background:#272630;border:2px solid #f1d99a;border-radius:2px;justify-content:center;align-items:center;padding:10px 18px;line-height:1.2;display:inline-flex;position:relative;box-shadow:0 0 0 2px #5e4b33,4px 5px #0006}.rpg-button:hover,.rpg-button:focus-visible{color:#151219;outline:2px solid var(--cyan);outline-offset:4px;background:var(--gold-light);transform:translate(-1px,-1px)}.rpg-button:active{transform:translate(2px,2px);box-shadow:0 0 0 2px #5e4b33,1px 2px #00000080}.rpg-button:disabled{cursor:not-allowed;opacity:.42;filter:grayscale()}.rpg-button--primary{background:#184b4c;border-color:#9aefe7;box-shadow:0 0 0 2px #235f5e,4px 5px #0006}.rpg-button--attack{color:#24150d;background:#e4a33d;border-color:#ffd87a;min-height:50px;box-shadow:0 0 0 2px #7f4825,5px 6px #00000075}.rpg-button--quiet{color:#ede9df;background:#19181ebd;border-color:#a8a3a0}.rpg-button--ink{width:100%;color:var(--parchment-light);background:#3b2c25;border-color:#30261d;box-shadow:0 0 0 2px #9e7647,4px 5px #37231447}.rpg-button--seal{color:#fff5e1;background:#843d32;border-color:#ffd4a1;box-shadow:0 0 0 2px #4d261f,5px 6px #0006}.text-command{border-bottom:2px solid var(--gold);color:#fff1c9;align-self:center;align-items:center;padding:8px 4px;font-weight:800;display:inline-flex}.text-command:before{content:"◀";margin-right:7px}.text-command:hover,.text-command:focus-visible{color:var(--cyan);outline:0}.window-title{border-bottom:2px solid #5c5655;justify-content:space-between;align-items:end;gap:18px;margin-bottom:20px;padding-bottom:12px;display:flex}.window-title span,.record-type,.status-board__kicker,.quest-brief__marker+div>span,.battle-hud__identity>span,.battle-command__title span{color:var(--gold-light);font-family:ui-monospace,Cascadia Mono,monospace;font-size:var(--font-size-min);text-transform:uppercase;font-weight:900}.window-title h2{text-align:right;margin:0}
.game-form,.book-form{gap:15px;display:grid}.game-form label,.book-form label,.setup-ledger label,.battle-input{color:inherit;font-size:var(--font-size-min);gap:7px;font-weight:800;display:grid}.game-form input,.game-form textarea,.game-form select,.book-form input,.setup-ledger input,.setup-ledger select,.battle-input input{color:#fff5dc;background:#17171d;border:2px solid #84765e;border-radius:2px;outline:0;width:100%;min-height:43px;padding:9px 11px}.game-form textarea{resize:vertical;min-height:92px}.game-form input:focus,.game-form textarea:focus,.game-form select:focus,.book-form input:focus,.setup-ledger input:focus,.battle-input input:focus{border-color:var(--cyan);box-shadow:0 0 0 2px #66e0dd38}.system-message,.empty-state{border-left:5px solid var(--gold);color:#f7efd8;background:#151419db;margin:0;padding:13px 15px;font-weight:700}.system-message--danger{border-color:var(--red)}.system-message--success{border-color:var(--green)}
.title-screen .game-screen__content{grid-template-columns:minmax(0,1fr) 360px;align-items:center;gap:72px;display:grid}.title-lockup{text-shadow:4px 5px #000000ad;max-width:700px}.title-lockup h1{color:#fff4d1;margin:12px 0 20px;font-size:82px;line-height:.98}.title-lockup>.title-subtitle{color:#d8e6e3c7;font-size:var(--font-size-min);letter-spacing:.08em;text-shadow:0 1px 4px #000000a8;font-weight:600}.title-lockup>.title-slogan{color:#d8e6e3;font-size:20px;font-weight:800}.start-menu{padding:30px}.start-menu nav{gap:8px;display:grid}.menu-command{border:2px solid #0000;grid-template-columns:24px 1fr;align-items:center;min-height:48px;padding:10px 12px;font-size:17px;font-weight:900;display:grid}.menu-command span{color:var(--gold-light);opacity:0}.menu-command:hover,.menu-command:focus-visible{background:#2b2932;border-color:#6a6260;outline:0}.menu-command:hover span,.menu-command:focus-visible span{opacity:1}.start-menu>small{color:#918982;text-align:right;margin-top:20px;font-family:ui-monospace,monospace;display:block}.book-screen .game-screen__content{flex-direction:column;justify-content:center;gap:24px;max-width:1160px;display:flex}.book-screen__header{text-align:center;text-shadow:3px 4px #0000008f}.book-screen__header .game-kicker{justify-content:center}.book-screen__header h1{margin-bottom:5px;font-size:54px}.book-screen__header p{color:#d5ded9;margin:0}.adventure-book{color:#2d2118;background:#7f5637;border:8px solid #3a251c;border-radius:6px;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);display:grid;position:relative;box-shadow:0 0 0 3px #bd8a50,16px 22px #0000007a}.book-page,.setup-ledger fieldset{background:repeating-linear-gradient(0deg,#6f4b2814 0 1px,#0000 1px 6px),linear-gradient(105deg,#d5bd88 0%,#f5e7bd 14%,#ead8a9 100%);border:0;min-width:0;margin:0;padding:38px;position:relative}.book-page--right,.setup-ledger fieldset:last-of-type{background:repeating-linear-gradient(0deg,#6f4b2814 0 1px,#0000 1px 6px),linear-gradient(255deg,#d5bd88 0%,#f5e7bd 14%,#ead8a9 100%)}.book-page h2{border-bottom:2px solid #3e2a1a66;padding-bottom:11px;font-family:Georgia,Noto Serif TC,serif;font-size:31px}.book-copy{color:#5d4936;min-height:56px;font-size:var(--font-size-min)}.book-page__number{color:#4f342175;font-family:Georgia,serif;font-size:28px;font-weight:900;position:absolute;top:16px;right:20px}.record-type{color:#7c3e2f}.book-spine{background:repeating-linear-gradient(90deg,#ffffff21 0 2px,#0000 2px 5px),#63412c;min-height:100%;box-shadow:inset 5px 0 7px #0000006b,inset -5px 0 7px #0000006b}.book-form label,.setup-ledger label{color:#473528}.book-form input,.setup-ledger input{color:#2a1e17;background:#fff8dd85;border-color:#6f553d}.book-clasp{z-index:4;background:#c38c3c;border:3px solid #5b361f;width:34px;height:20px;position:absolute;right:-21px;box-shadow:inset 0 0 0 3px #f5ca71}.book-clasp--top{top:22%}.book-clasp--bottom{bottom:22%}.adventure-book--setup{display:block}.setup-ledger{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);display:grid}.setup-ledger fieldset{gap:14px;display:grid}.setup-ledger legend{border-bottom:2px solid #3e2a1a66;width:100%;margin-bottom:12px;padding-bottom:10px;font-family:Georgia,Noto Serif TC,serif;font-size:25px;font-weight:900}.setup-ledger legend span{aspect-ratio:1;color:#f8e8bd;width:30px;font-family:ui-monospace,monospace;font-size:var(--font-size-min);background:#734738;place-items:center;margin-right:8px;display:inline-grid}.setup-ledger>.rpg-button{z-index:7;width:220px;position:absolute;bottom:-24px;right:50%;transform:translate(50%)}
.dashboard-screen .game-screen__content,.review-screen .game-screen__content,.student-screen .game-screen__content{align-content:start;gap:28px;padding-top:28px;padding-bottom:72px;display:grid}.game-topbar{text-shadow:3px 4px #00000085;border-bottom:3px solid #ffe38a80;justify-content:space-between;align-items:center;gap:24px;padding-bottom:20px;display:flex}.game-topbar h1{margin-bottom:4px;font-size:43px}.game-topbar p:last-child{color:#d4ddda;font-size:var(--font-size-min);margin:0}.guild-summary{background:#0f0f14e0;border:3px solid #8f784f;grid-template-columns:repeat(3,1fr);display:grid;box-shadow:8px 10px #00000059}.guild-summary>div{border-right:2px solid #514a43;grid-template-columns:1fr auto;align-items:center;gap:0 16px;padding:16px 20px;display:grid}.guild-summary>div:last-child{border-right:0}.guild-summary span{color:#d8d0bd;font-size:var(--font-size-min);font-weight:800}.guild-summary strong{color:var(--gold-light);grid-area:1/2/3;font-family:ui-monospace,monospace;font-size:34px}.guild-summary small{color:#77726c;font-family:ui-monospace,monospace}.hero-registry{padding:24px 28px}.hero-registry__head{border-bottom:2px solid #5c5655;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding-bottom:18px;display:flex}.hero-registry__head>div{flex:240px}.hero-registry__head>div>span{color:var(--gold-light);font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.hero-registry__head h2{margin:4px 0 0}.hero-registry details{flex:0 620px}.hero-registry details:not([open]){flex-basis:auto}.hero-registry details[open]{flex-basis:100%}.hero-registry summary{width:max-content;margin-left:auto;list-style:none}.hero-registry summary::-webkit-details-marker{display:none}.hero-register-form{border-top:2px dashed #625b51;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:20px;padding-top:20px}.hero-register-form .rpg-button{grid-column:1/-1;justify-self:end}.hero-roster{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-top:18px;display:grid}.hero-roster__entry{background:#1b1b22;border:2px solid #48434a;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:2px 11px;min-height:58px;padding:9px 12px;display:grid}.hero-roster__entry>span{color:var(--gold-light);grid-row:1/4;font-family:ui-monospace,monospace;font-size:18px;font-weight:900}.hero-roster__entry strong,.hero-roster__entry small{overflow-wrap:anywhere;min-width:0}.hero-roster__entry small{color:#9d9991}.hero-roster__editor{grid-column:1/-1;width:100%}.hero-roster__editor summary{margin-top:8px;margin-left:0}.hero-edit-form{border-top:1px solid #ffffff24;grid-template-columns:1fr;margin-top:12px;padding-top:12px}.hero-edit-form input[readonly]{color:#aaa6a0;cursor:default}.hero-edit-form .rpg-button{justify-self:end}
.guild-workspace{grid-template-columns:minmax(0,1.15fr) minmax(330px,.85fr);gap:28px;display:grid}.upload-quest,.quest-log{padding:28px}.upload-quest>p{color:#bfc7c3;font-size:var(--font-size-min)}.game-form--upload{grid-template-columns:minmax(150px,.42fr) minmax(240px,1fr)}.game-form--upload .rpg-button{grid-column:1/-1}.file-drop{position:relative}.file-drop input{opacity:0;width:1px;height:1px;position:absolute}.file-drop>span{cursor:pointer;color:#d8cfb9;text-align:center;background:#17171d;border:2px dashed #8d7b62;place-items:center;min-height:43px;padding:9px 12px;display:grid}.file-drop:focus-within>span,.file-drop:hover>span{border-color:var(--cyan);color:var(--cyan)}.quest-log .list{gap:8px;display:grid}.quest-row{background:#1c1b22;border:2px solid #3f3b40;grid-template-columns:36px 1fr 18px;align-items:center;gap:12px;min-height:58px;padding:8px 11px;display:grid}.quest-row:hover,.quest-row:focus-visible{border-color:var(--cyan);background:#263038;outline:0}.quest-row__marker{color:var(--gold-light);font-family:ui-monospace,monospace;font-weight:900}.quest-row span:nth-child(2){gap:3px;display:grid}.quest-row small{color:#a9a39a}.section-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.section-heading h2{text-shadow:3px 4px #00000080;margin:0;font-size:31px}.section-heading .game-kicker{margin-bottom:5px}.status-section,.appraisal-ledger{gap:18px;display:grid}.status-stack{gap:20px;display:grid}
.status-board{color:#f3ecda;background:#101117f5;border:3px solid #d5bd80;border-radius:2px;padding:24px;box-shadow:0 0 0 3px #443a31,9px 11px #00000061}.status-board__header{border-bottom:3px double #70644d;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;padding-bottom:14px;display:flex}.status-board__header h2{overflow-wrap:anywhere;margin:4px 0 0}.status-board__header>div:first-child{min-width:0}.status-board__rank{border:3px double var(--gold-light);width:132px;min-height:64px;color:var(--gold-light);background:#2c2522;border-radius:8px;justify-content:center;align-items:center;gap:10px;display:flex}.status-board__rank span{font-family:ui-monospace,monospace;font-size:var(--font-size-min)}.status-board__rank strong{font-size:28px}.attribute-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.attribute-block{--attribute:var(--gold);background:#1b1b22;border:2px solid #48434a;padding:15px}.attribute-block--power{--attribute:#d69b45}.attribute-block--agility{--attribute:#58b9d0}.attribute-block--intellect{--attribute:#a97ad7}.attribute-block--perception{--attribute:#64c58b}.attribute-block--will{--attribute:#72a6db}.attribute-block__head{border-bottom:2px solid #3c3940;grid-template-columns:42px 1fr auto;align-items:start;gap:11px;margin-bottom:12px;padding-bottom:12px;display:grid}.attribute-sigil{aspect-ratio:1;border:2px solid color-mix(in srgb, var(--attribute) 75%, #fff 25%);color:#111016;background:var(--attribute);place-items:center;width:40px;font-size:18px;font-weight:900;display:grid}.attribute-block h3{color:#fff4d3}.attribute-block__head p{color:#9e9b97;font-size:var(--font-size-min);margin:3px 0 0;line-height:1.45}.attribute-total{color:var(--attribute);text-align:right;font-family:ui-monospace,monospace;font-size:25px;display:grid}.attribute-total small{color:#7c7978;font-size:var(--font-size-min)}.recommended-targets,.daily-target{background:#ffffff0e;border:1px solid #ffffff29;border-radius:8px;margin-bottom:12px;padding:10px 12px}.recommended-targets h3,.daily-target p{color:#fff4d3;font-size:var(--font-size-min);margin:0}.recommended-targets ul{color:#c9c3b8;font-size:var(--font-size-min);gap:3px;margin:6px 0 0;padding-left:18px;display:grid}.daily-target small{color:#aaa39a;font-size:var(--font-size-min);margin-top:3px;display:block}.skill-list{gap:7px;display:grid}.skill-row{border-left:3px solid var(--attribute);background:#22222a;grid-template-columns:auto minmax(130px,1fr) minmax(84px,.72fr) 34px 116px;align-items:center;gap:9px;min-height:54px;padding:7px 8px;display:grid}.skill-row--readonly{grid-template-columns:minmax(0,1fr) minmax(84px,.72fr) 34px 116px}.skill-row:has(input:checked){outline:2px solid var(--gold-light);outline-offset:1px;background:#34302b}.skill-row--locked{opacity:.48;filter:grayscale(.8);border-left-color:#4d4b4d}.skill-row input{width:17px;height:17px;accent-color:var(--gold)}.skill-copy{gap:2px;min-width:0;display:grid}.skill-name{overflow-wrap:anywhere;color:#f7efd8;font-size:var(--font-size-min);font-weight:900}.skill-name-line{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.skill-name-line .skill-name{flex:110px;min-width:0}.skill-recommendation-badge{color:#fff4cd;font-size:var(--font-size-min);background:#ffffff14;border:1px solid #fff4cd5c;border-radius:6px;flex:none;padding:1px 5px;font-weight:900}.skill-copy small{color:#8f8b88;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skill-meter{background:#0d0d11;border:2px solid #3a383d;height:9px;position:relative;overflow:hidden}.skill-fill{background:var(--attribute);position:absolute;inset:0 auto 0 0;box-shadow:inset 0 -2px #00000047}.skill-score{color:#fff1c6;font-family:ui-monospace,monospace;font-size:var(--font-size-min);text-align:right}.mastery-legend{color:#aaa39a;font-size:var(--font-size-min);margin:10px 0 0;line-height:1.5}
.appraisal-confirm{gap:18px;display:grid}.bestiary-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.bestiary-entry{cursor:pointer;background:#151419f0;border:2px solid #5a5350;grid-template-columns:auto 44px 1fr auto;align-items:center;gap:10px;min-height:84px;padding:12px;display:grid}.bestiary-entry:hover{border-color:var(--gold-light);background:#302b28}.bestiary-entry:has(input:checked){border-color:var(--gold-light);background:#302b28}.bestiary-entry input{width:18px;height:18px;accent-color:var(--gold)}.bestiary-entry__number{color:var(--gold);font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.bestiary-entry__copy{gap:5px;min-width:0;display:grid}.bestiary-entry__copy strong{overflow-wrap:anywhere;font-size:var(--font-size-min)}.bestiary-entry__copy small{color:#aaa39a}.bestiary-entry__status{color:var(--gold-light);font-size:var(--font-size-min);white-space:nowrap;border:1px solid #82704f;padding:5px 7px;font-weight:900}.bestiary-entry--locked{opacity:.48}.quest-brief{grid-template-columns:64px 1fr auto;align-items:center;gap:18px;padding:22px 28px;display:grid}.quest-brief__marker{aspect-ratio:1;border:4px double var(--gold-light);width:58px;color:var(--ink);background:var(--gold);place-items:center;font-family:ui-monospace,monospace;font-size:32px;font-weight:900;display:grid}.quest-brief h2,.quest-brief p{margin-bottom:0}.quest-brief p{color:#b9c1bd;font-size:var(--font-size-min)}.quest-brief>strong{color:var(--gold-light);text-align:center;font-family:ui-monospace,monospace;font-size:38px;display:grid}.quest-brief>strong small{color:#aaa39a;font-family:inherit;font-size:var(--font-size-min)}.adventure-loadout{gap:20px;display:grid}.quest-start{justify-self:center;width:min(360px,100%)}
.battle-screen .game-screen__content{align-items:center;width:min(1120px,100%);padding-top:20px;padding-bottom:20px;display:grid}.battle-interface{background:#121218;border:4px solid #e2cc92;display:grid;overflow:hidden;box-shadow:0 0 0 4px #493b2d,14px 18px #0000007a}.battle-hud{background:#18171e;border-bottom:3px solid #7a6b50;grid-template-columns:1fr minmax(260px,.75fr);align-items:center;gap:26px;padding:14px 20px;display:grid}.battle-hud__identity{grid-template-columns:auto 1fr;align-items:baseline;gap:2px 12px;display:grid}.battle-hud__identity>span{color:var(--red)}.battle-hud__identity strong{font-size:20px}.battle-hud__identity small{color:#96928d;grid-column:2}.battle-hud__meter,.hero-status{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-family:ui-monospace,monospace;display:grid}.battle-hud__meter>span,.hero-status>span{color:var(--gold-light);font-size:var(--font-size-min);font-weight:900}.pixel-meter{background:#171219;border:2px solid #b9a878;height:13px;position:relative;overflow:hidden}.pixel-meter>span{background:var(--red);transition:width .48s steps(8,end);position:absolute;inset:0 auto 0 0}.pixel-meter--hero>span{background:var(--green)}.battle-stage{background:repeating-linear-gradient(90deg,#ffffff0a 0 2px,#0000 2px 18px),linear-gradient(#29314a 0%,#60575b 52%,#262127 53%,#131218 100%);place-items:center;min-height:360px;display:grid;position:relative;overflow:hidden}.battle-stage--medium{background:repeating-linear-gradient(90deg,#ffe1a40a 0 2px,#0000 2px 18px),linear-gradient(#27323e 0%,#6b5949 52%,#342a24 53%,#141216 100%)}.battle-stage--hard{background:repeating-linear-gradient(90deg,#a787ea0f 0 2px,#0000 2px 18px),linear-gradient(#17172c 0%,#443d60 52%,#211b2d 53%,#0d0c12 100%)}.battle-stage:before{content:"";opacity:.68;clip-path:polygon(0 80%,7% 48%,12% 70%,19% 20%,27% 72%,36% 38%,42% 75%,51% 15%,58% 67%,68% 33%,76% 76%,84% 25%,92% 69%,100% 42%,100% 100%,0 100%);background:#141521;height:55%;position:absolute;inset:8% 0 auto}.battle-stage__fog{opacity:.46;background:repeating-linear-gradient(90deg,#0000 0 24px,#d6e7e447 24px 74px,#0000 74px 118px);height:36px;animation:8s steps(12,end) infinite fog-slide;position:absolute;bottom:22%;left:-8%;right:-8%}@keyframes fog-slide{to{transform:translate(118px)}}.monster-platform{opacity:.8;background:#0a0a0d;width:330px;height:40px;position:absolute;bottom:30px;transform:skew(-18deg);box-shadow:0 0 20px #000000db}.monster-sprite{z-index:3;object-fit:contain;width:300px;height:300px;image-rendering:pixelated;filter:drop-shadow(8px 11px #0006);position:relative}.battle-interface--victory .monster-sprite{animation:.68s steps(7,end) forwards monster-defeat}.battle-interface--counter .monster-sprite{animation:.56s steps(6,end) monster-counter}@keyframes monster-defeat{0%{opacity:1;filter:brightness(1.8)drop-shadow(8px 11px #0006);transform:translate(0)}35%{transform:translate(-10px)}55%{opacity:1;transform:translate(10px)scaleY(.92)}to{opacity:.24;filter:grayscale();transform:translateY(34px)scaleY(.35)}}@keyframes monster-counter{0%,to{transform:translate(0)}30%{transform:translate(-26px)scale(1.04)}60%{transform:translate(34px)scale(1.08)}}.hit-burst{z-index:5;pointer-events:none;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hit-burst span{background:var(--gold-light);width:8px;height:8px;box-shadow:0 0 8px var(--gold);display:none;position:absolute}.battle-interface--victory .hit-burst span{animation:.62s steps(5,end) both hit-pixel;display:block}.hit-burst span:first-child{--hit-x:-110px;--hit-y:-80px}.hit-burst span:nth-child(2){--hit-x:-72px;--hit-y:-126px}.hit-burst span:nth-child(3){--hit-x:8px;--hit-y:-142px}.hit-burst span:nth-child(4){--hit-x:82px;--hit-y:-104px}.hit-burst span:nth-child(5){--hit-x:132px;--hit-y:-38px}.hit-burst span:nth-child(6){--hit-x:126px;--hit-y:48px}.hit-burst span:nth-child(7){--hit-x:72px;--hit-y:112px}.hit-burst span:nth-child(8){--hit-x:2px;--hit-y:138px}.hit-burst span:nth-child(9){--hit-x:-78px;--hit-y:106px}.hit-burst span:nth-child(10){--hit-x:-126px;--hit-y:42px}.hit-burst span:nth-child(11){--hit-x:48px;--hit-y:26px}.hit-burst span:nth-child(12){--hit-x:-46px;--hit-y:-20px}@keyframes hit-pixel{0%{opacity:1;transform:translate(0)scale(2)}to{opacity:0;transform:translate(var(--hit-x), var(--hit-y)) scale(.5)}}.damage-number{z-index:6;color:#fff5ba;text-shadow:3px 3px #7c2c27;font-family:ui-monospace,monospace;font-size:27px;animation:.72s steps(7,end) both damage-pop;position:absolute;top:18%;left:56%}.damage-number--hero{color:#ff8378;inset:auto 18% 16% auto}@keyframes damage-pop{0%{opacity:0;transform:translateY(24px)scale(.7)}30%{opacity:1;transform:translateY(0)scale(1.2)}to{opacity:0;transform:translateY(-34px)scale(1)}}.battle-stage__scanlines{z-index:8;pointer-events:none;opacity:.18;background:repeating-linear-gradient(0deg,#0000 0 4px,#000 4px 5px);position:absolute;inset:0}
.enemy-dialogue{color:#251d17;background:#f1e3be;border-top:3px solid #9e875f;border-bottom:3px solid #9e875f;padding:16px 22px}.enemy-dialogue .game-kicker{color:#8a4235}.enemy-dialogue p{overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:900;line-height:1.55}.battle-command,.battle-result{background:#15151b;gap:14px;padding:18px 20px 22px;display:grid}.battle-command__title{border-bottom:2px solid #454047;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:10px;display:flex}.battle-command__title strong{font-size:17px}.attack-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.attack-command{cursor:pointer;background:#222128;border:2px solid #4a464b;grid-template-columns:36px 1fr 18px;align-items:center;gap:10px;min-height:65px;padding:8px 10px;display:grid}.attack-command:hover{border-color:var(--gold-light);color:#171219;background:var(--parchment-light)}.attack-command:has(input:checked){border-color:var(--gold-light);color:#171219;background:var(--parchment-light)}.attack-command:has(input:focus-visible){border-color:var(--gold-light);color:#171219;background:var(--parchment-light)}.attack-command input{opacity:0;pointer-events:none;position:absolute}.attack-command__icon{aspect-ratio:1;width:34px;color:var(--gold-light);background:#17161b;border:2px solid #a48a58;place-items:center;font-family:ui-monospace,monospace;font-weight:900;display:grid}.attack-command__copy{gap:2px;min-width:0;display:grid}.attack-command__copy small{color:#a99e8a;font-family:ui-monospace,monospace;font-weight:900}.attack-command__copy strong{overflow-wrap:anywhere;font-size:var(--font-size-min)}.attack-command__cursor{opacity:0}.attack-command:hover .attack-command__cursor{opacity:1}.attack-command:has(input:checked) .attack-command__cursor{opacity:1}.attack-command:has(input:focus-visible) .attack-command__cursor{opacity:1}.attack-command:hover .attack-command__copy small{color:#7b3a2e}.attack-command:has(input:checked) .attack-command__copy small{color:#7b3a2e}.attack-command:has(input:focus-visible) .attack-command__copy small{color:#7b3a2e}.battle-hint{color:#b9c8c4;font-size:var(--font-size-min);background:#20262a;gap:10px;margin:0;padding:9px 12px;display:flex}.battle-hint span{color:var(--cyan);font-weight:900}.battle-message{border:3px double var(--gold-light);background:#24222a;align-items:center;gap:14px;min-height:70px;padding:12px 16px;display:flex}.battle-message strong{color:var(--gold-light);font-size:19px}.battle-message p{color:#d3cdc2;font-size:var(--font-size-min);margin:3px 0 0}.battle-cursor{color:var(--gold-light);animation:.85s steps(2,end) infinite cursor-blink}@keyframes cursor-blink{50%{opacity:.2}}.battle-result .rpg-button{justify-self:end}
@media (max-width:980px){h1{font-size:43px}.game-screen__content{padding:26px}.title-screen .game-screen__content{grid-template-columns:1fr;gap:38px}.title-lockup h1{font-size:68px}.start-menu{width:min(440px,100%)}.guild-workspace,.attribute-roster,.bestiary-list{grid-template-columns:1fr}}@media (max-width:720px){h1{font-size:34px}h2{font-size:23px}.game-screen__content{padding:20px 16px 48px}.world-moon{border-width:4px;width:58px}.title-lockup h1{font-size:54px}.title-lockup>.title-slogan{font-size:16px}.game-topbar{flex-direction:column;align-items:flex-start}.game-topbar .rpg-button{width:100%}.guild-summary{grid-template-columns:1fr}.guild-summary>div{border-bottom:2px solid #514a43;border-right:0}.guild-summary>div:last-child{border-bottom:0}.hero-registry{padding:21px 17px}.hero-registry__head{flex-direction:column;align-items:stretch}.hero-registry__head>div{flex-basis:auto}.hero-registry details,.hero-registry details:not([open]),.hero-registry details[open]{flex-basis:auto;width:100%}.hero-registry summary{width:100%;margin-left:0}.hero-register-form{grid-template-columns:1fr}.hero-register-form .rpg-button{grid-column:1;width:100%}.adventure-book{display:block}.book-page{padding:30px 24px}.book-spine{width:100%;height:18px;min-height:18px}.book-clasp{display:none}.setup-ledger{display:block}.setup-ledger fieldset{padding:30px 24px}.setup-ledger>.rpg-button{width:calc(100% - 48px);margin:22px 24px;position:relative;bottom:auto;right:auto;transform:none}.game-form--upload{grid-template-columns:1fr}.section-heading{flex-direction:column;align-items:flex-start}.status-board{padding:17px}.skill-row{grid-template-columns:auto 1fr auto}.skill-meter{grid-column:2/-1;width:100%}.skill-copy small{white-space:normal}.quest-brief{grid-template-columns:50px 1fr;padding:20px}.quest-brief__marker{width:48px}.quest-brief>strong{display:none}.battle-screen .game-screen__content{padding:10px}.battle-hud{grid-template-columns:1fr;gap:10px;padding:12px 14px}.battle-stage{min-height:290px}.monster-sprite{width:240px;height:240px}.monster-platform{width:260px}.enemy-dialogue{padding:14px 16px}.enemy-dialogue p{font-size:17px}.attack-grid{grid-template-columns:1fr}.battle-command,.battle-result{padding:15px}.battle-result .rpg-button{width:100%}.bestiary-entry{grid-template-columns:auto 38px 1fr}.bestiary-entry__status{grid-column:2/-1;justify-self:start}}@media (max-width:420px){.game-screen__content{padding-left:12px;padding-right:12px}.title-lockup h1{font-size:46px}.start-menu{padding:24px 17px}.menu-command{font-size:var(--font-size-min)}.book-screen__header h1{font-size:40px}.book-page h2{font-size:26px}.upload-quest,.quest-log{padding:21px 17px}.status-board__header{align-items:flex-start}.status-board__rank{width:118px}.attribute-block{padding:11px}.attribute-block__head{grid-template-columns:36px 1fr auto}.attribute-sigil{width:34px}.battle-interface{border-width:3px}.monster-sprite{width:210px;height:210px}.battle-stage{min-height:255px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
.world-backdrop{background-color:#11131d;background-position:50%;background-size:cover}.game-screen .world-backdrop{background-position:50%;background-repeat:no-repeat;background-size:cover}.game-screen--field .world-backdrop{background-image:url(/game-assets/maps/title-plaza.png)}.game-screen--book .world-backdrop{background-image:url(/game-assets/maps/adventure-book.png)}.game-screen--town .world-backdrop{background-image:url(/game-assets/maps/guild-hall.png)}.game-screen--camp .world-backdrop{background-image:url(/game-assets/maps/hero-camp.png)}.game-screen--battle .world-backdrop{background-image:url(/game-assets/maps/grammar-arena.png)}.world-backdrop:after{opacity:.12;background-color:#05070c;background-image:none}.title-screen .world-backdrop:after,.book-screen .world-backdrop:after,.battle-screen .world-backdrop:after{opacity:.04}.world-map-glow{background:#080a1114;display:block;position:absolute;inset:0}.game-kicker{gap:6px}.title-screen .game-screen__content{grid-template-rows:1fr auto;grid-template-columns:1fr;justify-items:center;gap:28px;padding-top:7vh;padding-bottom:7vh;display:grid}.title-lockup{text-align:center;align-content:start;justify-items:center;max-width:900px;display:grid}.title-lockup .game-kicker{justify-content:center}.title-lockup h1{color:#f8f0d4;text-shadow:0 5px #142846,0 9px #6b4527,0 14px 24px #000000b8;-webkit-text-stroke:2px #172845;margin:2px 0 14px;font-size:92px;line-height:.94}.title-lockup>.title-slogan{color:#fff5d7;text-shadow:2px 3px #11151d;background:#0b121bb3;padding:6px 18px}.start-menu{width:min(470px,100%);padding:26px 34px}.menu-command__icon,.battle-cursor,.attack-command__cursor{color:#0000;opacity:0;background-image:var(--sprite-forge-icon-command-cursor);background-position:50%;background-repeat:no-repeat;background-size:contain;width:32px;height:28px}
.book-screen .game-screen__content{width:min(1280px,100%);padding-top:24px;padding-bottom:36px}.book-screen__header{padding:8px 20px}.book-screen__header h1{color:#fff0c7;text-shadow:0 4px #3a2217,0 8px 18px #000}.book-screen__header p{color:#f3e1bf;text-shadow:2px 2px #21150f}.adventure-book{color:#2d2118;width:min(1080px,100%);box-shadow:none;background:0 0;border:0;border-radius:0;align-self:center}.book-spine{box-shadow:none;background:0 0}.book-clasp{display:none}.book-form input,.setup-ledger input{color:#281d16;background-color:#fffae0b8;background-image:none;border:0;box-shadow:inset 0 -2px #482f1d73}
.dashboard-screen .game-screen__content,.review-screen .game-screen__content,.student-screen .game-screen__content{background:#05080e2e;padding-top:32px}.guild-summary{box-shadow:none;background:0 0;border:0}.attribute-block{background:#080c156b;border:0}.attribute-sigil{color:#0000;background-color:#0000;background-position:50%;background-repeat:no-repeat;background-size:contain;border:0}.attribute-sigil img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;display:block}.guild-summary>div{border-right:0;min-height:86px;padding-left:30px;padding-right:30px}.hero-roster__entry,.quest-row,.bestiary-entry,.skill-row{min-height:76px;padding:15px 30px}.quest-brief__marker{color:#0000;background-color:#0000;background-image:url(/game-assets/ui/shop-items/mistake-book.png);background-position:50%;background-repeat:no-repeat;background-size:contain;border:0}.status-board,.upload-quest,.quest-log,.hero-registry{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.battle-screen .game-screen__content{width:min(1180px,100%)}.battle-interface{box-shadow:none;background:0 0;border:0;overflow:visible}.battle-hud{background-color:#070d1be6;border:0}.battle-stage,.battle-stage--medium,.battle-stage--hard{background:0 0;min-height:34vh;overflow:visible}.battle-stage:before,.battle-stage__fog,.monster-platform{display:none}.monster-sprite{width:270px;height:270px;margin-top:3vh}.enemy-dialogue,.battle-command,.battle-result{color:#f7efd8;background-color:#070d1bf0}.enemy-dialogue .game-kicker{color:var(--gold-light)}.attack-command__icon{width:46px;height:46px;color:var(--gold-light);background-image:none}.hit-burst{background-position:50%;background-repeat:no-repeat;background-size:contain;width:220px;height:220px}.battle-interface--victory .hit-burst{background-image:url(/game-assets/ui/slash-impact/animation.gif);animation:.92s steps(8,end) forwards localized-impact}.battle-interface--victory .hit-burst span{display:none}@keyframes localized-impact{0%,72%{opacity:1}to{opacity:0}}
@media (max-width:980px){.title-screen .game-screen__content{grid-template-columns:1fr}.title-lockup h1{font-size:74px}}@media (max-width:720px){.game-screen--field .world-backdrop{background-position:52%}.game-screen--book .world-backdrop{background-position:top}.game-screen--town .world-backdrop{background-position:43%}.game-screen--camp .world-backdrop{background-position:48%}.game-screen--battle .world-backdrop{background-position:top}.title-screen .game-screen__content{grid-template-rows:auto 1fr;gap:18px;padding-top:30px;padding-bottom:28px}.title-lockup h1{font-size:54px}.title-lockup>.title-slogan{font-size:var(--font-size-min)}.start-menu{align-self:end;padding:23px 22px}.adventure-book{display:block}.book-page,.setup-ledger fieldset,.book-page--right,.setup-ledger fieldset:last-of-type{margin-bottom:14px;padding:30px 24px}.book-spine{display:none}.guild-summary>div{border-bottom:0}.battle-stage{min-height:30vh}.monster-sprite{width:235px;height:235px;margin-top:3vh}}@media (max-width:420px){.title-lockup h1{font-size:44px}.book-screen__header h1{font-size:34px}.book-page,.setup-ledger fieldset,.book-page--right,.setup-ledger fieldset:last-of-type{padding:28px 20px}.battle-stage{min-height:28vh}.monster-sprite{width:210px;height:210px}}
.title-lockup{max-width:980px}.title-screen>.camp-spark-field{z-index:1;opacity:0;animation:1.2s ease-out 1.55s both title-sparks-arrive;position:fixed}.title-opening{z-index:80;pointer-events:none;animation:3.65s step-end both title-opening-dismiss;position:fixed;inset:0;overflow:hidden}.title-opening:after{z-index:3;content:"";opacity:0;background:#fff;height:2px;animation:1.15s ease-out .72s both title-eye-glint;position:absolute;top:50%;left:-10%;right:-10%;box-shadow:0 0 18px 8px #fffffff5,0 0 90px 38px #fff4ccb8}.title-opening__flash,.title-opening__eyelid{display:block;position:absolute;inset-inline:0}.title-opening__flash{z-index:4;background:radial-gradient(circle at 50% 48%,#fff 0 28%,#fffdf2 52%,#fff 100%);animation:1.18s cubic-bezier(.3,.02,.35,1) both title-white-flash;inset-block:0;box-shadow:inset 0 0 22vmax #fffffffa}.title-opening__eyelid{z-index:2;will-change:transform;background:radial-gradient(at 50% 100%,#2a2328f5 0,#0a090d 68%),#050508;height:52%}.title-opening__eyelid--top{border-radius:0 0 48% 48%/0 0 15% 15%;animation:1.25s cubic-bezier(.56,.02,.18,1) .72s both title-eyelid-open-top;top:0}.title-opening__eyelid--bottom{background:radial-gradient(at 50% 0,#2a2328f5 0,#0a090d 68%),#050508;border-radius:48% 48% 0 0/15% 15% 0 0;animation:1.25s cubic-bezier(.56,.02,.18,1) .72s both title-eyelid-open-bottom;bottom:0}.title-screen .world-backdrop{transform-origin:50%;will-change:transform, filter, background-position;animation:3.2s cubic-bezier(.18,.7,.2,1) .48s both title-camera-look-down}.title-screen .title-lockup{opacity:0;animation:.76s cubic-bezier(.2,.78,.24,1) 2.02s both title-lockup-arrive}.title-screen .start-menu{visibility:hidden;pointer-events:none;opacity:0;animation:.82s cubic-bezier(.16,.82,.2,1) 2.68s both title-menu-arrive}.title-screen[data-home-opening=skip] .world-backdrop,.title-screen[data-home-opening=skip]>.camp-spark-field,.title-screen[data-home-opening=skip] .title-lockup,.title-screen[data-home-opening=skip] .start-menu,.title-screen--skip-opening .world-backdrop,.title-screen--skip-opening>.camp-spark-field,.title-screen--skip-opening .title-lockup,.title-screen--skip-opening .start-menu{visibility:visible;pointer-events:auto;opacity:1;filter:none;animation:none;transform:none}.title-screen[data-home-opening=skip]>.camp-spark-field,.title-screen--skip-opening>.camp-spark-field{opacity:.72}.title-screen[data-home-opening=skip] .title-opening,.title-screen--skip-opening .title-opening{display:none}@keyframes title-white-flash{0%,34%{opacity:1;filter:brightness(1.24)}68%{opacity:.92}to{opacity:0;filter:brightness()}}@keyframes title-eye-glint{0%,18%{opacity:0;transform:scaleX(.08)}42%{opacity:1;transform:scaleX(.82)}to{opacity:0;transform:scaleX(1)}}@keyframes title-eyelid-open-top{0%,14%{transform:translateY(0)}to{transform:translateY(-104%)}}@keyframes title-eyelid-open-bottom{0%,14%{transform:translateY(0)}to{transform:translateY(104%)}}@keyframes title-camera-look-down{0%,18%{filter:blur(12px)brightness(1.55)saturate(.72);background-position:50% 0;transform:translateY(7vh)scale(1.18)}46%{filter:blur(3px)brightness(1.18)saturate(.9)}to{filter:none;background-position:50%;transform:translate(0,0)scale(1)}}@keyframes title-lockup-arrive{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes title-sparks-arrive{0%{opacity:0}to{opacity:.72}}@keyframes title-menu-arrive{0%{visibility:hidden;pointer-events:none;opacity:0;transform:translateY(28px)}1%{visibility:visible;pointer-events:auto}to{visibility:visible;pointer-events:auto;opacity:1;transform:translateY(0)}}@keyframes title-opening-dismiss{0%{visibility:visible}to{visibility:hidden}}.title-lockup .game-kicker{color:#fffae5eb;text-shadow:0 2px 10px #00000094}.title-lockup h1{color:#fffaf0;white-space:nowrap;text-shadow:0 4px 18px #0f1827c7,0 1px #ffffff94;-webkit-text-stroke:0;margin:22px 0 18px;font-family:Noto Serif TC,Songti TC,STSong,PMingLiU,serif;font-size:76px;font-weight:900;line-height:1.12}.title-lockup>.title-slogan{color:#fffaeaf0;text-shadow:0 2px 12px #000000d1;background:0 0;padding:0}.title-screen .start-menu{width:min(450px,100%);box-shadow:none;background:0 0;border:0;border-image:;padding:0}.title-screen .start-menu nav{gap:12px}.title-screen .menu-command-form{width:100%;margin:0}.title-screen .demo-unavailable{color:#ffe2a8;font-size:var(--font-size-min);text-align:center;text-shadow:0 2px 8px #000000b8;margin:12px 0 0}.title-screen .menu-command{color:#fffaf0;-webkit-backdrop-filter:blur(10px)saturate(1.12);backdrop-filter:blur(10px)saturate(1.12);text-shadow:0 2px 8px #000000bd;background-color:#0a192bc7;background-image:none;border:1px solid #ffffff61;border-radius:8px;grid-template-columns:minmax(0,1fr);justify-items:center;min-height:60px;padding:14px 20px;box-shadow:inset 0 1px #fff3,0 10px 30px #040a143d}.title-screen .menu-command__copy{opacity:1;text-align:center;width:auto;height:auto}.title-screen .menu-command__copy strong{letter-spacing:.1em;font-family:Noto Serif TC,Source Han Serif TC,Songti TC,STSong,PMingLiU,serif;font-size:21px;font-weight:800;line-height:1.35}.title-screen .menu-command:hover,.title-screen .menu-command:focus-visible{color:#fff;outline-offset:3px;filter:none;background-color:#1f3c54db;border-color:#ffffffc7;outline:2px solid #77e2ddb3;transform:translateY(-1px)}.title-screen .start-menu>small{color:#ffffff94;text-align:center;text-shadow:0 2px 8px #000000b3;margin-top:14px}@media (max-width:720px){.title-lockup h1{margin-top:16px;font-size:44px}.title-screen .menu-command{min-height:56px;font-size:16px}}@media (max-width:420px){.title-lockup h1{font-size:40px}}@media (prefers-reduced-motion:reduce){.title-opening{display:none}.title-screen .world-backdrop,.title-screen .title-lockup,.title-screen .start-menu{visibility:visible;pointer-events:auto;opacity:1;filter:none;animation:none;transform:none}}.pwa-install-card{z-index:160;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));color:#f2f6f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#181c22e0;border:1px solid #ffffff3d;border-radius:8px;max-width:420px;margin-inline:auto;padding:13px 15px;position:fixed;left:12px;box-shadow:0 10px 28px #00000073}.pwa-install-card__title{margin:0 0 4px;font-size:16px;font-weight:900}.pwa-install-card__hint{color:#ffffffb8;font-size:var(--font-size-min);margin:0 0 10px;line-height:1.5}.pwa-install-card__actions{justify-content:flex-end;gap:8px;display:flex}.pwa-install-card__install,.pwa-install-card__later{cursor:pointer;color:#fff;background:#ffffff17;border:1px solid #ffffff5c;border-radius:7px;min-height:44px;padding:8px 18px;font-weight:900}.pwa-install-card__install{background:#407e829e;border-color:#b1ede9b8}
.dashboard-screen{--guild-glass:#2222244d;--guild-glass-soft:#42424447;--guild-border:#ffffff3d;--guild-border-strong:#fff6;--guild-muted:#efefecad}.dashboard-screen:after{opacity:.08}.dashboard-screen .world-backdrop:after{opacity:.28;background:#171719}.dashboard-screen .world-map-glow{background:#1212141f}.dashboard-screen .game-screen__content{background:0 0;gap:20px;width:min(1160px,100%);padding:36px 28px 72px}.dashboard-screen .game-kicker{color:#fff6dacc;text-shadow:0 2px 10px #0000009e}.dashboard-screen .game-topbar{text-shadow:none;border:0;align-items:flex-end;padding:4px 2px 10px}.dashboard-screen .game-topbar h1{color:#fffaf0;text-shadow:0 4px 18px #000000bd;margin:8px 0 5px;font-family:Noto Serif TC,Songti TC,STSong,PMingLiU,serif;font-size:46px;line-height:1.12}.dashboard-screen .game-topbar p:last-child{color:#f4f7f3bd;font-size:var(--font-size-min);text-shadow:0 2px 8px #000000b3}.guild-glass-panel,.dashboard-screen .status-board,.dashboard-screen .system-message{border:1px solid var(--guild-border);background:var(--guild-glass);-webkit-backdrop-filter:blur(18px)saturate(.28);backdrop-filter:blur(18px)saturate(.28);border-image:;border-radius:8px;box-shadow:inset 0 1px #ffffff1a,0 18px 44px #02081038}.dashboard-screen .guild-glass-button{border:1px solid var(--guild-border-strong);color:#fffaf0;-webkit-backdrop-filter:blur(14px)saturate(.34);backdrop-filter:blur(14px)saturate(.34);text-shadow:0 2px 8px #000000ad;background-color:#4545485c;background-image:none;border-radius:8px;justify-content:center;align-items:center;min-height:50px;padding:12px 20px;transition:border-color .16s,background-color .16s,transform .16s;display:inline-flex;box-shadow:inset 0 1px #ffffff2e,0 10px 26px #02081033}.dashboard-screen .guild-glass-button:hover,.dashboard-screen .guild-glass-button:focus-visible{color:#fff;outline-offset:3px;filter:none;background-color:#6060638f;border-color:#ffffffc2;outline:2px solid #77e2dd9e;transform:translateY(-1px)}.dashboard-screen .guild-glass-button:active{transform:translateY(0)}.dashboard-screen .guild-glass-button:disabled{cursor:not-allowed;opacity:.46;filter:none;outline:0;transform:none}.dashboard-screen .guild-summary{grid-template-columns:repeat(3,minmax(0,1fr));padding:0;overflow:hidden}.dashboard-screen .guild-summary>div{background:0 0;border:0;border-right:1px solid #ffffff24;min-height:78px;padding:15px 22px}.dashboard-screen .guild-summary>div:last-child{border-right:0}.dashboard-screen .guild-summary span{color:#f5f6f0c2;font-size:var(--font-size-min)}.dashboard-screen .guild-summary strong{color:#fff3c7;text-shadow:0 2px 10px #0000007a;font-size:30px}.dashboard-screen .guild-summary small{color:#d2e1e570;font-size:var(--font-size-min)}.dashboard-screen .system-message{color:#dff9e2;margin:0;padding:13px 18px}
.dashboard-screen .hero-registry,.dashboard-screen .upload-quest,.dashboard-screen .quest-log{padding:24px}.dashboard-screen .hero-registry__head{border-bottom:1px solid #ffffff24;padding-bottom:17px}.dashboard-screen .hero-registry__head>div>span,.dashboard-screen .window-title>span,.dashboard-screen .status-board__kicker{color:#ffe7a4b8;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.dashboard-screen .hero-registry__head h2,.dashboard-screen .window-title h2{color:#fffaf0;margin:5px 0 0;font-size:24px}.dashboard-screen .window-title{border-bottom:1px solid #ffffff24;justify-content:start;gap:0;margin-bottom:18px;padding-bottom:14px;display:grid}.dashboard-screen .window-title h2{text-align:left}.dashboard-screen .hero-register-form{border-top:1px solid #ffffff1f;gap:15px;margin-top:18px;padding-top:18px}.dashboard-screen .game-form label{color:#f5f6f0c2;font-size:var(--font-size-min)}.dashboard-screen .game-form input,.dashboard-screen .game-form select,.dashboard-screen .game-form textarea{color:#fffaf0;background:#18181a6b;border:1px solid #fff3;border-radius:6px;min-height:46px;padding:10px 13px;box-shadow:inset 0 1px #ffffff0f}.dashboard-screen .game-form input:focus,.dashboard-screen .game-form select:focus,.dashboard-screen .game-form textarea:focus{outline-offset:2px;border-color:#77e2ddc2;outline:2px solid #77e2dd33}.dashboard-screen .game-form input[readonly]{color:#c4c4c094;box-shadow:none;cursor:not-allowed;background:#0c0c0ead;border-color:#ffffff1f}.dashboard-screen .game-form input[readonly]:focus{box-shadow:none;border-color:#ffffff1f;outline:0}.dashboard-screen .hero-edit-form label:has(input[readonly]):after{color:#ffffff80;content:"帳號建立後不可修改";font-size:var(--font-size-min);margin-top:5px;font-weight:700;display:block}.dashboard-screen .game-form select option{color:#f7efd8;background:#2b2b2e}.dashboard-screen .hero-roster{gap:10px;margin-top:16px}.dashboard-screen .hero-roster__entry{background:#ffffff0b;border:1px solid #ffffff24;border-radius:7px;min-height:64px;padding:10px 14px}.dashboard-screen .hero-roster__entry>span{color:#b0dfebb3;font-size:var(--font-size-min)}.dashboard-screen .hero-roster__entry strong{color:#fffaf0}.dashboard-screen .hero-roster__entry small{color:var(--guild-muted)}.dashboard-screen .guild-workspace{gap:16px}.dashboard-screen .upload-quest>p{color:var(--guild-muted);font-size:var(--font-size-min);margin-bottom:18px}.dashboard-screen .game-form--upload{grid-template-columns:minmax(150px,.38fr) minmax(230px,1fr);gap:15px}.dashboard-screen .file-drop>span{color:#f1f7f4c2;background:#18181a52;border:1px dashed #ffffff57;border-radius:6px;min-height:46px}.dashboard-screen .file-drop:hover>span,.dashboard-screen .file-drop:focus-within>span{color:#bdf8f4;border-color:#77e2ddc7}.dashboard-screen .quest-log .list{gap:9px;margin-top:16px}.dashboard-screen .quest-row{background:#ffffff0b;border:1px solid #ffffff24;border-radius:7px;grid-template-columns:30px minmax(0,1fr) 16px;min-height:64px;padding:10px 13px}.dashboard-screen .quest-row:hover,.dashboard-screen .quest-row:focus-visible{outline-offset:2px;background:#2340527a;border-color:#ffffff7a;outline:2px solid #77e2dd61}.dashboard-screen .quest-row__marker{color:#b0dfebad;font-size:var(--font-size-min)}.dashboard-screen .quest-row small,.dashboard-screen .empty-state{color:var(--guild-muted)}
.dashboard-screen .status-section{gap:14px;margin-top:8px}.dashboard-screen .guild-section-heading{justify-content:flex-start;align-items:center;gap:16px;padding:8px 2px 0}.dashboard-screen .guild-section-heading h2{color:#fffaf0;text-shadow:0 3px 14px #000000a3;font-size:28px}.dashboard-screen .status-board{color:#f3ecda;padding:22px}.dashboard-screen .status-board__header{border-bottom:1px solid #ffffff24;margin-bottom:16px;padding-bottom:14px}.dashboard-screen .status-board__header h2{color:#fffaf0;font-size:22px}.dashboard-screen .status-board__rank{color:#ffe8ad;background:#ffeab314;border:1px solid #ffe8ab80;border-radius:8px;width:132px}.dashboard-screen .attribute-roster{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:11px}.dashboard-screen .attribute-block{background:#ffffff09;border:1px solid #ffffff1c;border-radius:7px;padding:14px}.dashboard-screen .attribute-block__head{border-bottom:1px solid #ffffff1c;margin-bottom:10px;padding-bottom:10px}.dashboard-screen .attribute-block__head p{color:var(--guild-muted)}.dashboard-screen .skill-list{gap:5px}.dashboard-screen .skill-row{border:0;border-left:3px solid var(--attribute);background:#01081059;border-radius:4px;min-height:52px;padding:7px 9px}.dashboard-screen .skill-row--locked{opacity:.5;border-left-color:#ffffff29}.dashboard-screen .skill-copy small{color:#dae3e48f}.dashboard-screen .skill-meter{background:#0000006b;border:0;border-radius:4px;height:7px}.dashboard-screen .skill-fill{border-radius:inherit}
@media (max-width:900px){.dashboard-screen .guild-workspace{grid-template-columns:1fr}}@media (max-width:720px){.dashboard-screen .game-screen__content{gap:15px;padding:22px 14px 52px}.dashboard-screen .game-topbar{align-items:stretch;gap:17px}.dashboard-screen .game-topbar h1{font-size:38px}.dashboard-screen .game-topbar form,.dashboard-screen .game-topbar .guild-glass-button,.dashboard-screen .hero-registry summary,.dashboard-screen .hero-register-form .guild-glass-button,.dashboard-screen .game-form--upload .guild-glass-button{width:100%}.dashboard-screen .guild-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-screen .guild-summary>div{text-align:center;border-bottom:0;border-right:1px solid #ffffff1f;grid-template-columns:1fr;justify-items:center;gap:2px;min-height:72px;padding:11px 6px}.dashboard-screen .guild-summary strong{grid-area:auto;font-size:26px}.dashboard-screen .guild-summary small{display:none}.dashboard-screen .hero-registry,.dashboard-screen .upload-quest,.dashboard-screen .quest-log,.dashboard-screen .status-board{padding:18px}.dashboard-screen .hero-registry__head{align-items:stretch}.dashboard-screen .hero-register-form,.dashboard-screen .game-form--upload{grid-template-columns:1fr}.dashboard-screen .hero-register-form .guild-glass-button,.dashboard-screen .game-form--upload .guild-glass-button{grid-column:1}.dashboard-screen .hero-roster{grid-template-columns:1fr}.dashboard-screen .guild-section-heading{align-items:flex-start;gap:5px}.dashboard-screen .attribute-roster{grid-template-columns:1fr}.dashboard-screen .skill-row{grid-template-columns:minmax(0,1fr) auto}.dashboard-screen .skill-meter{grid-column:1/-1;width:100%}.dashboard-screen .skill-copy small{white-space:normal}}@media (max-width:420px){.dashboard-screen .game-topbar h1{font-size:34px}.dashboard-screen .guild-summary span{font-size:var(--font-size-min)}.dashboard-screen .guild-summary strong{font-size:24px}.dashboard-screen .hero-registry,.dashboard-screen .upload-quest,.dashboard-screen .quest-log,.dashboard-screen .status-board{padding:16px}.dashboard-screen .attribute-block{padding:11px}}
.dashboard-screen .upload-progress{background:#1414165c;border:1px solid #ffffff2e;border-radius:7px;grid-column:1/-1;gap:9px;padding:13px 14px;display:grid}.dashboard-screen .upload-progress__head,.dashboard-screen .upload-progress__foot{justify-content:space-between;align-items:center;gap:14px;display:flex}.dashboard-screen .upload-progress__head span{color:#fffffcd1;font-size:var(--font-size-min);font-weight:800}.dashboard-screen .upload-progress__head strong{color:#fff0b8;font-family:ui-monospace,monospace;font-size:var(--font-size-min)}.dashboard-screen .upload-progress__track{background:#00000061;border-radius:5px;height:9px;position:relative;overflow:hidden}.dashboard-screen .upload-progress__track>span{border-radius:inherit;background:#a7dad5;transition:width .18s;position:absolute;inset:0 auto 0 0;box-shadow:0 0 14px #7ee2d857}.dashboard-screen .upload-progress--processing .upload-progress__track>span{animation:1.2s ease-in-out infinite alternate upload-processing}.dashboard-screen .upload-progress--error{border-color:#e1777080}.dashboard-screen .upload-progress--error .upload-progress__head strong,.dashboard-screen .upload-progress--error .upload-progress__foot small{color:#ffb8b2}.dashboard-screen .upload-progress__foot small{overflow-wrap:anywhere;color:#efefec94;min-width:0}.dashboard-screen .upload-cancel{cursor:pointer;color:#ffffffb8;font-size:var(--font-size-min);background:0 0;border:0;flex:none;padding:3px 0}.dashboard-screen .upload-cancel:hover,.dashboard-screen .upload-cancel:focus-visible{color:#fff;outline:0;text-decoration:underline}@keyframes upload-processing{0%{opacity:.55}to{opacity:1}}
.review-screen{--review-glass:#2222246b;--review-glass-soft:#42424447;--review-border:#ffffff3d;--review-border-strong:#fff6;--review-muted:#efefecad}.review-screen:after{opacity:.08}.review-screen .world-backdrop:after{opacity:.3;background:#171719}.review-screen .world-map-glow{background:#12121424}.review-screen .game-screen__content{background:0 0;gap:18px;width:min(1160px,100%);padding:36px 28px 72px}.review-screen .game-kicker{color:#fff6dacc;text-shadow:0 2px 10px #0000009e}.review-screen .game-topbar{text-shadow:none;border:0;align-items:flex-end;padding:4px 2px 10px}.review-screen .game-topbar h1{color:#fffaf0;text-shadow:0 4px 18px #000000bd;margin:8px 0 5px;font-family:Noto Serif TC,Songti TC,STSong,PMingLiU,serif;font-size:46px;line-height:1.12}.review-screen .game-topbar p:last-child{color:#f4f7f3bd;text-shadow:0 2px 8px #000000b3}.review-glass-panel{border:1px solid var(--review-border);background:var(--review-glass);-webkit-backdrop-filter:blur(18px)saturate(.28);backdrop-filter:blur(18px)saturate(.28);border-radius:8px;box-shadow:inset 0 1px #ffffff1a,0 18px 44px #02081038}.review-screen .review-glass-button{border:1px solid var(--review-border-strong);color:#fffaf0;-webkit-backdrop-filter:blur(14px)saturate(.34);backdrop-filter:blur(14px)saturate(.34);text-shadow:0 2px 8px #000000ad;background-color:#4545485c;background-image:none;border-radius:8px;justify-content:center;align-items:center;min-height:50px;padding:12px 20px;display:inline-flex;box-shadow:inset 0 1px #ffffff2e,0 10px 26px #02081033}.review-screen .review-glass-button:hover,.review-screen .review-glass-button:focus-visible{color:#fff;outline-offset:3px;filter:none;background-color:#6060638f;border-color:#ffffffc2;outline:2px solid #c8dfdd8f;transform:translateY(-1px)}.review-screen .review-glass-button:disabled{cursor:not-allowed;opacity:.45;transform:none}
.review-screen .appraisal-ledger{padding:22px}.review-screen .appraisal-confirm{gap:15px}.review-screen .review-ledger-head{z-index:3;border-bottom:1px solid #ffffff24;justify-content:space-between;align-items:center;gap:24px;padding:0 0 18px;display:flex}.review-screen .review-ledger-head h2{color:#fffaf0;margin:5px 0 4px;font-size:26px}.review-screen .review-ledger-head p{color:var(--review-muted);font-size:var(--font-size-min);margin:0}.review-screen .review-ledger-actions{flex:none;align-items:center;gap:14px;display:flex}.review-screen .review-ledger-actions>span{color:#fff0bd;justify-items:center;min-width:58px;display:grid}.review-screen .review-ledger-actions>span strong{font-family:ui-monospace,monospace;font-size:24px}.review-screen .review-ledger-actions>span small{color:var(--review-muted);font-size:var(--font-size-min)}.review-screen .bestiary-list{grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:9px}.review-screen .bestiary-entry{background:#ffffff0b;border:1px solid #ffffff24;border-radius:7px;grid-template-columns:auto 42px minmax(0,1fr) auto;gap:9px;min-height:76px;padding:11px 12px}.review-screen .bestiary-entry:last-child:nth-child(odd){grid-column:1/-1}.review-screen .bestiary-entry:hover{background:#60606352;border-color:#ffffff80}.review-screen .bestiary-entry:has(input:checked){background:#60606352;border-color:#ffffff80}.review-screen .bestiary-entry input{accent-color:#b8d7d4}.review-screen .bestiary-entry__number{color:#cddedda3;font-size:var(--font-size-min)}.review-screen .bestiary-entry__copy strong{color:#fffcf4e6;font-size:var(--font-size-min)}.review-screen .bestiary-entry__copy small{color:var(--review-muted);font-size:var(--font-size-min)}.review-screen .bestiary-entry__status{color:#fff4cfc2;background:#ffffff0a;border:1px solid #fff3;border-radius:4px}.review-screen .bestiary-entry--locked{cursor:default;opacity:.78}.review-screen .bestiary-entry--locked:hover{background:#ffffff0b;border-color:#ffffff24}.bestiary-entry__seal{color:#ffe8a9b8;width:24px;height:24px;font-size:var(--font-size-min)}
.review-archive-banner{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:68px;padding:13px 20px;display:grid}.review-archive-banner>span{color:#ffe8a9d1;width:32px;height:32px;font-size:18px}.review-archive-banner>div{gap:3px;display:grid}.review-archive-banner small{color:#9ae7e2c2;font-family:ui-monospace,monospace;font-size:var(--font-size-min)}.review-archive-banner strong{color:#fffaf0;font-size:17px}.review-archive-banner p{color:var(--review-muted);font-size:var(--font-size-min);margin:0}.review-pagination{border-top:1px solid #ffffff1f;grid-template-columns:38px auto 38px;justify-content:center;align-items:center;gap:12px;padding-top:10px;display:grid}.review-pagination>a,.review-pagination>span.is-disabled{color:#fffaf0;background:#ffffff14;border:1px solid #ffffff3d;border-radius:6px;place-items:center;width:38px;height:34px;font-family:Georgia,serif;font-size:23px;display:grid}.review-pagination>a:hover,.review-pagination>a:focus-visible{outline-offset:2px;background:#ffffff26;border-color:#ffffffad;outline:2px solid #9ae7e261}.review-pagination>span:not(.is-disabled){color:var(--review-muted);font-family:ui-monospace,monospace;font-size:var(--font-size-min)}.review-pagination>span strong{color:#fffaf0;font-size:var(--font-size-min)}.review-pagination>span.is-disabled{opacity:.28}.review-pagination .system-ui-icon{width:27px;height:27px}.review-screen .empty-state{color:var(--review-muted)}
@media (min-width:721px){.review-screen{width:100%;height:100dvh;min-height:100dvh;overflow:hidden}.review-screen .game-screen__content{grid-template-rows:auto auto minmax(0,1fr);align-content:stretch;gap:12px;height:100%;padding:22px 28px 26px;overflow:hidden}.review-screen .appraisal-ledger{min-height:0;overflow:hidden}.review-screen .appraisal-confirm{grid-template-rows:auto auto minmax(0,1fr) auto;height:100%;min-height:0}.review-screen .bestiary-list{scrollbar-gutter:stable;align-content:start;min-height:0;padding-right:5px;overflow-y:auto}.review-screen .review-ledger-head{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#2d2d2f80;border:0;border-bottom:1px solid #ffffff24;border-radius:0;padding:5px 0 15px;position:relative;top:auto}}@media (max-width:900px){.review-screen .bestiary-list{grid-template-columns:1fr}}@media (max-width:720px){.review-screen .game-screen__content{gap:14px;padding:22px 14px 52px}.review-screen .game-topbar{align-items:stretch;gap:17px}.review-screen .game-topbar h1{font-size:38px}.review-screen .game-topbar .review-glass-button{width:100%}.review-screen .appraisal-ledger{padding:16px}.review-screen .review-ledger-head,.review-screen .review-ledger-actions{flex-direction:column;align-items:stretch}.review-screen .review-ledger-actions>span{grid-template-columns:auto auto;justify-content:start;place-items:baseline start;gap:7px}.review-screen .bestiary-entry{grid-template-columns:auto 34px minmax(0,1fr)}.review-screen .bestiary-entry__status{grid-column:3;justify-self:start}}@media (max-width:420px){.review-screen .game-topbar h1{font-size:34px}}
.dashboard-screen{width:100%;height:100dvh;min-height:100dvh;overflow:hidden}.dashboard-screen .world-backdrop:after{opacity:.06}.dashboard-screen .world-map-glow{background:0 0}.dashboard-screen .game-screen__content{grid-template-rows:clamp(16px,3dvh,32px) minmax(0,1fr);align-content:stretch;gap:0;width:100%;max-width:none;height:100%;padding:0;overflow:hidden}.guild-scene{pointer-events:none;min-height:0}.guild-console{min-height:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;overflow:hidden}.guild-console__inner{border:1px solid var(--console-glass-border);border-top-color:var(--console-glass-border-top);background:var(--console-glass-background);width:min(1180px,100%);height:calc(100% - clamp(48px,9dvh,90px));min-height:0;box-shadow:var(--console-glass-shadow);-webkit-backdrop-filter:var(--console-glass-filter);backdrop-filter:var(--console-glass-filter);border-radius:0 0 8px 8px;grid-template-rows:auto auto minmax(0,1fr);margin:0 auto;padding:0 28px;display:grid;overflow:hidden}.guild-console__header{grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:26px;min-height:78px;padding:10px 0;display:grid}.guild-console__title{gap:2px;display:grid}.guild-console__title>span,.guild-tab-number{color:#ffe7a4b3;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.guild-console__title h1{color:#fffaf0;text-shadow:0 3px 14px #00000094;margin:0;font-family:Noto Serif TC,Songti TC,STSong,PMingLiU,serif;font-size:27px;line-height:1.1}.guild-console__title>small{color:#91e2dcad;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:800}.guild-referral-code{color:#ffe7a4c7;width:fit-content;font:800 var(--font-size-min)/1.2 ui-monospace, monospace;letter-spacing:.03em;cursor:pointer;background:0 0;border:0;padding:1px 0}.guild-referral-code:hover,.guild-referral-code:focus-visible{color:#fff1bd;text-underline-offset:3px;text-decoration:underline}.guild-console__stats{align-items:center;gap:4px;display:flex}.guild-console__stats>div{color:#ffffffb3;background:#ffffff0e;grid-template-columns:auto auto;justify-content:center;align-items:baseline;gap:6px;min-width:62px;padding:8px 10px;display:grid}.guild-console__stats strong{color:#fff4cd;font-family:ui-monospace,monospace;font-size:20px}.guild-console__stats span{font-size:var(--font-size-min);font-weight:800}.guild-console__header .guild-glass-button{min-height:42px;padding:8px 16px}
.guild-message-center{display:flex;position:relative}.guild-message-button{cursor:pointer;font:inherit;border:0;gap:6px;position:relative}.guild-message-button.has-unread{color:#fff1be;text-shadow:0 0 12px #f0c15466}.guild-message-button__badge{color:#fff;min-width:18px;height:18px;font-family:ui-monospace,monospace;font-size:var(--font-size-min);background:#d83b35;border:2px solid #281b13;border-radius:999px;place-items:center;padding-inline:4px;font-weight:900;line-height:1;display:grid;position:absolute;top:7px;right:8px;box-shadow:0 0 0 1px #ffdda46b,0 0 10px #d83b359e}.guild-message-panel{z-index:80;color:#f7ecd0;background:linear-gradient(#34291dfa,#14110ffa),#201a15;border:1px solid #e1be6f8c;border-radius:14px;grid-template-rows:auto minmax(0,1fr) auto;width:min(420px,100vw - 28px);max-height:min(610px,100dvh - 128px);display:grid;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 18px 48px #0000008f,inset 0 1px #ffffff14}.guild-message-panel__header,.guild-message-panel__footer{background:#08070638;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.guild-message-panel__header{border-bottom:1px solid #e1be6f38}.guild-message-panel__header small{color:#8fcfc5;font-family:ui-monospace,monospace;font-size:var(--font-size-min);letter-spacing:.12em;font-weight:900}.guild-message-panel__header h2{margin:2px 0 0;font-size:20px}.guild-message-panel__close{cursor:pointer;background:#ffffff0d;border:1px solid #e1be6f4d;border-radius:9px;place-items:center;width:40px;height:40px;display:grid}.guild-message-panel__close .system-ui-icon{width:24px;height:24px}.guild-message-panel__list{padding:10px;overflow-y:auto}.guild-message-card{background:#ffffff09;border:1px solid #d6be892e;border-radius:10px;padding:12px 13px;position:relative}.guild-message-card+.guild-message-card{margin-top:8px}.guild-message-card.is-unread{background:#e0ae4c1a;border-color:#e0ae4c80}.guild-message-card.is-unread:before{content:"";background:#e3443d;border-radius:50%;width:7px;height:7px;position:absolute;top:15px;left:7px;box-shadow:0 0 8px #e3443dbf}.guild-message-card.is-unread .guild-message-card__heading,.guild-message-card.is-unread p{padding-left:7px}.guild-message-card__heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.guild-message-card__heading strong{color:#fff3c8;font-size:var(--font-size-min)}.guild-message-card__heading time{color:#e7dcc294;font-size:var(--font-size-min);flex:none}.guild-message-card p,.guild-message-panel__empty{color:#f4ebd5c7;font-size:var(--font-size-min);margin:6px 0 0;line-height:1.55}.guild-message-panel__empty{text-align:center;padding:26px 18px}.guild-message-panel__footer{border-top:1px solid #e1be6f38;justify-content:flex-end}.guild-message-panel__footer button{color:#f7e7bc;cursor:pointer;min-height:40px;font:inherit;font-size:var(--font-size-min);background:#e0ae4c1c;border:1px solid #e1be6f61;border-radius:8px;padding:8px 14px;font-weight:800}.guild-message-panel__footer button:disabled{cursor:default;opacity:.45}
.guild-console__navigation{border-top:1px solid #ffffff21;border-bottom:1px solid #ffffff2e;grid-template-columns:38px minmax(0,1fr) 38px;align-items:stretch;display:grid}.guild-page-tabs{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.guild-page-tabs>button,.guild-page-arrow{cursor:pointer;color:#ffffff94;background:0 0;border:0;min-width:0;min-height:48px}.guild-page-tabs>button{border-right:1px solid #ffffff17;justify-content:center;align-items:center;gap:9px;font-weight:900;display:flex}.guild-tab-icon{object-fit:contain;width:30px;height:30px;image-rendering:pixelated;filter:saturate(.78)brightness(.9);flex:0 0 30px;transition:filter .15s,transform .15s;display:block}.guild-page-tabs>button:hover .guild-tab-icon,.guild-page-tabs>button:focus-visible .guild-tab-icon,.guild-page-tabs>button.is-active .guild-tab-icon{filter:saturate(1.05)brightness(1.12);transform:translateY(-1px)}.guild-tab-label{text-align:left;display:grid}.guild-glass-button{align-items:center;gap:8px;display:flex}.guild-glass-button>img{object-fit:contain;width:30px;height:30px;image-rendering:pixelated}.guild-glass-button>span{text-align:left;display:grid}.icon-button-content__icon{flex:0 0 40px;place-items:center;width:40px;height:40px}.icon-button-content__icon>img{object-fit:contain;width:40px;height:40px;image-rendering:pixelated;display:block}.icon-button-content__label{font:inherit;font-weight:900}.guild-page-tabs>button:first-child{border-left:1px solid #ffffff17}.guild-page-tabs>button:hover,.guild-page-tabs>button:focus-visible,.guild-page-tabs>button.is-active,.guild-page-arrow:hover,.guild-page-arrow:focus-visible{color:#fff;outline-offset:-3px;background:#ffffff1f;outline:2px solid #f2d07c80}.guild-page-tabs>button.is-active{box-shadow:inset 0 -3px #9ae7e2e6}.guild-tab-label small{display:none}.guild-page-arrow{place-items:center;font-family:Georgia,serif;font-size:25px;display:grid}
.guild-console__viewport{scrollbar-gutter:stable;min-height:0;padding:16px 2px 24px;overflow:hidden auto}:is(.scroll-fade,.guild-console__viewport:has(.attribute-roster),.camp-console__viewport:has(.attribute-roster),.camp-console__viewport:has(.student-ability-board)){--scroll-fade-size:28px;padding-bottom:calc(var(--scroll-fade-size) + 24px);-webkit-mask-image:linear-gradient(to bottom, #000 0, #000 calc(100% - var(--scroll-fade-size)), transparent 100%);-webkit-mask-image:linear-gradient(to bottom, #000 0, #000 calc(100% - var(--scroll-fade-size)), transparent 100%);mask-image:linear-gradient(to bottom, #000 0, #000 calc(100% - var(--scroll-fade-size)), transparent 100%)}.guild-page{width:100%;margin:0}.dashboard-screen .guild-page.hero-registry,.dashboard-screen .guild-page.upload-quest,.dashboard-screen .guild-page.quest-log,.dashboard-screen .guild-page.status-section{padding:0}.dashboard-screen .guild-page .window-title{margin-bottom:13px;padding-bottom:11px}.dashboard-screen .guild-page--quests .list{grid-template-columns:minmax(0,1fr)}.dashboard-screen .guild-page--abilities .status-stack{gap:14px;min-width:0}.dashboard-screen .guild-page--abilities .status-board{-webkit-backdrop-filter:blur(8px)saturate(.4);backdrop-filter:blur(8px)saturate(.4);background:#1c1d2061;min-width:0}.dashboard-screen .student-attribute-panel{background:#ffffff09;border:1px solid #ffffff1c;border-radius:7px}
.transmutation-modal{z-index:80;-webkit-backdrop-filter:blur(5px)saturate(.5);backdrop-filter:blur(5px)saturate(.5);background:#0406095c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.study-guide-transmutation{z-index:260}.transmutation-modal__panel{color:#fff;-webkit-backdrop-filter:blur(16px)saturate(.55);backdrop-filter:blur(16px)saturate(.55);background:#1c1d20a3;border:1px solid #ffffff75;border-radius:8px;grid-template-columns:180px minmax(0,1fr);gap:16px 22px;width:min(540px,100%);max-height:calc(100dvh - 40px);padding:22px;display:grid;overflow-y:auto;box-shadow:0 26px 80px #00000085,inset 0 1px #ffffff29}.transmutation-visual{aspect-ratio:1;background:#050c1247;border:1px solid #a4e8e43d;border-radius:7px;grid-row:1/3;place-items:center;display:grid;overflow:hidden}.transmutation-visual img{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;display:block}.transmutation-modal__panel--complete .transmutation-visual{box-shadow:inset 0 0 28px #59eada29,0 0 32px #59eada1f}.transmutation-copy{align-self:end}.transmutation-copy>span{color:#96e7e1c7;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.transmutation-copy h2{color:#fffaf0;margin:5px 0 7px;font-size:26px}.transmutation-copy p{color:#ffffffb3;font-size:var(--font-size-min);margin:0;line-height:1.65}.transmutation-progress{background:#0000006b;border-radius:4px;align-self:start;height:8px;position:relative;overflow:hidden}.transmutation-progress>span{border-radius:inherit;background:#8adfd9;transition:width .32s;position:absolute;inset:0 auto 0 0;box-shadow:0 0 14px #68e6dc94}.transmutation-progress.is-processing>span{animation:.9s ease-in-out infinite alternate transmutation-pulse}@keyframes transmutation-pulse{to{filter:brightness(1.45)}}.transmutation-steps{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.transmutation-steps li{color:#ffffff61;font-size:var(--font-size-min);text-align:center;border-top:2px solid #ffffff24;padding-top:7px;font-weight:800}.transmutation-steps li.is-active{color:#ffffffd1;border-color:#8adfd9}.transmutation-command{cursor:pointer;color:#fff;background:#ffffff1a;border:1px solid #ffffff61;border-radius:7px;grid-column:1/-1;min-height:42px;font-weight:900}.transmutation-command:hover,.transmutation-command:focus-visible{outline-offset:2px;background:#ffffff2b;border-color:#ffffffbd;outline:2px solid #8adfd975}
@media (max-width:720px){.dashboard-screen .game-screen__content{grid-template-rows:minmax(230px,40dvh) minmax(0,1fr)}.dashboard-screen .world-backdrop{background-position:top}.guild-console__inner{padding:0 14px}.guild-console__header{grid-template-columns:minmax(0,1fr) auto auto;gap:12px;min-height:72px}.guild-console__title h1{font-size:23px}.guild-console__stats{display:flex}.guild-console__stats>div{display:none}.guild-console__stats .guild-resource-button{min-width:78px;min-height:38px;padding-inline:7px}.guild-console__header form{width:auto}.guild-console__header .guild-glass-button{width:auto;min-height:38px;font-size:var(--font-size-min);padding:7px 12px}.guild-message-button{width:44px;padding-inline:8px}.guild-message-button__badge{top:3px;right:3px}.guild-message-panel{width:auto;max-height:calc(100dvh - 96px);position:fixed;top:82px;left:12px;right:12px}.guild-console__navigation{grid-template-columns:32px minmax(0,1fr) 32px}.guild-page-tabs>button{gap:0;min-height:45px}.guild-tab-number,.guild-tab-label>span{display:none}.guild-tab-label small{font-size:var(--font-size-min);display:inline}.guild-console__viewport{padding-top:13px}.dashboard-screen .guild-page--quests .list{grid-template-columns:1fr}.transmutation-modal__panel{grid-template-columns:120px minmax(0,1fr);gap:13px 16px;padding:16px}.transmutation-copy h2{font-size:21px}}@media (max-width:420px){.dashboard-screen .game-screen__content{grid-template-rows:minmax(210px,37dvh) minmax(0,1fr)}.transmutation-modal{padding:12px}.transmutation-modal__panel{grid-template-columns:1fr}.transmutation-visual{grid-row:auto;justify-self:center;width:132px}.transmutation-copy{text-align:center}.transmutation-progress,.transmutation-steps,.transmutation-command{grid-column:1}}
.dashboard-screen .game-screen__content{width:100%;max-width:none;height:100%;padding:0;display:block;position:relative;overflow:hidden}.dashboard-screen .world-backdrop{background-position:50%}.guild-scene{display:none}.guild-console{z-index:2;position:absolute;inset:0;overflow:hidden}.guild-console__inner{width:100%;height:100%;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;grid-template-rows:auto minmax(0,1fr);margin:0;padding:0;display:grid;position:relative;overflow:hidden}.guild-console__header{z-index:60;-webkit-backdrop-filter:blur(18px)saturate(.72);backdrop-filter:blur(18px)saturate(.72);background:#17141294;border:1px solid #f2d07c6b;border-radius:10px;grid-template-columns:minmax(230px,1fr) auto;align-items:center;gap:24px;width:min(1500px,100% - 48px);min-height:116px;margin:22px auto 0;padding:14px 20px;display:grid;position:relative;box-shadow:inset 0 1px #ffffff24,0 18px 45px #00000057}.guild-console__title h1{font-size:clamp(28px,2.2vw,38px)}.guild-console__tools{align-items:stretch;gap:8px;min-width:0;display:flex}.guild-topbar-item{--guild-topbar-icon-size:52px;--guild-topbar-icon-slot:58px;grid-template-columns:var(--guild-topbar-icon-slot) minmax(0, auto);color:#ffffffd1;min-width:108px;min-height:64px;font:inherit;text-shadow:0 2px 7px #0000008a;background:#fff1;border:1px solid #ffffff2e;border-radius:8px;justify-content:center;align-items:center;gap:9px;padding:9px 12px;text-decoration:none;display:grid;box-shadow:inset 0 1px #ffffff14}.guild-topbar-item__icon{width:var(--guild-topbar-icon-slot);height:var(--guild-topbar-icon-slot);place-items:center;display:grid}.guild-topbar-item__icon img{width:var(--guild-topbar-icon-size);height:var(--guild-topbar-icon-size);object-fit:contain;image-rendering:pixelated;display:block}.guild-topbar-item__copy{text-align:left;gap:2px;min-width:0;display:grid}.guild-topbar-item strong{color:#fff4cd;font-size:var(--font-size-min);white-space:nowrap;line-height:1.1}.guild-topbar-item small{color:#ffffff94;font-size:var(--font-size-min);white-space:nowrap;font-weight:800;line-height:1.1}.guild-topbar-stat{cursor:default;background:#ffffff0b}.guild-topbar-stat strong,.guild-resource-button strong{font-family:ui-monospace,monospace;font-size:21px}.guild-topbar-action{cursor:pointer;transition:border-color .16s,background-color .16s,transform .16s}.guild-topbar-action:hover,.guild-topbar-action:focus-visible{outline-offset:2px;color:#fff;background:#ffffff24;border-color:#f2d07cb8;outline:2px solid #91e2dc6b;transform:translateY(-1px)}.guild-resource-button{background:#7c53122e;border:1px solid #f2d07c47;min-width:132px;min-height:64px;padding:9px 12px}.guild-notification-control{display:flex}.guild-notification-button{font:inherit;border:1px solid #ffffff2e}.guild-notification-button.is-active{background:#3e6e663d;border-color:#82e4cd85}.guild-console__viewport{scrollbar-gutter:auto;min-height:0;padding:0;position:relative;overflow:hidden}
.guild-floor-shell,.guild-floor{width:100%;height:100%;min-height:0;position:relative}.guild-floor:before{content:"";pointer-events:none;background:linear-gradient(#05040314,#0000 16%),radial-gradient(at 52%,#ffca7014,#0000 42%);position:absolute;inset:0}.guild-floor__hint{z-index:12;color:#ffffffc2;-webkit-backdrop-filter:blur(10px)saturate(.68);backdrop-filter:blur(10px)saturate(.68);pointer-events:none;background:#0f0e0d6b;border:1px solid #ffffff29;border-radius:8px;align-items:center;gap:10px;padding:9px 13px;display:flex;position:absolute;top:18px;left:28px;box-shadow:inset 0 1px #ffffff14}.guild-floor__hint>span{color:#e8c16d;width:28px;height:28px;font-size:22px}.guild-floor__hint p,.guild-register-action span{gap:1px;margin:0;display:grid}.guild-floor__hint strong,.guild-register-action strong{color:#fff4cd;font-size:var(--font-size-min)}.guild-floor__hint small,.guild-register-action small{color:#ffffff94;font-size:var(--font-size-min)}.guild-register-action{z-index:32;cursor:pointer;color:#fff;-webkit-backdrop-filter:blur(12px)saturate(.72);backdrop-filter:blur(12px)saturate(.72);background:#1e1913b3;border:1px solid #f2d07c6b;border-radius:8px;grid-template-columns:34px auto;align-items:center;gap:10px;min-height:58px;padding:9px 14px;display:grid;position:absolute;bottom:24px;left:28px;box-shadow:inset 0 1px #ffffff1a,0 12px 28px #0000004d}.guild-register-action img{width:34px;height:34px;image-rendering:pixelated}.guild-register-action:hover,.guild-register-action:focus-visible{outline-offset:2px;background:#44331fd6;border-color:#ffe7a4d1;outline:2px solid #91e2dc70}.guild-floor__residents{pointer-events:none;position:absolute;inset:0;overflow:hidden}.guild-resident{z-index:var(--resident-depth);left:var(--resident-x-0);top:var(--resident-y-0);pointer-events:auto;width:clamp(132px,11.25vw,183px);animation:guild-resident-wander var(--walk-duration) linear var(--walk-delay) infinite;will-change:left, top;position:absolute;transform:translate(-50%,calc(54px - 100%))}.guild-resident:hover,.guild-resident:focus-within,.guild-resident.is-selected{z-index:95;animation-play-state:paused}.guild-resident__character{cursor:pointer;color:#fff;width:100%;min-height:210px;font:inherit;background:0 0;border:0;place-items:end center;padding:0 0 54px;display:grid;position:relative}.guild-resident__character>img{z-index:2;object-fit:contain;object-position:center bottom;width:100%;height:clamp(138px,13.5vw,189px);image-rendering:pixelated;filter:drop-shadow(0 7px 5px #00000075);transition:filter .16s,transform .16s;animation:.7s steps(2,end) infinite alternate guild-resident-step;display:block;position:relative}.guild-resident__shadow{z-index:1;filter:blur(2px);background:#00000085;border-radius:50%;width:64%;height:14px;position:absolute;bottom:53px;left:50%;transform:translate(-50%);box-shadow:0 2px 7px #00000061}.guild-resident__identity{z-index:3;color:#fff4cd;width:max-content;max-width:170px;font-size:var(--font-size-min);text-overflow:ellipsis;white-space:nowrap;background:#100e0cb8;border:1px solid #fff3;border-radius:9px;grid-template-columns:auto auto;gap:1px 8px;padding:5px 10px;line-height:1.25;display:grid;position:absolute;bottom:0;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 5px 12px #00000047}.guild-resident__identity small,.guild-resident__identity b{color:#d7f4f0b8;font-size:var(--font-size-min);font-weight:800}.guild-resident__identity b{color:#ffe5a0}.guild-resident__identity strong{font-size:var(--font-size-min);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;overflow:hidden}.guild-resident__character:hover,.guild-resident__character:focus-visible{outline:0}.guild-resident__character:hover>img,.guild-resident__character:focus-visible>img,.guild-resident.is-selected .guild-resident__character>img{filter:drop-shadow(0 7px 5px #00000075)drop-shadow(0 0 10px #ffda7ea3);transform:translateY(-3px)}.guild-resident__character:focus-visible .guild-resident__identity,.guild-resident.is-selected .guild-resident__identity{outline-offset:2px;border-color:#91e2dcb8;outline:2px solid #91e2dc57}.guild-resident__speech{z-index:8;color:#332414;width:max-content;max-width:min(240px,66vw);font-size:var(--font-size-min);text-align:center;pointer-events:none;background:#fff7dcf0;border:1px solid #ffe5a0b8;border-radius:10px;padding:8px 11px;font-weight:900;line-height:1.42;animation:.26s ease-out both guild-speech-pop;position:absolute;bottom:calc(100% - 24px);left:50%;transform:translate(-50%);box-shadow:0 9px 24px #00000057,inset 0 1px #fff}.guild-resident__speech:after{content:"";background:#fff7dcf0;border-bottom:1px solid #ffe5a0b8;border-right:1px solid #ffe5a0b8;width:12px;height:12px;position:absolute;top:100%;left:50%;transform:translate(-50%,-6px)rotate(45deg)}
.guild-student-window{z-index:110;-webkit-backdrop-filter:blur(18px)saturate(.72);backdrop-filter:blur(18px)saturate(.72);background:#111214c2;border:1px solid #f2d07c70;border-radius:10px;width:min(480px,100% - 24px);max-height:calc(100% - 24px);animation:.18s ease-out both guild-window-enter;position:absolute;top:12px;left:12px;overflow:visible;box-shadow:inset 0 1px #ffffff24,0 22px 58px #00000080}.guild-student-window.is-measuring{visibility:hidden;pointer-events:none}.guild-student-window:before{z-index:-1;content:"";background:#111214e6;border-top:1px solid #f2d07c70;border-right:1px solid #f2d07c70;width:18px;height:18px;position:absolute;top:clamp(48px,22%,118px)}.guild-student-window[data-side=right]:before{left:-10px;transform:rotate(225deg)}.guild-student-window[data-side=left]:before{right:-10px;transform:rotate(45deg)}.guild-floor-notices{z-index:120;pointer-events:none;width:min(520px,100% - 40px);position:absolute;top:12px;left:50%;transform:translate(-50%)}.guild-floor-notices:empty{display:none}.guild-floor-notices .system-message{margin:0 0 6px;box-shadow:0 8px 22px #0000004d}.guild-registry-modal{z-index:180;-webkit-backdrop-filter:blur(7px)saturate(.58);backdrop-filter:blur(7px)saturate(.58);background:#05050580;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.guild-registry-modal__panel{color:#fff;-webkit-backdrop-filter:blur(18px)saturate(.72);backdrop-filter:blur(18px)saturate(.72);background:#191817d1;border:1px solid #f2d07c80;border-radius:10px;width:min(560px,100%);max-height:calc(100dvh - 40px);padding:24px;position:relative;overflow-y:auto;box-shadow:inset 0 1px #ffffff24,0 28px 78px #00000085}.guild-registry-modal__close{z-index:2;cursor:pointer;color:#fff;background:#ffffff12;border:1px solid #ffffff38;border-radius:7px;width:42px;height:42px;font-size:24px;position:absolute;top:12px;right:12px}.guild-registry-modal__close .system-ui-icon{width:28px;height:28px}.guild-registry-modal__close:hover,.guild-registry-modal__close:focus-visible{outline-offset:2px;border-color:#ffffff94;outline:2px solid #91e2dc6b}.guild-registry-modal .registry-editor{min-height:0;box-shadow:none;background:0 0;border:0;padding:0}.guild-registry-modal .hero-edit-form{grid-template-columns:1fr;gap:14px;display:grid}@keyframes guild-resident-wander{0%,to{left:var(--resident-x-0);top:var(--resident-y-0)}25%{left:var(--resident-x-1);top:var(--resident-y-1)}52%{left:var(--resident-x-2);top:var(--resident-y-2)}76%{left:var(--resident-x-3);top:var(--resident-y-3)}}@keyframes guild-resident-step{to{translate:0 -2px}}@keyframes guild-window-enter{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes guild-speech-pop{0%{opacity:0;transform:translate(-50%,7px)scale(.92)}to{opacity:1;transform:translate(-50%)scale(1)}}
@media (max-width:1080px){.guild-console__header{grid-template-columns:minmax(180px,1fr) minmax(0,auto);gap:14px;width:calc(100% - 28px);margin-top:14px;padding:12px 14px}.guild-topbar-item{--guild-topbar-icon-size:47px;--guild-topbar-icon-slot:50px;grid-template-columns:var(--guild-topbar-icon-slot);min-width:64px;padding:8px 10px}.guild-topbar-item__copy{display:none}.guild-resource-button{min-width:64px}}@media (max-width:720px){.dashboard-screen .world-backdrop{background-position:48%}.guild-console__header{grid-template-columns:1fr;align-content:center;gap:8px;width:calc(100% - 20px);min-height:126px;margin-top:10px;padding:10px 12px}.guild-console__title{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:0 8px}.guild-console__title>span{grid-column:1}.guild-console__title h1{grid-column:1;font-size:24px}.guild-console__title>small{grid-area:1/2/3;align-self:center}.guild-console__tools{scrollbar-width:thin;width:100%;padding:2px 2px 4px;overflow-x:auto}.guild-topbar-item,.guild-resource-button{--guild-topbar-icon-size:42px;--guild-topbar-icon-slot:44px;grid-template-columns:var(--guild-topbar-icon-slot);min-width:54px;min-height:50px;padding:7px 10px}.guild-floor__hint{padding:7px 9px;top:10px;left:12px}.guild-floor__hint small{display:none}.guild-register-action{min-height:50px;padding:7px 10px;bottom:14px;left:12px}.guild-register-action small{display:none}.guild-resident{width:123px}.guild-resident__character{min-height:188px}.guild-resident__character>img{height:138px}.guild-student-window{max-width:calc(100% - 20px)}}@media (prefers-reduced-motion:reduce){.guild-resident,.guild-resident__character>img,.guild-resident__speech,.guild-student-window{animation:none}}
.login-screen{height:100dvh;min-height:100dvh;overflow:hidden}.login-screen .world-backdrop:after{opacity:.08}.login-screen .game-screen__content{grid-template-rows:clamp(150px,22dvh,290px) minmax(0,1fr);grid-template-columns:minmax(0,1fr);align-content:stretch;gap:0;width:100%;max-width:none;height:100%;padding:0;display:grid;overflow:hidden}.login-scene-title{color:#fff;text-align:center;text-shadow:0 4px 18px #000000b8;align-content:start;justify-items:center;padding:clamp(34px,6vh,68px) 20px 0;display:grid}.login-scene-title h1{margin:7px 0 2px;font-family:Noto Serif TC,Songti TC,STSong,PMingLiU,serif;font-size:48px}.login-scene-title p:last-child{color:#ffffffbf;font-size:var(--font-size-min);margin:0}.login-console{-webkit-backdrop-filter:blur(16px)saturate(.52);backdrop-filter:blur(16px)saturate(.52);background:#26272957;border:1px solid #fff6;border-radius:8px;place-self:start center;width:min(820px,100% - 40px);height:auto;min-height:0;overflow:hidden;box-shadow:0 22px 64px #0000004d,inset 0 1px #ffffff24}.login-record-copy>span{color:#98e3ddc7;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.login-record-copy h2{color:#fffaf0;margin:5px 0 8px;font-size:26px}.login-record-copy p{color:#ffffff9e;font-size:var(--font-size-min);margin:0;line-height:1.65}.login-record-form .book-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.login-record-form .book-form label{color:#ffffffb8;font-family:inherit;font-size:var(--font-size-min)}.login-record-form .book-form input{color:#fff;background:#080a0d4d;border:1px solid #ffffff38;border-radius:6px;min-height:44px;padding:10px 12px;box-shadow:inset 0 1px #ffffff0d}.login-record-form .book-form input:focus{outline-offset:2px;border-color:#98e3ddc7;outline:2px solid #98e3dd2e}.login-submit{cursor:pointer;color:#fff;background:#ffffff1a;border:1px solid #ffffff61;border-radius:7px;grid-column:1/-1;min-height:44px;font-weight:900}.login-submit:hover,.login-submit:focus-visible{outline-offset:2px;background:#ffffff2b;border-color:#ffffffb8;outline:2px solid #98e3dd6b}.login-error{color:#ffd0ca;font-size:var(--font-size-min);margin:0 0 10px}.login-back{color:#ffffff94;font-size:var(--font-size-min);justify-self:start;align-items:center;gap:6px;padding:6px 0 2px;display:inline-flex}.login-back .system-ui-icon{width:24px;height:24px}.login-back:hover,.login-back:focus-visible{color:#fff;outline:0}.lost-record-screen{width:100%;height:100dvh;min-height:100dvh}.lost-record-screen .world-backdrop:after{opacity:.18}.lost-record-screen .game-screen__content{place-items:center;width:100%;max-width:none;height:100%;min-height:100%;padding:30px;display:grid}.lost-record-panel{color:#fffaf0;text-align:center;-webkit-backdrop-filter:blur(16px)saturate(.46);backdrop-filter:blur(16px)saturate(.46);background:#22232557;border:1px solid #ffffff6b;border-radius:8px;justify-items:center;gap:10px;width:min(560px,100%);padding:34px 40px 38px;display:grid;box-shadow:inset 0 1px #ffffff24,0 26px 74px #00000061}.lost-record-code{color:#ffecb2eb;margin-top:4px;font-family:Georgia,Times New Roman,serif;font-size:66px;font-weight:400;line-height:1}.lost-record-panel h1{letter-spacing:0;margin:2px 0 0;font-family:Noto Serif TC,Songti TC,STSong,PMingLiU,serif;font-size:30px}.lost-record-panel>p{color:#ffffffad;max-width:38em;font-size:var(--font-size-min);margin:0 0 12px}.lost-record-command{color:#fff;background:#ffffff1a;border:1px solid #fff6;border-radius:7px;place-items:center;min-width:210px;min-height:48px;padding:10px 20px;font-weight:900;display:inline-grid;box-shadow:inset 0 1px #ffffff21}.lost-record-command:hover,.lost-record-command:focus-visible{outline-offset:3px;background:#ffffff2b;border-color:#ffffffc2;outline:2px solid #98e3dd6b}@media (max-width:720px){.login-screen .game-screen__content{grid-template-rows:clamp(160px,22dvh,210px) minmax(0,1fr)}.login-scene-title{padding-top:26px}.login-scene-title h1{font-size:38px}.login-console__inner{padding-left:14px;padding-right:14px}.login-record-panel{grid-template-columns:1fr;align-content:start;gap:14px;padding-top:16px}.login-record-copy h2{font-size:22px}.login-record-form .book-form{grid-template-columns:1fr}.login-submit{grid-column:1}}@media (max-width:420px){.login-role-tabs button{grid-template-columns:28px minmax(0,1fr);gap:1px 8px;min-height:58px}.login-role-tabs button>span{width:25px}.login-role-tabs button strong{font-size:var(--font-size-min)}}
.student-screen{height:100dvh;min-height:100dvh;overflow:hidden}.attribute-promotion{background:#10121461;border:1px solid #ffffff26;border-radius:7px;gap:10px;margin:0 12px 12px;padding:11px 12px;display:grid}.attribute-promotion__heading{flex-wrap:wrap;align-items:center;gap:7px 10px;display:flex}.attribute-promotion__heading>span{color:#92d7d1b8;width:100%;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.attribute-promotion__heading>strong{color:#ffffffe6;font-size:var(--font-size-min)}.attribute-promotion__heading>b{color:#f2d88e;font-size:var(--font-size-min);background:#92681c33;border:1px solid #f2d07c80;border-radius:999px;padding:3px 8px}.attribute-promotion__metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.attribute-promotion__metrics>div{background:#ffffff09;border:1px solid #ffffff1a;border-radius:5px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px 8px;padding:7px 8px;display:grid}.attribute-promotion__metrics span,.attribute-promotion__metrics small{color:#ffffff94;font-size:var(--font-size-min)}.attribute-promotion__metrics strong{color:#fff0b7;font-family:ui-monospace,monospace;font-size:var(--font-size-min)}.attribute-promotion__metrics meter{accent-color:#78c7bd;grid-column:1/-1;width:100%;height:7px}.attribute-promotion__message,.attribute-promotion__ready p{color:#ffffffad;font-size:var(--font-size-min);margin:0;line-height:1.6}.attribute-promotion__message[data-status=capped]{color:#f2d88edb}.attribute-promotion__ready{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.attribute-promotion__ready>button{color:#fff3c4;min-height:38px;font-size:var(--font-size-min);background:#7c53126b;border:1px solid #f2d07c9e;border-radius:6px;padding:8px 12px;font-weight:900;animation:2.2s ease-in-out infinite ascension-warm-breathe}.attribute-promotion__ready>button:disabled{cursor:not-allowed;opacity:.55;animation:none}.promotion-confirmation{overflow:hidden}.promotion-confirmation__sigil,.promotion-completion__badge{z-index:1;color:#fff0ad;background-color:#674518b8;border:1px solid #ffe089b3;border-radius:50%;place-items:center;width:72px;height:72px;margin:0 auto;font-family:ui-monospace,monospace;font-size:38px;animation:1.7s ease-in-out infinite ascension-warm-breathe;display:grid;position:relative;box-shadow:0 0 34px #ffb3355c,inset 0 0 18px #fff0b92e}.promotion-confirmation__route{text-align:center;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:5px 0;display:grid}.promotion-confirmation__route strong,.promotion-completion__grade{color:#ffe7a2;background:#7b521638;border:1px solid #ffe29447;border-radius:8px;padding:9px}.promotion-confirmation__route span{color:#ffcf63;font-size:22px}.promotion-completion{text-align:center;overflow:hidden;box-shadow:0 0 70px #ffb42d3d,0 28px 80px #000000a6}.promotion-completion__beam{pointer-events:none;filter:blur(3px);background:linear-gradient(90deg,#0000,#ffe08933,#0000);animation:1.5s ease-out both ascension-beam;position:absolute;inset:-20% 25%}.promotion-completion__particles{pointer-events:none;position:absolute;inset:0}.promotion-completion__particles i{left:calc(8% + (var(--particle-index,0) * 7%));background:#ffe7a2;border-radius:50%;width:4px;height:4px;animation:1.8s ease-out infinite ascension-particle;position:absolute;top:58%;box-shadow:0 0 9px #ffb638}.promotion-completion__particles i:first-child{animation-delay:-.2s;left:9%}.promotion-completion__particles i:nth-child(2){animation-delay:-1.1s;left:16%}.promotion-completion__particles i:nth-child(3){animation-delay:-.7s;left:24%}.promotion-completion__particles i:nth-child(4){animation-delay:-1.5s;left:32%}.promotion-completion__particles i:nth-child(5){animation-delay:-.4s;left:40%}.promotion-completion__particles i:nth-child(6){animation-delay:-1.3s;left:48%}.promotion-completion__particles i:nth-child(7){animation-delay:-.8s;left:56%}.promotion-completion__particles i:nth-child(8){animation-delay:-1.7s;left:64%}.promotion-completion__particles i:nth-child(9){animation-delay:-.5s;left:72%}.promotion-completion__particles i:nth-child(10){animation-delay:-1.2s;left:80%}.promotion-completion__particles i:nth-child(11){animation-delay:-.9s;left:87%}.promotion-completion__particles i:nth-child(12){animation-delay:-1.6s;left:93%}.promotion-completion__grade{z-index:1;font-size:var(--font-size-min);display:block;position:relative}.promotion-completion__close{z-index:1;cursor:pointer;min-height:44px;margin-top:4px;font-weight:900;position:relative}.ability-radar__ascension{background:#d7b35d;border-radius:50%;width:8px;height:8px;animation:2.8s ease-in-out infinite ascension-dot-breathe;position:absolute;top:-2px;right:-1px;box-shadow:0 0 #e2b85400}.attribute-promotion__badges{background:#5b441a29;border:1px solid #d7b35d3d;border-radius:6px;flex-wrap:wrap;align-items:center;gap:7px 10px;padding:7px 8px;display:flex}.attribute-promotion__badges>span{color:#ffffff94;font-size:var(--font-size-min)}.attribute-promotion__badges ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.attribute-promotion__badges li{color:#f0d68d;font-size:var(--font-size-min);background:#7c531233;border:1px solid #f2d07c59;border-radius:999px;align-items:center;gap:5px;padding:3px 8px 3px 5px;display:inline-flex}.attribute-promotion__badges .system-ui-icon{width:22px;height:22px}@keyframes ascension-beam{0%{opacity:0;transform:translateY(30%)scaleY(.2)}to{opacity:1;transform:none}}@keyframes ascension-particle{0%{opacity:0;transform:translateY(20px)scale(.4)}35%{opacity:1}to{opacity:0;transform:translateY(-160px)scale(1.25)}}@keyframes ascension-warm-breathe{0%,to{background-color:#7c53126b;border-color:#f2d07c94;box-shadow:0 0 #ffb54000,inset 0 1px #fff5cf14}50%{background-color:#a36514ad;border-color:#ffe28efa;box-shadow:0 0 9px #ffbd43b8,0 0 24px #ff882252,inset 0 1px #fffae057}}@keyframes ascension-dot-breathe{0%,to{opacity:.42;transform:scale(.86);box-shadow:0 0 #e2b85400}50%{opacity:1;transform:scale(1);box-shadow:0 0 8px #e2b85494}}@media (max-width:640px){.attribute-promotion__metrics,.attribute-promotion__ready{grid-template-columns:1fr}.attribute-promotion__ready>button{width:100%}}
.student-screen .world-backdrop:after{opacity:.06}.student-screen .world-map-glow{background:0 0}.student-screen .game-screen__content{grid-template-rows:clamp(16px,3dvh,32px) minmax(0,1fr);align-content:stretch;gap:0;width:100%;max-width:none;height:100%;padding:0;overflow:hidden}.camp-scene{pointer-events:none;min-height:0}.camp-console{min-height:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;position:relative;overflow:hidden}.camp-spark-field{z-index:0;pointer-events:none;opacity:.8;mix-blend-mode:screen;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.camp-spark-field__layer--far{opacity:.42}.camp-spark-field__layer--middle{opacity:.68}.camp-spark-field__layer--near{opacity:.88}.camp-spark-field__spark{pointer-events:none}.camp-console__inner{z-index:1;border:1px solid var(--console-glass-border);border-top-color:var(--console-glass-border-top);background:var(--console-glass-background);width:min(1280px,100% - 32px);height:calc(100% - clamp(48px,9dvh,90px));min-height:0;box-shadow:var(--console-glass-shadow);-webkit-backdrop-filter:var(--console-glass-filter);backdrop-filter:var(--console-glass-filter);border-radius:0 0 8px 8px;grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);margin:0 auto;padding:0 28px;display:grid;position:relative;overflow:hidden}@media (prefers-reduced-motion:reduce){.attribute-promotion__ready>button,.ability-radar__ascension,.ability-radar__ascension,.promotion-confirmation__sigil,.promotion-completion__badge,.promotion-completion__beam,.promotion-completion__particles i{animation:none}.camp-spark-field{display:none}}
.camp-console__header{grid-template-columns:minmax(180px,1fr) auto auto auto;align-items:center;gap:12px;min-height:76px;padding:9px 0;display:grid}.camp-mobile-menu-toggle{display:none}.camp-console__header>div:first-child{gap:2px;display:grid}.camp-console__header>div:first-child span,.camp-page__heading>span{color:#91e2dcc7;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.camp-console__header h1{color:#fffaf0;margin:0;font-family:Noto Serif TC,Songti TC,STSong,PMingLiU,serif;font-size:27px;line-height:1.1}.camp-console__stats{gap:4px;display:flex}.camp-console__stats>span{color:#ffffff9e;white-space:nowrap;background:#ffffff0e;justify-content:center;align-items:baseline;gap:5px;min-width:76px;padding:8px 9px;display:flex}.camp-console__stats strong{color:#fff5cf;font-family:ui-monospace,monospace;font-size:19px}.camp-console__stats small{color:#ffffff9e;font-size:var(--font-size-min);font-weight:700}.camp-console__stats>.camp-stamina-stat{grid-template-columns:auto auto;align-items:baseline;gap:2px 5px;min-width:132px;display:grid}.camp-stamina-stat time{color:#9ce3de;font-family:ui-monospace,monospace;font-size:var(--font-size-min);text-align:center;grid-column:1/-1;font-weight:800;line-height:1.2}.camp-quiet-button,.camp-primary-button{cursor:pointer;color:#fff;background:#ffffff17;border:1px solid #ffffff5c;border-radius:7px;min-height:44px;padding:8px 16px;font-weight:900}.camp-primary-button{background:#2a646857}.camp-header-start{color:#fff;background:#407e829e;border-color:#b1ede9b8;min-width:156px;box-shadow:inset 0 1px #ffffff2e,0 7px 18px #0000003d}.camp-header-start:hover,.camp-header-start:focus-visible{background:#539296c2}.camp-quiet-button:hover,.camp-quiet-button:focus-visible,.camp-primary-button:hover,.camp-primary-button:focus-visible{outline-offset:2px;background:#ffffff29;border-color:#ffffffb8;outline:2px solid #91e2dc6b}.camp-primary-button:disabled{cursor:not-allowed;opacity:.42}.app-version-corner{z-index:140;right:calc(max(var(--floating-tool-edge), env(safe-area-inset-right)) + var(--floating-tool-size) + 12px);bottom:max(var(--floating-tool-edge), env(safe-area-inset-bottom));color:#ffffffa8;text-shadow:0 1px 4px #000000db;pointer-events:none;font:800 12px/1 ui-monospace,monospace;position:fixed}
.camp-page-tabs{border-top:1px solid #ffffff21;border-bottom:1px solid #ffffff2e;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.camp-page-tabs button{cursor:pointer;color:#ffffff8f;background:0 0;border:0;border-right:1px solid #ffffff1a;min-height:48px;font-weight:900;position:relative}.camp-page-tabs button:last-child{border-right:0}.camp-page-tabs button:hover,.camp-page-tabs button:focus-visible,.camp-page-tabs button.is-active{color:#fff;outline-offset:-3px;background:#ffffff1a;outline:2px solid #f2d07c80}.camp-page-tabs button.is-active{box-shadow:inset 0 -3px #91e2dce6}.camp-page-tabs button[aria-disabled=true]{cursor:not-allowed;color:#ffffff52;background:#0000001f}.camp-page-tabs button[aria-disabled=true]:hover{color:#ffffff52;background:#0000001f;outline:0}.camp-page-tabs__hint{color:#f2d07ceb;font-size:var(--font-size-min);white-space:nowrap;font-weight:700;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.camp-console__viewport{box-sizing:border-box;scrollbar-gutter:stable;min-width:0;min-height:0;padding:15px 2px 24px;overflow:hidden auto}.camp-page__heading{border-bottom:1px solid #ffffff24;margin-bottom:13px;padding-bottom:11px;display:grid}.camp-page__heading h2{color:#fffaf0;margin:4px 0 2px;font-size:23px}.camp-page__heading p{color:#fff9;font-size:var(--font-size-min);margin:0}.camp-page__heading--history{padding-right:174px;position:relative}.battle-history-summary{gap:6px;display:flex;position:absolute;top:0;right:0}.battle-history-summary>strong{color:#fff0b7;background:#ffffff0b;border:1px solid #ffffff21;border-radius:5px;align-items:baseline;gap:5px;padding:6px 9px;font-family:ui-monospace,monospace;font-size:17px;display:flex}.battle-history-summary small{color:#ffffff94;font-family:Noto Sans TC,Microsoft JhengHei,sans-serif;font-size:var(--font-size-min)}
.camp-page--capture{width:min(920px,100%);margin:0 auto}.capture-flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px;padding:0;list-style:none;display:grid}.capture-flow li{background:#91e2dc0e;border:1px solid #91e2dc38;border-radius:7px;grid-template-columns:auto minmax(0,1fr);gap:2px 8px;min-width:0;padding:10px 12px;display:grid}.capture-flow li>span{color:#91e2dcc2;grid-row:1/3;align-self:center;font-family:ui-monospace,monospace;font-size:18px;font-weight:900}.capture-flow strong{color:#fffaf0;font-size:var(--font-size-min)}.capture-flow small{color:#ffffff94;font-size:var(--font-size-min)}.student-screen .camp-page--capture .game-form--upload{grid-template-columns:minmax(180px,.4fr) minmax(300px,1fr);gap:12px;display:grid}.capture-owner{background:#ffffff0b;border:1px solid #ffffff29;border-radius:7px;align-content:center;gap:3px;padding:10px 12px;display:grid}.capture-owner>span{color:#91e2dcb8;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.capture-owner strong{color:#fffaf0;font-size:16px}.capture-owner small,.student-screen .camp-page--capture .upload-form-hint{color:#ffffff9e;font-size:var(--font-size-min);line-height:1.5}.student-screen .camp-page--capture .upload-preview-grid,.student-screen .camp-page--capture .upload-form-hint,.student-screen .camp-page--capture .upload-submit{grid-column:1/-1}.student-screen .camp-page--capture .upload-submit--sticky{background:#14191df5}@media (max-width:720px){.capture-flow,.student-screen .camp-page--capture .game-form--upload{grid-template-columns:1fr}.student-screen .camp-page--capture .upload-preview-grid,.student-screen .camp-page--capture .upload-form-hint,.student-screen .camp-page--capture .upload-submit{grid-column:1}}.camp-message{color:#ffffffb8;font-size:var(--font-size-min);background:#ffffff0e;border-left:3px solid #91e2dcb8;margin:0 0 12px;padding:9px 12px}.camp-message--danger{border-left-color:#e58478}.camp-message--success{border-left-color:#8cda9d}
.student-screen .adventure-loadout{grid-template-rows:auto 1px auto minmax(330px,1fr) auto;grid-template-columns:minmax(330px,390px) minmax(0,1fr);align-items:start;gap:14px 18px;display:grid}.student-screen #camp-page-panel-loadout,.student-screen .camp-page--loadout,.student-screen .camp-page--loadout .adventure-loadout{min-height:100%}.student-screen .status-board{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;border-radius:0;padding:0}.student-screen .status-board__header{align-content:start;gap:12px;margin:0;padding-bottom:10px;display:grid}.student-screen .adventure-loadout>.daily-target{grid-area:1/2;align-self:stretch}.student-screen .adventure-loadout>.student-ability-board,.student-screen .student-ability-board>.status-board__header{display:contents}.student-screen .student-ability-board>.status-board__header>div:first-child{grid-area:3/1;align-self:end;padding-top:2px}.student-screen .student-ability-board>.status-board__header>.student-avatar-ability-badge{grid-area:1/1}.student-screen .student-ability-board__row-divider{background:linear-gradient(90deg,#0000,#ffffffb8 4% 96%,#0000);grid-area:2/1/auto/-1;width:100%;height:1px;box-shadow:0 0 10px #91e2dc1f}.student-screen .status-board__header h2{font-size:23px}.student-screen .daily-target{background:#335b5d33;border-color:#91e2dc57;gap:8px;padding:12px 14px;display:grid}.daily-target__intro{border-bottom:1px solid #ffffff1f;gap:2px;padding-bottom:8px;display:grid}.daily-target__intro>span{color:#ffd370c7;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.daily-target__intro h2{color:#fff5cf;margin:0;font-size:23px}.daily-target__intro p{color:#ffffff9e;font-size:var(--font-size-min);margin:0;line-height:1.55}.daily-target__heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.daily-target__heading>span{color:#91e2dcd1;font-family:ui-monospace,monospace;font-size:var(--font-size-min);font-weight:900}.daily-target__heading>strong{color:#fff5cf;font-size:var(--font-size-min)}.daily-target__modes{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:2px 0;padding:0;display:grid}.daily-target__modes legend{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.daily-target__modes label{color:#ffffffb3;cursor:pointer;background:#0a191c61;border:1px solid #b5efeb40;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:8px;min-width:0;padding:8px 10px;display:grid}.daily-target__modes label:has(input:checked){color:#fff5cf;background:#704c1747;border-color:#ffd370c7;box-shadow:0 0 16px #ffbe4c1f}.daily-target__modes input{accent-color:#f2b94f;width:17px;height:17px}.daily-target__modes span{gap:2px;display:grid}.daily-target__modes strong,.daily-target__modes small{font-size:var(--font-size-min)}.daily-target__modes small{color:#ffffff94}.student-screen .daily-target>p{font-size:var(--font-size-min)}.daily-target__list{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.daily-target__list li{color:#ecfffd;font-size:var(--font-size-min);background:#315b5d9e;border:1px solid #b5efeb7a;border-radius:999px;padding:5px 10px;font-weight:800}.student-screen .daily-target>small{color:#ffffffad;font-size:var(--font-size-min);margin-top:0}@media (max-width:620px){.daily-target__modes{grid-template-columns:1fr}}.student-screen .attribute-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.student-ability-board{min-width:0}.student-screen .student-ability-layout{display:contents}.ability-radar{aspect-ratio:460/370;isolation:isolate;width:min(420px,100%);margin:auto;position:relative}.student-screen .adventure-loadout .ability-radar{grid-area:4/1}.ability-radar__canvas{z-index:0;width:100%;height:100%;display:block;position:absolute;inset:0}.ability-radar__label{z-index:1;cursor:pointer;color:#eff3f0cc;text-align:left;background:#181a1dbd;border:1px solid #94c5c26b;border-radius:6px;grid-template-rows:auto auto;grid-template-columns:28px minmax(0,1fr);align-items:center;gap:2px 5px;width:96px;min-height:50px;padding:4px 7px;transition:border-color .15s,color .15s,background-color .15s,box-shadow .15s;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 12px #0003}.ability-radar__label:after{content:"";opacity:.72;pointer-events:none;border-top:5px solid;border-left:4px solid #0000;border-right:4px solid #0000;width:0;height:0;position:absolute;bottom:4px;right:5px}.ability-radar__icon{object-fit:contain;width:28px;height:28px;image-rendering:pixelated;filter:saturate(.72)brightness(.92);grid-area:1/1/3;margin:0;display:block}.ability-radar__label[data-axis="0"]{top:9%}.ability-radar__label[data-axis="1"]{top:35%;left:86%}.ability-radar__label[data-axis="2"]{top:89%;left:74%}.ability-radar__label[data-axis="3"]{top:89%;left:26%}.ability-radar__label[data-axis="4"]{top:35%;left:14%}.ability-radar__label:hover,.ability-radar__label:focus-visible{color:#fff;outline-offset:1px;background:#334143eb;border-color:#c2f2efad;outline:2px solid #66e0dd47}.ability-radar__label.is-active{color:#fff;background:#315b5df5;border-color:#b5efebe0;box-shadow:0 0 0 2px #66e0dd33,0 5px 14px #00000047}.ability-radar__label[data-locked=true]{color:#c3c7c761;filter:grayscale();background:#2a2b2da3}.ability-radar__label[data-locked=true].is-active,.ability-radar__label[data-locked=true]:hover,.ability-radar__label[data-locked=true]:focus-visible{color:#dee1e1a3;background:#393b3dd1}.ability-radar__label:disabled{cursor:default;color:#dee2e2b3;background:#1f2124cc}.ability-radar__name{font-size:var(--font-size-min);font-weight:900;line-height:1}.ability-radar__score{font-family:ui-monospace,Cascadia Mono,monospace;font-size:var(--font-size-min);justify-content:flex-start;align-items:baseline;gap:4px;font-weight:900;line-height:1;display:flex}.ability-radar__score small{color:#c4cbcb8f;font-size:var(--font-size-min)}.ability-radar__count{color:#172425;min-width:20px;height:20px;font-family:ui-monospace,monospace;font-size:var(--font-size-min);background:#b8e5e2;border:1px solid #ffffffc7;border-radius:7px;place-items:center;padding:0 5px;font-weight:900;display:grid;position:absolute;top:-7px;right:-6px}
.student-attribute-details{min-width:0;min-height:0;position:relative}.student-screen .adventure-loadout .student-attribute-details{grid-area:3/2/6;align-self:stretch;min-height:330px}.attribute-mobile-back{display:none}.student-screen .adventure-loadout .mastery-legend{grid-area:5/1}.student-screen .mastery-legend__groups{gap:5px;margin:0;padding:0;list-style:none;display:grid}.student-screen .mastery-legend__groups li{grid-template-columns:44px minmax(0,1fr);gap:8px;display:grid}.student-screen .mastery-legend__groups strong{color:#fff4cd}.student-screen .mastery-legend__groups span,.student-screen .mastery-legend p{color:#ffffff9e}.student-screen .mastery-legend p{border-top:1px solid #ffffff1f;margin:9px 0 0;padding-top:9px}.student-screen .student-attribute-panel{background:#ffffff0b;border:1px solid #ffffff29;border-radius:7px}.student-attribute-panel[hidden]{display:none}.student-screen .student-attribute-details .student-attribute-panel{scrollbar-gutter:stable;position:absolute;inset:0;overflow:hidden auto}.student-screen .attribute-block{background:#ffffff0b;border:1px solid #ffffff21;border-radius:7px;padding:12px}.student-screen .skill-row{border:1px solid #ffffff29;border-left:3px solid color-mix(in srgb, var(--attribute) 62%, transparent);cursor:pointer;-webkit-backdrop-filter:blur(7px)saturate(.5);backdrop-filter:blur(7px)saturate(.5);background:#ffffff0e;border-radius:7px;min-height:54px;padding:8px 10px;transition:border-color .16s,background-color .16s,box-shadow .16s;box-shadow:inset 0 1px #ffffff14,0 7px 18px #00000024}.student-screen .skill-row:hover,.student-screen .skill-row:focus-within{background:#ffffff1c;border-color:#ffffff7a}.student-screen .skill-row:has(input:checked){outline-offset:1px;background:#566f7057;border-color:#91e2dc9e;outline:2px solid #91e2dc57;box-shadow:inset 0 1px #ffffff21,0 8px 20px #0000002e}.student-screen .skill-row--locked{cursor:not-allowed;background:#ffffff06}
.student-screen .quest-start{justify-self:end;width:min(340px,100%);min-height:44px}.battle-history-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.battle-history-row{color:#fff;min-height:60px;font:inherit;text-align:left;background:#ffffff0b;border:1px solid #ffffff21;border-radius:7px;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 12px;display:grid}.battle-history-row:disabled{cursor:wait;opacity:.72}.battle-history-row:hover,.battle-history-row:focus-visible{outline-offset:2px;background:#ffffff1a;border-color:#ffffff85;outline:2px solid #91e2dc57}.battle-history-row__number,.battle-history-row__score{color:#ffffff7a;font-family:ui-monospace,monospace;font-size:var(--font-size-min)}.battle-history-row__result{color:#ffffff9e;min-width:46px;font-family:ui-monospace,monospace;font-size:var(--font-size-min);text-align:center;border:1px solid #fff3;border-radius:4px;padding:4px 6px;font-weight:900}.battle-history-row__result[data-result=victory]{color:#a8efbd;border-color:#76dd9a73}.battle-history-row__result[data-result=defeat]{color:#ffc0b8;border-color:#e5847880}.battle-history-row__result[data-result=retreat]{color:#c4e5f3;border-color:#96c4dc80}.battle-history-row__copy{min-width:0;display:grid}.battle-history-row__copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-min);overflow:hidden}.battle-history-row__copy small{color:#ffffff7a;font-size:var(--font-size-min)}.battle-history-load-error{color:#ffc0b8;margin:10px 0 0}
