@import url('/assets/fonts/fonts.css');
/* RIFT: one playable field, one cinematic encounter. Supporting information
   stays available in the journey dialog and the encounter disclosure. */
:root{font-family:'Pretendard','Segoe UI',sans-serif;font-synthesis:none;--board-w:min(324px,calc((100svh - 248px)/2));--accent:#d5b975}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:#111410;color:#eae9df}button,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--rift-gold);outline-offset:5px}[hidden]{display:none!important}h1,h2,p{margin:0}canvas{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow{font:500 12px/1.5 'Outfit','Pretendard',sans-serif;letter-spacing:2px;color:var(--rift-gold)}
.world-light{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 76% 42%,#77633b17,transparent 50%),linear-gradient(115deg,#141714,#101310 58%,#171b16)}.world-light::after{content:'';position:absolute;inset:0;background-image:radial-gradient(#dfcf9c55 .7px,transparent 1px);background-size:83px 97px;opacity:.17}
.story-header{height:82px;max-width:1536px;margin:auto;padding:0 48px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--rift-line)}.story-brand{display:flex;align-items:center;gap:13px;flex-shrink:0}.brand-icon{font-size:38px;line-height:1;color:var(--rift-gold)}.story-brand strong{font:500 33px/1 'Outfit',sans-serif;letter-spacing:5px}.brand-rule{height:28px;width:1px;background:var(--rift-line);margin:0 6px}.story-brand>span:last-child{font:400 12px/1.5 'Outfit',sans-serif;letter-spacing:2px;color:var(--rift-muted)}
.header-actions{display:flex;align-items:center;gap:24px;font-size:14px;color:var(--rift-muted)}.header-actions>a,.header-actions>button{min-height:38px;display:flex;align-items:center;padding:0}.header-actions>a:hover,.header-actions>button:hover{color:var(--rift-text)}.header-actions #help-btn{height:34px;min-height:34px;width:34px;justify-content:center;border:1px solid var(--rift-line);border-radius:50%;font-size:18px}
.story-account-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:1328px;margin:0 auto;padding:11px 0;border-bottom:1px solid var(--rift-line);font-size:13px;line-height:1.5}.story-account-bar>div:first-child{display:flex;align-items:center;gap:14px;min-width:0}.story-account-bar strong{color:var(--rift-gold);font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.story-account-bar span{color:var(--rift-muted)}.story-account-actions{display:flex;align-items:center;gap:18px;flex-shrink:0}.story-account-actions a{color:var(--rift-gold)}.story-account-actions button{font-size:13px;color:var(--rift-muted);padding:0}
.story-layout{display:grid;grid-template-columns:calc(var(--board-w) + 112px) minmax(0,1fr);gap:clamp(60px,7vw,110px);align-items:start;max-width:1240px;margin:0 auto;padding:28px 32px 22px}.story-layout>*{min-width:0}.battlefield{width:100%;min-width:0}.field-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px;margin-bottom:14px;font:400 13px/1.5 'Outfit','Pretendard',sans-serif;letter-spacing:1px;color:var(--rift-muted)}.field-heading button{font:13px/1.5 'Pretendard',sans-serif;color:var(--rift-text);padding:0;min-height:28px;white-space:nowrap}.field-heading #map-btn{color:var(--rift-gold)}.field-heading #map-btn span{margin-left:6px}#stage-badge{margin-left:auto}
.board-layout{display:grid;grid-template-columns:var(--board-w) 84px;gap:28px;align-items:start}.board-frame{width:var(--board-w);height:calc(var(--board-w) * 2);position:relative;padding:6px;border:1px solid var(--rift-board-edge);background:var(--rift-surface);box-shadow:0 22px 65px #0005,inset 0 0 0 2px var(--rift-bg)}.board-frame>canvas{width:100%;height:100%}#story-targets{position:absolute;inset:6px;width:calc(100% - 12px);height:calc(100% - 12px);z-index:2;pointer-events:none}.board-corner{position:absolute;width:15px;height:15px;border-style:solid;border-color:var(--rift-gold);pointer-events:none;z-index:5}.corner-tl{left:-2px;top:-2px;border-width:2px 0 0 2px}.corner-tr{right:-2px;top:-2px;border-width:2px 2px 0 0}.corner-bl{left:-2px;bottom:-2px;border-width:0 0 2px 2px}.corner-br{right:-2px;bottom:-2px;border-width:0 2px 2px 0}
.board-skill-edge{position:absolute;inset:6px;z-index:1;pointer-events:none;box-shadow:inset 0 0 32px #ff825b00;transition:box-shadow .3s}.board-frame.threat .board-skill-edge{box-shadow:inset 0 0 26px #ff825b35}.board-frame.skill-impact{animation:board-impact .35s ease-out}.board-frame.attack-impact{animation:attack-light .45s ease-out}
.board-overlay{position:absolute;inset:6px;z-index:4;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:24px 22px;background:var(--rift-overlay);backdrop-filter:blur(4px);overflow:auto;overscroll-behavior:contain}.board-overlay>*{flex-shrink:0}.board-overlay>.eyebrow{font-size:12px;letter-spacing:2px;color:var(--rift-gold)}.rift-emblem{font:80px/1 'Outfit',sans-serif;color:var(--rift-gold);margin:24px 0;text-shadow:0 0 34px #d5b97529}.board-overlay h2{font-size:27px;line-height:1.45;font-weight:500;letter-spacing:-1px;word-break:keep-all;color:var(--rift-text)}.board-overlay p{font-size:15px;line-height:1.8;white-space:pre-line;word-break:keep-all;color:var(--rift-muted);margin:16px 0 28px}.primary-button{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;padding:16px 18px;background:var(--rift-gold);color:var(--rift-on-gold);font-weight:600;font-size:16px;border:1px solid transparent;border-radius:0}.primary-button:hover{filter:brightness(1.1)}.primary-button:disabled{background:var(--rift-surface);color:var(--rift-muted);border-color:var(--rift-line);filter:none}.secondary-button{width:100%;border:1px solid var(--rift-line);padding:13px 14px;font-size:14px;color:var(--rift-muted);margin-top:10px}.board-overlay small{font-size:12px;line-height:1.5;color:var(--rift-muted);margin-top:18px}
.piece-rail{padding-top:9px;min-width:0}.rail-label{display:flex;align-items:center;justify-content:space-between;font:400 12px/1.5 'Outfit',sans-serif;letter-spacing:2px;color:var(--rift-text)}.rail-label span{font-size:12px;letter-spacing:0;color:var(--rift-muted)}.piece-rail>canvas{width:100%;height:220px;margin:14px 0 20px}.hold-button{width:100%;text-align:left;padding:15px 0 18px;border-top:1px solid var(--rift-line);border-bottom:1px solid var(--rift-line)}.hold-button canvas{width:100%;height:54px;margin-top:12px}.battle-stats{margin:21px 0 0}.battle-stats>div{margin-bottom:22px}.battle-stats dt{font-size:12px;line-height:1.5;color:var(--rift-muted)}.battle-stats dd{font:400 28px/1.1 'Outfit',sans-serif;color:var(--rift-text);margin:6px 0 0;font-variant-numeric:tabular-nums}.battle-stats>div:first-child dd{color:var(--rift-gold)}.battle-stats>div:last-child dd{font-size:24px}
.keyboard-note{display:flex;align-items:center;flex-wrap:wrap;gap:9px 14px;margin-top:21px;color:var(--rift-muted);font-size:12px;line-height:1.5}.keyboard-note>span{white-space:nowrap}kbd{font:12px 'Outfit',sans-serif;color:var(--rift-text);margin-right:4px}.touch-controls{display:none}.damage-toast{position:absolute;left:0;right:0;top:35%;text-align:center;font:600 30px/1.2 'Outfit',sans-serif;color:#fff6d7;text-shadow:0 2px 5px #000,0 0 16px #000;z-index:3;pointer-events:none;opacity:0;white-space:pre-line}.damage-toast.show{animation:damage-rise 1.3s ease-out forwards}.damage-toast small{display:block;font:14px 'Pretendard',sans-serif;letter-spacing:1px;margin-top:7px}
.encounter-panel{position:relative;padding-top:4px}.encounter-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.enemy-class{font:400 12px/1.5 'Outfit',sans-serif;letter-spacing:2px;color:var(--rift-muted)}.enemy-heading{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px}.enemy-heading p{font-size:15px;line-height:1.5;color:var(--rift-muted);margin-bottom:9px}.enemy-heading h1{font:500 clamp(30px,3vw,43px)/1.3 'Pretendard',sans-serif;letter-spacing:-1.8px;color:var(--rift-text);word-break:keep-all}.enemy-sigil{font:64px/1 'Outfit',sans-serif;color:var(--rift-gold);opacity:.6}
.enemy-arena{position:relative;isolation:isolate;height:clamp(260px,calc(100svh - 552px),414px);margin:-2px -28px -4px;overflow:visible;background:radial-gradient(ellipse at 50% 65%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 64%)}.enemy-arena canvas{position:relative;z-index:1;width:100%;height:100%}.arena-orbit{position:absolute;left:15%;top:4%;width:70%;height:83%;border:1px solid color-mix(in srgb,var(--rift-gold) 12%,transparent);border-radius:50%;transform:rotate(-25deg) scaleY(.7);pointer-events:none}.orbit-two{transform:rotate(26deg) scaleY(.65);left:9%;top:0;width:82%;height:93%;opacity:.55}.enemy-inspect{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-start;justify-content:flex-end;padding:14px 28px;color:var(--rift-muted);font-size:12px;cursor:zoom-in;opacity:0;transition:opacity .2s}.enemy-arena:hover .enemy-inspect,.enemy-inspect:focus-visible{opacity:1}.arena-footer{position:absolute;left:28px;right:28px;bottom:12px;z-index:2;display:flex;justify-content:space-between;font:400 12px/1.5 'Outfit',sans-serif;letter-spacing:2px;color:var(--rift-muted);pointer-events:none}.arena-footer span:last-child{color:var(--rift-gold)}
.hp-caption{display:flex;align-items:baseline;justify-content:space-between;gap:14px;font:400 12px/1.4 'Outfit',sans-serif;letter-spacing:1px;color:var(--rift-muted);margin:6px 0 10px}.hp-caption strong{font:400 24px/1.2 'Outfit',sans-serif;color:var(--rift-text);letter-spacing:.5px;font-variant-numeric:tabular-nums}.hp-track{height:7px;position:relative;background:var(--rift-line);overflow:hidden}.hp-track>div{position:absolute;left:0;top:0;width:100%;height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--rift-gold) 65%,var(--rift-bg)),var(--rift-gold));transition:width .18s}.hp-track #hp-lag{background:var(--rift-text);transition:width .55s .1s}#hp-phase-marks{position:absolute;inset:0;z-index:2}#hp-phase-marks>i{position:absolute;left:33.3333%;top:0;bottom:0;width:2px;background:var(--rift-bg)}#hp-phase-marks>i+i{left:66.6667%}
.boss-objective-panel{position:relative;margin-top:18px;padding:12px 0;border-top:1px solid var(--rift-line);border-bottom:1px solid var(--rift-line)}.boss-objective-heading{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.4}.boss-objective-heading strong{font-weight:500;color:var(--rift-text)}.boss-objective-heading>button{color:var(--rift-muted);margin-left:auto;font-size:13px;min-height:26px;padding:3px 6px;border:1px solid var(--rift-line);white-space:nowrap}.boss-objective-heading>span{font-size:13px;white-space:nowrap;color:var(--rift-gold)}.boss-objective-panel>p{display:none}.boss-objectives{display:flex;gap:28px;margin-top:8px}.boss-objective{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 10px;min-width:0}.boss-objective>span{font-size:12px;line-height:1.5;color:var(--rift-muted)}.boss-objective>strong{font:400 15px/1.5 'Outfit','Pretendard',sans-serif;color:var(--rift-text)}.boss-objective-panel[data-state=guard]{border-color:var(--rift-shield)}.boss-objective-panel[data-state=guard] .boss-objective-heading>span{color:var(--rift-shield)}.boss-window-track{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--rift-line)}.boss-window-track>span{display:block;width:0;height:100%;background:var(--rift-shield)}
.skill-warning{position:relative;display:flex;align-items:center;gap:14px;min-height:78px;margin-top:16px;padding:13px 16px;border:1px solid var(--rift-line);background:var(--rift-surface);overflow:hidden}.warning-icon{font-size:29px;line-height:1;color:var(--rift-gold)}.skill-warning>div:not(.skill-timer){min-width:0}.skill-warning strong{font-size:15px;line-height:1.4;font-weight:500;color:var(--rift-text)}.skill-warning p{font-size:13px;line-height:1.5;color:var(--rift-muted);margin-top:4px;word-break:keep-all}.skill-warning>#skill-countdown{margin-left:auto;font:400 25px/1 'Outfit',sans-serif;color:var(--rift-gold);white-space:nowrap}.skill-warning.active{border-color:var(--rift-warning);background:color-mix(in srgb,var(--rift-surface) 90%,var(--rift-warning))}.skill-warning.active :is(strong,.warning-icon,#skill-countdown){color:var(--rift-warning)}.skill-warning.active p{color:var(--rift-text)}.skill-timer{position:absolute;left:0;right:0;bottom:0;height:2px}.skill-timer span{display:block;height:100%;width:0;background:var(--rift-warning)}.additional-threats{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.additional-threats>span{font-size:12px;line-height:1.4;padding:4px 7px;border:1px solid var(--rift-warning);color:var(--rift-warning);background:var(--rift-surface)}
.encounter-details{margin-top:14px;border-bottom:1px solid var(--rift-line)}.encounter-details>summary,.chapter-index>summary{cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:38px;padding:5px 0;color:var(--rift-muted);font-size:13px;list-style:none}summary::-webkit-details-marker{display:none}.encounter-details[open]>summary>span,.chapter-index[open]>summary>span{transform:rotate(45deg)}.encounter-details-body{padding:8px 0 18px}.stage-route{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.stage-node{padding:11px 3px;font:400 16px/1.3 'Outfit',sans-serif;color:var(--rift-muted);border:1px solid var(--rift-line);background:var(--rift-surface);font-variant-numeric:tabular-nums;white-space:nowrap}.stage-node small{display:block;margin-top:5px;font-size:12px;letter-spacing:.7px}.stage-node.selected{color:var(--rift-gold);border-color:var(--rift-gold)}.stage-node.complete{color:var(--rift-text)}.stage-node.locked{opacity:.55}
.encounter-story{margin:19px 0}.encounter-story p{font-size:15px;line-height:1.8;color:var(--rift-muted);margin-top:9px;word-break:keep-all;white-space:pre-line}.mechanic-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.mechanic-tags span{font-size:12px;line-height:1.5;padding:4px 7px;border:1px solid var(--rift-line);color:var(--rift-muted)}.combat-feed{border-top:1px solid var(--rift-line);padding-top:14px}.feed-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.feed-heading>span:last-child{font:12px 'Outfit','Pretendard',sans-serif;color:var(--rift-muted)}#combat-log{list-style:none;padding:0;margin:9px 0 0;max-height:100px;overflow:auto}#combat-log li{font-size:14px;line-height:1.75;color:var(--rift-muted);overflow-wrap:anywhere}#combat-log li:first-child{color:var(--rift-text)}
.story-footer{max-width:1328px;margin:auto;border-top:1px solid var(--rift-line);padding:16px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;color:var(--rift-muted);font:12px/1.6 'Outfit','Pretendard',sans-serif;letter-spacing:.8px}.story-footer i{font-style:normal;margin:0 8px}.story-footer button{font:13px 'Pretendard',sans-serif;color:var(--rift-muted);padding:0;white-space:nowrap}
.story-dialog{width:calc(100% - 32px);max-width:560px;max-height:88svh;overflow:auto;overscroll-behavior:contain;background:var(--rift-panel);color:var(--rift-text);padding:34px;border:1px solid var(--rift-board-edge);box-shadow:0 30px 100px #0007}.story-dialog::backdrop{background:#090d0bd9;backdrop-filter:blur(8px)}.dialog-close{position:absolute;top:14px;right:18px;font-size:27px;line-height:1;min-height:32px;width:32px;color:var(--rift-muted)}.story-dialog h2{font-size:28px;line-height:1.4;font-weight:500;letter-spacing:-1px;margin:16px 0}.story-dialog p{font-size:16px;line-height:1.8;color:var(--rift-muted);margin:12px 0 22px}.help-keys{display:grid;grid-template-columns:1fr auto;align-items:center;gap:13px;font-size:15px;color:var(--rift-muted);margin:24px 0}.help-keys kbd{font-size:14px}.help-footnote{font-size:14px!important}.speed-setting{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px;margin:16px 0;flex-wrap:wrap}.speed-setting select{font-size:16px;max-width:100%;padding:9px 10px;border:1px solid var(--rift-line);color:var(--rift-text);background:var(--rift-surface)}
.map-dialog{max-width:760px}.campaign-heading{display:flex;align-items:center;justify-content:space-between}.campaign-heading>span:last-child{font:18px 'Outfit',sans-serif;color:var(--rift-gold)}.campaign-progress{height:3px;background:var(--rift-line);margin:10px 0 16px}.campaign-progress span{display:block;width:0;height:100%;background:var(--rift-gold);transition:width .5s}.chapter-index{border-bottom:1px solid var(--rift-line);margin-bottom:16px}.chapter-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding-bottom:12px}.chapter-button{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;padding:10px 8px;border:1px solid transparent;color:var(--rift-muted);font-size:14px;line-height:1.5}.chapter-button.selected{border-color:var(--rift-line);color:var(--rift-text);background:var(--rift-surface)}.chapter-number{font:15px 'Outfit',sans-serif;color:var(--rift-gold)}.chapter-button small{font:13px 'Outfit',sans-serif}#world-map{display:grid;gap:18px}.map-chapter{position:relative;min-height:100px;border-top:1px solid var(--rift-line);padding:14px 0 0 82px}.map-boss-portrait{position:absolute;left:0;top:14px;width:68px;height:88px;object-fit:contain;background:radial-gradient(ellipse,#403b2c,#151913);border:1px solid var(--rift-line)}.map-chapter header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;font-size:15px;line-height:1.5;color:var(--rift-text)}.map-chapter header small{font-size:13px;color:var(--rift-muted)}.map-chapter .stage-route{margin-top:9px}.story-dialog .save-note{font-size:14px;margin:22px 0 0}
.enemy-art-dialog{max-width:700px}.enemy-art-stage{display:grid;place-items:center;background:radial-gradient(ellipse,color-mix(in srgb,var(--accent) 12%,var(--rift-panel)),var(--rift-panel) 72%);border:1px solid var(--rift-line);overflow:hidden}.enemy-art-stage img{display:block;width:100%;max-width:550px;height:min(48svh,530px);object-fit:contain;padding:14px;filter:drop-shadow(0 12px 16px #0008)}.enemy-art-dialog .primary-button{justify-content:center}
#combat-effects{position:fixed;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}.hp-track.hit-pulse{animation:hp-strike .32s ease-out}.enemy-enter{animation:enemy-arrive .65s cubic-bezier(.16,1,.3,1)}.phase-awaken{animation:enemy-awaken .6s ease-out}.queue-shuffle{animation:queue-turn .38s ease-out}
@keyframes damage-rise{0%{opacity:0;transform:translateY(10px) scale(.88)}15%{opacity:1;transform:translateY(0) scale(1.05)}65%{opacity:1;transform:translateY(-8px) scale(1)}100%{opacity:0;transform:translateY(-35px)}}@keyframes board-impact{0%,100%{transform:translate(0)}25%{transform:translate(3px,2px)}55%{transform:translate(-3px,-1px)}80%{transform:translate(1px,0)}}@keyframes attack-light{40%{border-color:#ffe8b6;box-shadow:0 0 0 4px #66553055,0 0 40px #f2c9692e}}@keyframes hp-strike{0%{filter:brightness(2.2);box-shadow:0 0 18px var(--accent)}100%{filter:brightness(1);box-shadow:none}}@keyframes enemy-arrive{0%{opacity:.2;transform:translateY(15px) scale(.96)}100%{opacity:1;transform:none}}@keyframes enemy-awaken{0%,100%{filter:brightness(1)}25%{filter:brightness(1.6) saturate(1.3)}}@keyframes queue-turn{0%,100%{transform:none;filter:brightness(1)}35%{transform:translateX(4px);filter:brightness(1.5)}70%{transform:translateX(-3px)}}
body.effects-off :is(.skill-impact,.attack-impact,.hit-pulse,.enemy-enter,.phase-awaken,.queue-shuffle){animation:none}body.effects-off .damage-toast.show{animation:none;opacity:1}body[data-combat=paused] :is(.hit-pulse,.enemy-enter,.phase-awaken,.queue-shuffle){animation-play-state:paused}
@media(max-width:1420px){.story-account-bar,.story-footer{margin-left:40px;margin-right:40px}}
@media(max-width:1100px){:root{--board-w:min(29vw,calc((100svh - 260px)/2),300px)}.story-header{padding:0 28px}.header-actions{gap:15px}.story-brand>span:last-child,.brand-rule{display:none}.story-layout{gap:45px;padding:26px 32px;grid-template-columns:calc(var(--board-w) + 104px) minmax(0,1fr)}.board-layout{grid-template-columns:var(--board-w) 80px;gap:24px}.story-account-bar,.story-footer{margin-left:28px;margin-right:28px}.story-account-bar span{font-size:12px}.story-account-actions{gap:12px}.enemy-heading h1{font-size:32px}.enemy-sigil{font-size:50px}.enemy-arena{margin-left:-20px;margin-right:-20px;height:clamp(260px,calc(100svh - 590px),360px)}.boss-objective-heading{flex-wrap:wrap;gap:5px 8px}.boss-objectives{gap:10px 20px;flex-wrap:wrap}.boss-objective-heading>span{margin-left:auto}.skill-warning{padding:12px;gap:10px}.skill-warning p{font-size:13px}.piece-rail>canvas{height:198px}.battle-stats>div{margin-bottom:17px}.battle-stats dd{font-size:25px}.story-footer{letter-spacing:0}}
@media(max-width:760px){
 :root{--board-w:min(calc(100vw - 126px),246px)}
 .story-header{height:auto;min-height:74px;padding:16px 20px;gap:14px;flex-wrap:wrap}.story-brand{gap:9px}.story-brand strong{font-size:28px}.brand-icon{font-size:32px}.header-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px 15px;margin-left:auto;font-size:13px}.header-actions>a,.header-actions>button{min-height:32px}.header-actions>a{display:none}.header-actions #help-btn{width:30px;min-height:30px;height:30px}
 .story-account-bar{margin:0 20px;padding:12px 0;align-items:flex-start;gap:12px;flex-wrap:wrap}.story-account-bar>div:first-child{flex:1;min-width:170px;flex-direction:column;align-items:flex-start;gap:4px}.story-account-bar strong{font-size:13px}.story-account-bar span{font-size:12px;line-height:1.5}.story-account-actions{flex-direction:column;align-items:flex-end;gap:7px;font-size:12px}.story-account-actions button{font-size:12px}
 .story-layout{max-width:440px;padding:20px;display:grid;grid-template-columns:minmax(0,1fr) 106px;gap:7px 14px}.encounter-panel{display:contents}.encounter-top,.enemy-sigil{display:none}.enemy-heading{grid-column:1;grid-row:1;align-self:end;min-height:52px;display:block}.enemy-heading p{font-size:13px;margin-bottom:5px}.enemy-heading h1{font-size:23px;line-height:1.35;letter-spacing:-.7px}.enemy-arena{grid-column:2;grid-row:1/4;width:106px;height:106px;margin:0;align-self:center;overflow:hidden}.enemy-inspect{padding:0;opacity:1;align-items:flex-end;justify-content:flex-end;font-size:12px}.arena-footer,.arena-orbit{display:none}.hp-caption{grid-column:1;grid-row:2;gap:5px;font-size:12px;letter-spacing:0;margin:3px 0 0;flex-wrap:wrap}.hp-caption strong{font-size:19px;letter-spacing:0}.hp-track{grid-column:1;grid-row:3;height:5px;align-self:start;margin-top:2px}
 .boss-objective-panel{grid-column:1/-1;grid-row:4;margin:7px 0 0;padding:9px 0}.boss-objective-heading{font-size:13px;gap:5px 8px;flex-wrap:nowrap}.boss-objective-heading strong{font-size:13px}.boss-objective-heading>button{min-height:28px;padding:2px 5px;font-size:12px}.boss-objective-heading>span{font-size:12px;margin-left:0}.boss-objectives{margin-top:5px;gap:5px 20px;flex-wrap:nowrap}.boss-objective{gap:2px 6px}.boss-objective>span{font-size:12px}.boss-objective>strong{font-size:14px}
 .skill-warning{grid-column:1/-1;grid-row:5;margin-top:7px;min-height:64px;padding:9px 12px;gap:10px}.skill-warning strong{font-size:14px}.skill-warning p{font-size:13px;line-height:1.5;margin-top:3px}.skill-warning>#skill-countdown{font-size:22px}.warning-icon{font-size:25px}.additional-threats{grid-column:1/-1;grid-row:6;margin:2px 0 0;gap:4px}.additional-threats>span{padding:3px 6px;font-size:12px}
 .battlefield{grid-column:1/-1;grid-row:7;width:calc(var(--board-w) + 92px);max-width:100%;margin:10px auto 0}.field-heading{font-size:12px;gap:8px;margin-bottom:9px;min-height:28px;letter-spacing:.5px}.field-heading button{font-size:12px;min-height:28px}.field-heading #map-btn span{margin-left:3px}.board-layout{grid-template-columns:var(--board-w) 74px;gap:18px}.board-frame{padding:4px}.board-skill-edge{inset:4px}#story-targets{inset:4px;width:calc(100% - 8px);height:calc(100% - 8px)}
 .board-overlay{inset:4px;padding:18px 15px}.rift-emblem{font-size:58px;margin:16px 0}.board-overlay h2{font-size:23px}.board-overlay p{font-size:14px;line-height:1.7;margin:12px 0 20px}.board-overlay small{margin-top:13px;font-size:12px}.board-overlay>.eyebrow{font-size:12px;letter-spacing:1px}.primary-button{font-size:15px;padding:14px 12px}.secondary-button{font-size:13px;padding:11px 9px}
 .piece-rail{padding-top:6px}.rail-label{font-size:12px;letter-spacing:1px}.rail-label span{font-size:12px}.piece-rail>canvas{height:180px;margin:9px 0 12px}.hold-button{padding:11px 0 12px}.hold-button canvas{height:43px;margin-top:7px}.battle-stats{margin-top:16px}.battle-stats>div{margin-bottom:16px}.battle-stats dt{font-size:12px}.battle-stats dd{font-size:24px;margin-top:4px}.battle-stats>div:last-child dd{font-size:21px}
 .touch-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 1.25fr;gap:7px;margin-top:14px}.touch-controls button{height:44px;min-width:0;padding:0;border:1px solid var(--rift-line);background:var(--rift-surface);color:var(--rift-text);font:24px 'Outfit',sans-serif;touch-action:none;user-select:none;-webkit-user-select:none}.touch-controls [data-action=hold],.touch-controls .drop-control{font-size:13px}.touch-controls .drop-control{grid-column:4;grid-row:1/3;height:auto;background:var(--rift-gold);color:var(--rift-on-gold);border-color:var(--rift-gold)}.touch-controls button.pressed{background:var(--rift-gold);color:var(--rift-on-gold)}.keyboard-note{display:none}
 .encounter-details{grid-column:1/-1;grid-row:8;margin-top:9px}.encounter-details>summary{font-size:13px;min-height:40px}.stage-route{gap:5px}.stage-node{font-size:15px;padding:10px 2px}.stage-node small{font-size:12px;letter-spacing:0}.encounter-story p{font-size:15px}.story-footer{margin:0 20px;padding:15px 0;gap:14px;font-size:12px;align-items:flex-start}.story-footer>span{max-width:245px}.story-footer i{display:none}.story-footer button{font-size:12px}
 .story-dialog{padding:28px 22px;max-height:90svh}.story-dialog h2{font-size:25px}.story-dialog p{font-size:16px}.help-keys{grid-template-columns:1fr;gap:6px;font-size:15px}.help-keys kbd{margin-bottom:8px}.chapter-list{grid-template-columns:1fr}.map-chapter{padding-left:56px}.map-boss-portrait{width:47px;height:78px}.map-chapter header{font-size:14px}.map-chapter header small{font-size:12px}.map-chapter .stage-route{gap:4px}.map-chapter .stage-node{font-size:13px;padding:9px 1px}.map-chapter .stage-node small{font-size:12px}
 body[data-combat=playing]{--board-w:min(calc(100vw - 126px),max(160px,calc((100svh - 410px)/2)),230px)}body[data-combat=playing][data-boss=false]{--board-w:min(calc(100vw - 126px),max(174px,calc((100svh - 345px)/2)),246px)}
 body[data-combat=playing] :is(.story-header,.story-account-bar,.story-footer,.encounter-details){display:none}body[data-combat=playing] .story-layout{padding:12px 16px;gap:5px 12px;max-width:410px;grid-template-columns:minmax(0,1fr) 84px}body[data-combat=playing] .enemy-arena{width:84px;height:84px}.enemy-arena:focus-within{outline:1px solid var(--rift-gold)}body[data-combat=playing] .enemy-inspect{font-size:12px;opacity:0}body[data-combat=playing] .enemy-inspect:focus-visible{opacity:1}body[data-combat=playing] .enemy-heading{min-height:36px}body[data-combat=playing] .enemy-heading p{display:none}
 body[data-combat=playing] .boss-objective-panel{margin-top:4px;padding:7px 0}body[data-combat=playing] .boss-objective-heading strong{display:none}body[data-combat=playing] .boss-objective-heading>button{margin-left:0;order:1}body[data-combat=playing] .boss-objective-heading>span{margin-left:auto;order:2}body[data-combat=playing] .boss-objectives{margin-top:3px;gap:5px 16px}body[data-combat=playing] .skill-warning{min-height:60px;margin-top:5px;padding:8px 10px}body[data-combat=playing] .battlefield{margin-top:4px}body[data-combat=playing] .field-heading{margin-bottom:8px}body[data-combat=playing] .piece-rail>canvas{height:160px;margin:7px 0 9px}body[data-combat=playing] .hold-button{padding:9px 0}body[data-combat=playing] .hold-button canvas{height:38px;margin-top:5px}body[data-combat=playing] .battle-stats{margin-top:12px}body[data-combat=playing] .battle-stats>div{margin-bottom:12px}body[data-combat=playing] .battle-stats dd{font-size:23px}body[data-combat=playing] .battle-stats>div:last-child dd{font-size:20px}body[data-combat=playing] .touch-controls{margin-top:11px;gap:6px}
}
@media(pointer:coarse) and (min-width:761px){.touch-controls{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:16px}.touch-controls button{height:44px;padding:0;border:1px solid var(--rift-line);background:var(--rift-surface);font:22px 'Outfit',sans-serif;touch-action:none}.touch-controls [data-action=hold],.touch-controls [data-action=drop]{font-size:12px}.keyboard-note{display:none}}
@media(min-width:761px) and (max-height:600px){:root{--board-w:160px}.story-header{height:64px}.story-account-bar{padding:8px 0}.story-layout{max-width:1000px;grid-template-columns:260px minmax(0,1fr);gap:40px;padding:18px 28px}.board-layout{grid-template-columns:160px 76px;gap:20px}.piece-rail>canvas{height:110px;margin:7px 0 9px}.hold-button{padding:8px 0}.hold-button canvas{height:32px;margin-top:5px}.battle-stats{margin-top:9px}.battle-stats>div{margin-bottom:9px}.battle-stats dd{font-size:20px}.battle-stats>div:last-child{display:none}.enemy-arena{height:180px}.enemy-heading h1{font-size:28px}.enemy-sigil{display:none}.encounter-top{margin-bottom:10px}.hp-caption strong{font-size:20px}.boss-objective-panel{margin-top:10px}.skill-warning{margin-top:10px}.rift-emblem{font-size:38px;margin:10px 0}.board-overlay{padding:12px}.board-overlay h2{font-size:21px}.board-overlay p{font-size:13px;line-height:1.5;margin:9px 0 12px}.board-overlay .primary-button{font-size:14px;padding:11px}.board-overlay small{margin-top:10px}}
/* Padding belongs to the metal surround, never to the 10 by 20 cell grid. */
.board-frame{height:calc(var(--board-w) * 2 - 14px)}
@media(max-width:760px){.board-frame{height:calc(var(--board-w) * 2 - 10px)}}
/* Fit the primary encounter into a laptop viewport without reducing labels. */
@media(min-width:761px) and (min-height:601px){
 :root{--board-w:min(324px,calc((100svh - 302px)/2))}
 .story-header{height:68px}.story-account-bar{padding-top:8px;padding-bottom:8px}
 .story-layout{padding-top:18px;padding-bottom:18px}
 .enemy-arena{height:clamp(260px,calc(100svh - 580px),414px)}
 .encounter-top{margin-bottom:10px}.enemy-heading p{font-size:14px;margin-bottom:6px}.enemy-heading h1{font-size:36px}.enemy-sigil{font-size:52px}
 .boss-objective-panel{padding:8px 0;margin-top:14px}.boss-objectives{margin-top:5px}.boss-objective-heading>button{min-height:24px}
 .skill-warning{min-height:70px;margin-top:12px;padding:10px 14px}.encounter-details{margin-top:8px}.encounter-details>summary{min-height:33px}
 .piece-rail>canvas{height:196px;margin-bottom:16px}.hold-button{padding-top:12px;padding-bottom:14px}.battle-stats{margin-top:18px}.battle-stats>div{margin-bottom:18px}
 .story-footer{padding-top:11px;padding-bottom:11px}
}
@media(max-width:760px){
 body[data-combat=playing]{--board-w:min(calc(100vw - 126px),max(135px,calc((100svh - 450px)/2)),224px)}
 body[data-combat=playing][data-boss=false]{--board-w:min(calc(100vw - 126px),max(155px,calc((100svh - 345px)/2)),246px)}
 body[data-combat=playing] .battle-stats{display:none}
 body[data-combat=playing] .piece-rail>canvas{height:154px}
 body[data-combat=playing] .skill-warning:not(.active){min-height:49px}
 body[data-combat=playing] .skill-warning:not(.active) p{display:none}
 body[data-combat=playing] .boss-objective-panel{display:grid;grid-template-columns:48px minmax(0,1fr);gap:3px 9px;padding:7px 0}
 body[data-combat=playing] .boss-objective-heading{display:contents}
 body[data-combat=playing] .boss-objective-heading>button{grid-column:1;grid-row:1/3;margin:0;align-self:center}
 body[data-combat=playing] .boss-objective-heading>span{grid-column:2;grid-row:1;margin:0;justify-self:start}
 body[data-combat=playing] .boss-objectives{grid-column:2;grid-row:2;margin:0;gap:4px 14px}
 body[data-combat=playing] .boss-objective{gap:2px 5px}
}
@media(min-width:761px) and (max-height:600px){
 body[data-combat=playing]{--board-w:min(174px,calc((100svh - 94px)/2))}
 body[data-combat=playing] :is(.story-header,.story-account-bar,.story-footer,.encounter-details){display:none}
 body[data-combat=playing] .story-layout{grid-template-columns:calc(var(--board-w) + 96px) minmax(0,1fr);padding:10px 24px;gap:36px}
 body[data-combat=playing] .board-layout{grid-template-columns:var(--board-w) 76px;gap:20px}
 body[data-combat=playing] .field-heading{margin-bottom:6px;min-height:24px}.field-heading button{min-height:24px}
 body[data-combat=playing] .piece-rail>canvas{height:110px}.battle-stats>div:last-child{display:none}
 body[data-combat=playing] .hold-button{padding:6px 0}body[data-combat=playing] .battle-stats{display:none}
 body[data-combat=playing] .touch-controls{margin-top:8px;gap:4px}body[data-combat=playing] .touch-controls button{height:42px}
 body[data-combat=playing] .encounter-panel{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:5px 10px;padding-top:0}
 body[data-combat=playing] .encounter-top,body[data-combat=playing] .enemy-heading p{display:none}
 body[data-combat=playing] .enemy-heading{grid-column:1;grid-row:1;align-self:end}body[data-combat=playing] .enemy-heading h1{font-size:25px}
 body[data-combat=playing] .enemy-arena{grid-column:2;grid-row:1/4;width:100px;height:100px;margin:0;align-self:center}.arena-footer{font-size:12px}
 body[data-combat=playing] .arena-footer{display:none}body[data-combat=playing] .hp-caption{grid-column:1;grid-row:2;margin:0;font-size:12px;flex-wrap:wrap;gap:4px}
 body[data-combat=playing] .hp-track{grid-column:1;grid-row:3}
 body[data-combat=playing] .boss-objective-panel{grid-column:1/-1;grid-row:4;margin:4px 0 0;padding:8px 0}
 body[data-combat=playing] .boss-objective-heading{font-size:13px}body[data-combat=playing] .boss-objective-heading strong{display:none}
 body[data-combat=playing] .boss-objective-heading>button{margin-left:0}body[data-combat=playing] .boss-objectives{margin-top:5px}
 body[data-combat=playing] .skill-warning{grid-column:1/-1;grid-row:5;margin:5px 0 0;min-height:64px;padding:9px 12px}
 body[data-combat=playing] .additional-threats{grid-column:1/-1;grid-row:6;margin-top:3px}
}
@media(max-width:360px){
 body[data-combat=playing] .story-layout{padding-top:10px;padding-bottom:6px}
 body[data-combat=playing] .hp-caption strong{font-size:17px}
 body[data-combat=playing] .hp-caption{gap:4px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}.damage-toast.show{opacity:1;animation:none!important}.board-overlay{backdrop-filter:none}}
