*{box-sizing:border-box}body{margin:0;background:#08080a;font-family:Oswald,system-ui,sans-serif;color:#e6e0d4}a{color:#c9a24a}a:hover{color:#e3c987}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.82)}62%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes spin40{to{transform:rotate(360deg)}}@keyframes pulseG{0%,to{box-shadow:0 0 #c9a24a73}50%{box-shadow:0 0 0 14px #c9a24a00}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.app-shell{min-height:100vh;padding:clamp(18px,4vw,34px) clamp(14px,4vw,32px) 54px;background:radial-gradient(120% 90% at 50% -10%,#17140c,#0b0b0d 46%,#08080a)}.stage-header{max-width:720px;margin:0 auto 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(201,162,74,.22);padding-bottom:18px;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:16px}.brand-mark{width:44px;height:44px;position:relative;flex:none}.brand-mark .diamond{position:absolute;top:0;right:0;bottom:0;left:0;border:1.5px solid rgba(201,162,74,.7);transform:rotate(45deg)}.brand-mark .ring{position:absolute;top:11px;right:11px;bottom:11px;left:11px;border:1.5px solid rgba(201,162,74,.55);border-radius:50%}.brand-mark .dot{position:absolute;top:50%;left:50%;width:6px;height:6px;background:#c9a24a;border-radius:50%;transform:translate(-50%,-50%)}.brand-title{font-family:Cinzel,serif;font-weight:700;font-size:22px;letter-spacing:.14em;color:#e3c987;line-height:1}.brand-subtitle{font:400 11px Oswald;letter-spacing:.34em;text-transform:uppercase;color:#e6e0d46b;margin-top:3px}.reset-btn{cursor:pointer;font:500 11px Oswald;letter-spacing:.14em;text-transform:uppercase;color:#e6e0d499;background:#ffffff08;border:1px solid rgba(255,255,255,.14);border-radius:3px;padding:9px 16px}.view-tabs{max-width:720px;margin:0 auto 26px;display:flex;gap:10px}.view-tab{cursor:pointer;flex:1;font:500 12px Oswald;letter-spacing:.16em;text-transform:uppercase;padding:12px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.14);background:#ffffff08;color:#e6e0d499}.view-tab.active{border-color:#c9a24a;background:linear-gradient(180deg,#c9a24a33,#c9a24a14);color:#e3c987}.route-banner{max-width:720px;margin:0 auto 26px;font:300 12px Oswald;letter-spacing:.03em;color:#e6e0d499;background:#c9a24a0f;border:1px solid rgba(201,162,74,.25);border-radius:4px;padding:10px 14px;line-height:1.5}.route-hint{max-width:720px;margin:-14px auto 26px;font:300 11px Oswald;letter-spacing:.03em;color:#e6e0d466}.panel{max-width:720px;margin:0 auto;position:relative;background:linear-gradient(180deg,#16171b,#101115);border:1px solid rgba(201,162,74,.28);border-radius:5px;box-shadow:inset 0 0 0 1px #0009,0 24px 60px -20px #000c;overflow:hidden}.panel-stripe{height:3px;background:repeating-linear-gradient(45deg,#c9a24a 0,#c9a24a 12px,#0b0b0d 12px,#0b0b0d 24px);opacity:.55}.panel-titlebar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 20px;background:linear-gradient(180deg,#1d1f24,#15161a);border-bottom:1px solid rgba(201,162,74,.18);flex-wrap:wrap}.panel-titlebar-title{display:flex;align-items:center;gap:11px}.panel-titlebar-title span{font-family:Cinzel,serif;font-weight:600;font-size:14px;letter-spacing:.06em;color:#e6e0d4}.panel-titlebar-tag{font:400 11px Oswald;letter-spacing:.1em;color:#e6e0d466}.icon-diamond{width:20px;height:20px;position:relative;flex:none}.icon-diamond .d{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(201,162,74,.6);transform:rotate(45deg)}.icon-diamond .c{position:absolute;top:6px;right:6px;bottom:6px;left:6px;border-radius:50%;background:#c9a24a99}.helper-text{font:300 11px Oswald;letter-spacing:.05em;color:#e6e0d459;margin-top:12px;text-align:center;max-width:720px;margin-left:auto;margin-right:auto}.gm-body{padding:24px clamp(16px,4vw,26px) 28px;animation:fadeUp .4s ease both}.gm-top-row{display:flex;gap:20px;margin-bottom:24px;flex-wrap:wrap}.code-card{flex:1 1 260px;position:relative;border:1px solid rgba(201,162,74,.45);background:linear-gradient(180deg,#c9a24a1a,#c9a24a08);border-radius:4px;padding:18px 20px;text-align:center}.code-card-label{font:500 10px Oswald;letter-spacing:.24em;text-transform:uppercase;color:#c9a24acc;margin-bottom:9px}.code-card-value{font-family:Cinzel,serif;font-weight:700;font-size:clamp(30px,6vw,40px);letter-spacing:.2em;color:#e3c987;text-shadow:0 0 22px rgba(201,162,74,.3)}.code-card-hint{font:400 11px Oswald;letter-spacing:.08em;color:#e6e0d480;margin-top:8px}.count-card{flex:1 1 150px;display:flex;flex-direction:column;justify-content:center;gap:12px}.count-card-value{font:600 30px Oswald;color:#e6e0d4;line-height:1}.count-card-value span{color:#e6e0d466;font-size:15px;font-weight:300}.count-bar{height:6px;background:#ffffff12;border-radius:3px;overflow:hidden}.count-bar-fill{height:100%;background:linear-gradient(90deg,#7ba36f,#8fbf87)}.section-label{font:500 10px Oswald;letter-spacing:.24em;text-transform:uppercase;color:#e6e0d46b;margin-bottom:11px}.roster-list{border:1px solid rgba(255,255,255,.09);border-radius:4px;overflow:hidden;margin-bottom:24px}.roster-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;border-bottom:1px solid rgba(255,255,255,.06);flex-wrap:wrap}.roster-row-left{display:flex;align-items:center;gap:13px}.avatar{width:32px;height:32px;background:#c9a24a14;border:1px solid rgba(201,162,74,.25);border-radius:50%;flex:none;object-fit:cover}.avatar.sm{width:26px;height:26px}.roster-name{font:500 14px Oswald;letter-spacing:.03em;color:#e6e0d4}.roster-cls{font:300 11px Oswald;letter-spacing:.05em;color:#e6e0d46b}.roster-status{display:inline-flex;align-items:center;gap:7px;font:400 11px Oswald;letter-spacing:.08em}.status-dot{width:7px;height:7px;border-radius:50%}.primary-btn{cursor:pointer;width:100%;display:flex;align-items:center;justify-content:center;gap:11px;padding:15px;border:1px solid #c9a24a;background:linear-gradient(180deg,#c9a24a33,#c9a24a14);border-radius:4px;color:#e3c987;font:600 14px Oswald;letter-spacing:.16em;text-transform:uppercase}.primary-btn:disabled{cursor:not-allowed;opacity:.4;border-color:#c9a24a4d;background:#ffffff08;color:#e6e0d466}.secondary-btn{cursor:pointer;padding:12px 22px;border:1px solid #c9a24a;background:linear-gradient(180deg,#c9a24a2e,#c9a24a0f);border-radius:4px;color:#e3c987;font:600 12px Oswald;letter-spacing:.16em;text-transform:uppercase}.results-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap}.results-title{font-family:Cinzel,serif;font-weight:600;font-size:19px;color:#e6e0d4}.results-subtitle{font:300 12px Oswald;letter-spacing:.06em;color:#e6e0d480;margin-top:2px}.live-tag{display:flex;align-items:center;gap:8px;font:400 11px Oswald;letter-spacing:.1em;color:#8fbf87;white-space:nowrap}.live-dot{width:8px;height:8px;border-radius:50%;background:#8fbf87;animation:blink 1.4s ease-in-out infinite}.rolls-list{display:flex;flex-direction:column;gap:11px}.roll-row{display:flex;align-items:center;gap:15px;border-radius:5px;padding:15px 17px;border:1px solid;transition:border-color .45s ease,background-color .45s ease}.roll-row-name{font:500 15px Oswald;letter-spacing:.03em;color:#e6e0d4}.roll-row-cls{font:300 11px Oswald;letter-spacing:.05em;color:#e6e0d473}.roll-row-result{text-align:right}.roll-row-label{font-family:Cinzel,serif;font-weight:700;font-size:15px;letter-spacing:.05em;transition:color .45s ease}.roll-row-degree{font:300 11px Oswald;letter-spacing:.05em;color:#e6e0d480}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#060608c7;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:0;z-index:20;animation:fadeUp .25s ease both}.modal-sheet{width:100%;max-width:440px;max-height:100vh;overflow-y:auto;background:linear-gradient(180deg,#191b20,#121317);border:1px solid rgba(201,162,74,.4);border-radius:5px;box-shadow:0 30px 70px -20px #000000e6}@media (max-width: 620px){.modal-overlay{align-items:flex-end;padding:0}.modal-sheet{max-width:100%;max-height:92vh;border-radius:12px 12px 0 0;border-bottom:none}}.modal-titlebar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid rgba(201,162,74,.16)}.modal-titlebar span{font-family:Cinzel,serif;font-weight:600;font-size:15px;color:#e6e0d4}.modal-close{cursor:pointer;background:none;border:none;color:#e6e0d480;font-size:18px;line-height:1}.modal-content{padding:22px 22px 24px}.char-group{margin-bottom:14px}.char-group-label{font:500 10px Oswald;letter-spacing:.1em;text-transform:uppercase;color:#c9a24a99;margin-bottom:6px}.skill-tab-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.skill-tab{cursor:pointer;font:400 11px Oswald;letter-spacing:.04em;padding:7px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.14);background:#ffffff08;color:#e6e0d499}.skill-tab.active{border-color:#c9a24a;background:#c9a24a29;color:#e3c987}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.chip{cursor:pointer;font:400 12px Oswald;letter-spacing:.06em;padding:8px 14px;border-radius:3px;border:1px solid rgba(255,255,255,.14);background:#ffffff08;color:#e6e0d4b3}.chip.active{border-color:#c9a24a;background:#c9a24a29;color:#e3c987}.malus-row{display:flex;gap:7px;margin-bottom:22px}.malus-btn{cursor:pointer;flex:1;min-width:0;font:400 12px Oswald;letter-spacing:.03em;padding:11px 0;border-radius:3px;border:1px solid rgba(255,255,255,.12);background:transparent;color:#e6e0d48c}.malus-btn.active{border-color:#c9a24a;background:#c9a24a29;color:#e3c987}.who-row{display:flex;gap:8px;margin-bottom:10px}.who-btn{cursor:pointer;flex:1;font:400 12px Oswald;letter-spacing:.05em;padding:11px 0;border-radius:3px;border:1px solid rgba(255,255,255,.12);background:transparent;color:#e6e0d48c}.who-btn.active{border-color:#c9a24a;background:#c9a24a29;color:#e3c987}.text-input{width:100%;font:400 14px Oswald;letter-spacing:.03em;color:#e6e0d4;background:#ffffff08;border:1px solid rgba(255,255,255,.14);border-radius:3px;padding:11px 13px}.text-input::placeholder{color:#e6e0d459}.form-error{font:400 12px Oswald;letter-spacing:.03em;color:#e08a7d;margin-top:8px}.selectable-list{display:flex;flex-direction:column;gap:7px;margin-bottom:22px}.selectable-row{cursor:pointer;display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:4px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;text-align:left;width:100%}.selectable-row.chosen{border-color:#c9a24a73;background:#c9a24a14}.checkbox{width:16px;height:16px;border-radius:3px;border:1px solid rgba(255,255,255,.25);flex:none}.checkbox.chosen{border-color:#c9a24a;background:#c9a24a}.selectable-label{font:400 13px Oswald;letter-spacing:.04em;color:#e6e0d499}.selectable-label.chosen{color:#e6e0d4}.whoall-hint{font:300 11px Oswald;letter-spacing:.05em;color:#e6e0d466;margin-bottom:22px}.player-card{max-width:480px;margin:0 auto;background:linear-gradient(180deg,#16171b,#101115);border:1px solid rgba(201,162,74,.3);border-radius:12px;overflow:hidden;border-top:1px solid rgba(201,162,74,.28);box-shadow:inset 0 0 0 1px #0009,0 24px 60px -20px #000000d9}.player-header{padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(201,162,74,.14);flex-wrap:wrap}.player-header-left{display:flex;align-items:center;gap:9px}.player-header-name{font-family:Cinzel,serif;font-weight:600;font-size:13px;color:#e6e0d4;line-height:1.1}.player-header-cls{font:300 10px Oswald;letter-spacing:.05em;color:#e6e0d46b}.player-header-code{display:inline-flex;align-items:center;gap:5px;font:400 9px Oswald;letter-spacing:.1em;color:#8fbf87}.player-header-code .status-dot{width:6px;height:6px;background:#8fbf87}.player-body{padding:16px 18px 22px;animation:fadeUp .4s ease both}.radar-card{border:1px solid rgba(201,162,74,.22);border-radius:8px;background:#ffffff04;padding:12px 4px 4px;margin-bottom:16px}.radar-svg{display:block;width:100%;max-width:300px;margin:0 auto;overflow:visible}.radar-grid{fill:none;stroke:#ffffff14;stroke-width:1}.radar-axis{stroke:#ffffff1a;stroke-width:1}.radar-shape{fill:#c9a24a38;stroke:#c9a24a;stroke-width:1.5;stroke-linejoin:round}.radar-dot{fill:#e3c987}.radar-label-char{font:700 10px Cinzel,serif;letter-spacing:.08em;fill:#e3c987}.radar-label-skill{font:400 8px Oswald;letter-spacing:.02em;fill:#e6e0d480}.search-bar{display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:9px 14px;margin-bottom:13px;color:#e6e0d452;font:300 12px Oswald;letter-spacing:.04em}.pending-banner{display:flex;align-items:center;gap:8px;font:300 10px Oswald;letter-spacing:.04em;color:#c9a24ab3;background:#c9a24a0f;border:1px solid rgba(201,162,74,.2);border-radius:4px;padding:9px 12px;margin-bottom:15px}.pending-banner .glyph{animation:blink 1.6s ease-in-out infinite}.skills-list{display:flex;flex-direction:column}.skill-row{padding:12px 2px;border-bottom:1px solid rgba(201,162,74,.1);font:400 14px Oswald;letter-spacing:.04em;color:#e6e0d4b8}.request-screen{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;text-align:center;animation:fadeUp .4s ease both}.order-badge{display:inline-flex;align-items:center;gap:6px;font:400 10px Oswald;letter-spacing:.16em;text-transform:uppercase;color:#c9a24a;border:1px solid rgba(201,162,74,.4);border-radius:20px;padding:6px 13px;margin-bottom:24px}.request-skill{font-family:Cinzel,serif;font-weight:600;font-size:26px;color:#e6e0d4;margin-bottom:8px}.request-flavor{font:300 12px Oswald;letter-spacing:.05em;color:#e6e0d480;font-style:italic;margin-bottom:44px;line-height:1.5}.roll-button{cursor:pointer;width:158px;height:158px;border:2px solid #c9a24a;background:radial-gradient(circle at 50% 35%,#c9a24a38,#c9a24a0f);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#e3c987;animation:pulseG 2s ease-out infinite}.roll-button .glyph{font-size:44px;line-height:1}.roll-button .label{font-family:Cinzel,serif;font-weight:700;font-size:15px;letter-spacing:.1em;margin-top:6px}.rolling-circle{width:158px;height:158px;border:2px solid rgba(201,162,74,.5);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#e3c987}.rolling-circle .glyph{font-size:52px;line-height:1;animation:spin40 .6s linear infinite}.request-hint{font:300 11px Oswald;letter-spacing:.05em;color:#e6e0d466;margin-top:24px}.result-card{border-radius:10px;padding:26px 18px;text-align:center;margin-bottom:22px;border:1px solid;animation:pop .5s ease both}.result-card-skill{font:300 11px Oswald;letter-spacing:.06em;color:#e6e0d480;margin-bottom:9px}.result-card-label{font-family:Cinzel,serif;font-weight:700;font-size:34px;letter-spacing:.05em}.result-card-degree{font:400 13px Oswald;letter-spacing:.04em;color:#e6e0d49e;margin-top:7px}.teammates-list{display:flex;flex-direction:column;gap:8px}.teammate-row{display:flex;align-items:center;justify-content:space-between;border-radius:7px;padding:12px 14px;border:1px solid;transition:border-color .45s ease,background-color .45s ease}.teammate-row-left{display:flex;align-items:center;gap:9px}.teammate-name{font:400 13px Oswald;letter-spacing:.03em;color:#e6e0d4}.teammate-result{text-align:right}.teammate-label{font:500 12px Oswald;letter-spacing:.04em;transition:color .45s ease}.teammate-degree{font:300 10px Oswald;color:#e6e0d473}.roster-row-wrap{flex-wrap:wrap;row-gap:10px}.roster-item{border-bottom:1px solid rgba(255,255,255,.06)}.roster-item .roster-row{border-bottom:none}.roster-pv-block{flex:1 1 160px;min-width:140px}.roster-pv-bar{height:7px;border-radius:4px;background:#ffffff12;overflow:hidden;margin-bottom:5px}.roster-pv-bar-fill{height:100%;transition:width .4s ease}.roster-pv-bar-fill.pv-sain{background:linear-gradient(90deg,#7ba36f,#8fbf87)}.roster-pv-bar-fill.pv-blesse{background:linear-gradient(90deg,#b6903f,#e3c987)}.roster-pv-bar-fill.pv-critique{background:linear-gradient(90deg,#a85a3f,#d98a5e)}.roster-pv-bar-fill.pv-horsCombat{background:#c65a4f}.roster-pv-label{font:400 11px Oswald;letter-spacing:.04em;color:#e6e0d48c}.pv-tag{font-weight:600}.pv-tag.pv-sain{color:#8fbf87}.pv-tag.pv-blesse{color:#e3c987}.pv-tag.pv-critique{color:#d98a5e}.pv-tag.pv-horsCombat{color:#c65a4f}.roster-actions{display:flex;gap:8px;flex:none}.roster-action-btn{cursor:pointer;font:400 11px Oswald;letter-spacing:.04em;padding:7px 11px;border-radius:3px;border:1px solid rgba(255,255,255,.14);background:#ffffff08;color:#e6e0d4b3;white-space:nowrap}.roster-action-btn:hover{border-color:#c9a24a;color:#e3c987}.player-pv-strip{padding:12px 18px 0}.down-banner{margin:12px 18px 0;text-align:center;padding:10px;border-radius:4px;border:1px solid rgba(198,90,79,.5);background:#c65a4f1f;color:#e08a7d;font:600 12px Oswald;letter-spacing:.1em;animation:blink 1.6s ease-in-out infinite}.damage-notice{margin:12px 18px 0;text-align:center;padding:10px;border-radius:4px;border:1px solid rgba(201,162,74,.4);background:#c9a24a1a;color:#e3c987;font:400 12px Oswald;letter-spacing:.04em;animation:fadeUp .3s ease both}.armor-toggle{cursor:pointer;background:none;border:none;color:#c9a24abf;font:400 11px Oswald;letter-spacing:.08em;text-transform:uppercase;padding:0;margin-bottom:12px}.armor-list{margin-bottom:16px;border:1px solid rgba(255,255,255,.09);border-radius:4px;overflow:hidden}.armor-row{display:flex;justify-content:space-between;padding:9px 13px;font:300 12px Oswald;letter-spacing:.03em;color:#e6e0d499;border-bottom:1px solid rgba(255,255,255,.06)}.armor-row:last-child{border-bottom:none}.char-edit-panel{padding:16px 16px 20px;background:#ffffff04;border-top:1px solid rgba(201,162,74,.15)}.char-edit-row{display:flex;align-items:center;gap:10px;margin-bottom:9px}.char-edit-label{flex:1 1 auto;font:300 12px Oswald;letter-spacing:.03em;color:#e6e0d499}.char-edit-input{flex:0 0 90px;width:90px}.armor-edit-grid{margin-bottom:4px}.pv-bonus-list{margin-bottom:10px;display:flex;flex-direction:column;gap:6px}.pv-bonus-row{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:3px;border:1px solid rgba(255,255,255,.1);background:#ffffff05;font:300 12px Oswald;color:#e6e0d4a6}.attack-card{margin-bottom:20px;padding:16px 18px;border-radius:5px;border:1px solid rgba(201,162,74,.4);background:#c9a24a0f;animation:fadeUp .3s ease both}.attack-card-title{display:flex;justify-content:space-between;align-items:center;gap:8px;font-family:Cinzel,serif;font-weight:600;font-size:14px;color:#e6e0d4;margin-bottom:8px}.attack-card-status{font:300 12px Oswald;letter-spacing:.05em;color:#e6e0d48c}.attack-card-result{font:500 13px Oswald;letter-spacing:.04em;color:#e3c987;margin-bottom:12px}.back-btn{cursor:pointer;width:100%;margin-top:22px;padding:13px;border:1px solid #c9a24a;background:linear-gradient(180deg,#c9a24a2e,#c9a24a0f);border-radius:5px;color:#e3c987;font:600 12px Oswald;letter-spacing:.14em;text-transform:uppercase}.split-screen{height:100vh;display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#c9a24a59}.split-pane{display:flex;flex-direction:column;min-width:0;min-height:0;background:#08080a}.split-pane-header{display:flex;justify-content:space-between;align-items:center;padding:6px 14px;font:500 11px Oswald;letter-spacing:.16em;text-transform:uppercase;color:#e3c987;border-bottom:1px solid rgba(201,162,74,.25)}.split-pane-header a{font-weight:300;letter-spacing:.06em;text-transform:none}.split-pane-frame{flex:1;width:100%;border:0}@media (max-width: 900px){.split-screen{grid-template-columns:1fr;grid-template-rows:1fr 1fr}}
