@font-face{font-family:Manrope;src:url('../assets/manrope.woff2') format('woff2');font-display:swap}@font-face{font-family:Manrope;src:url('../assets/manrope-cyrillic.woff2') format('woff2');font-display:swap;unicode-range:U+0400-052F,U+2DE0-2DFF,U+A640-A69F}*{box-sizing:border-box} :root{color-scheme:dark;--bg:#15121c;--panel:#201a29;--text:#f3ede3;--muted:#aaa0b3;--line:#ffffff13;--accent:#e6cfa7;--rose:#cf9da9;--jade:#94c7be;--ease:cubic-bezier(.22,1,.36,1)}body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,system-ui,sans-serif;font-size:13px;line-height:1.6}button,a,input,select{touch-action:manipulation}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button, a{transition:background .2s,opacity .2s,transform .2s}button:hover:not(:disabled){filter:brightness(1.1)}button:active:not(:disabled){transform:translateY(1px)}.skip-link{position:fixed;top:-100px;background:var(--accent);color:var(--bg);padding:15px;z-index:100}.skip-link:focus{top:10px}.cosmos{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,#5a35522c,transparent 55%),radial-gradient(1px 1px at 19% 28%,#c6b09a 70%,transparent),radial-gradient(1px 1px at 81% 12%,#c6b09a 70%,transparent),radial-gradient(1px 1px at 90% 70%,#c6b09a 70%,transparent);z-index:-1}.topbar{height:85px;margin:0 3.1%;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{font-family:Georgia,serif;font-size:34px;letter-spacing:-1px;display:flex;align-items:center;gap:10px}.brand-moon{font-size:41px;line-height:1;color:var(--accent);transform:rotate(-20deg)}.beta{align-self:flex-start;margin-top:15px;font:8px Manrope,system-ui;letter-spacing:1.3px;border:1px solid #e6cfa733;border-radius:3px;padding:1px 4px;color:var(--accent)}.top-actions{display:flex;align-items:center;gap:10px}.connection{font-size:10px;color:var(--muted);margin-right:18px}.connection:before{content:'';display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--jade);margin-right:7px}.icon-button{height:36px;width:36px;border:1px solid var(--line);background:transparent;border-radius:50%;display:grid;place-items:center}.icon{width:21px;height:21px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.game-layout{display:grid;grid-template-columns:190px minmax(440px,730px) 265px;max-width:1440px;margin:0 auto;gap:40px;padding:40px 42px 24px}.eyebrow{font-size:9px;font-weight:600;letter-spacing:2px;color:var(--accent);margin:0 0 15px}.journey-side{padding-top:7px}.chapter-nav{display:flex;flex-direction:column;gap:7px}.chapter-button{display:flex;align-items:center;gap:12px;background:transparent;text-align:left;padding:15px 10px;border:1px solid transparent;border-radius:9px;width:100%;font-size:11px;line-height:1.5;color:var(--muted)}.chapter-button.current{background:linear-gradient(110deg,#e6cfa710,transparent);border-color:#e6cfa71a;color:var(--text)}.chapter-number{font:20px Georgia,serif;color:var(--accent);opacity:.6;width:23px;flex-shrink:0}.chapter-button.current .chapter-number{opacity:1}.chapter-title-small{display:block}.chapter-state{font-size:9px;display:block;margin-top:4px;color:#81758c}.chapter-button.current .chapter-state{color:#d0b995}.side-divider{height:1px;background:var(--line);margin:28px 0}.side-link{display:flex;align-items:center;width:100%;gap:10px;background:transparent;text-align:left;font-size:10px;color:var(--muted);padding:13px 3px}.side-link>span:last-child:not(:first-child){margin-left:auto;font-size:9px;color:#8a7d92}.side-link .icon{width:17px;height:17px;color:var(--accent)}.side-note{margin:50px 0 35px;padding:0 3px;color:var(--muted);font-size:10px}.tiny-orbit{font-size:28px;color:var(--accent);display:block}.side-note p{line-height:1.8;margin:10px 0}.side-note>span:last-child{font-size:8px;color:#76697f}.back-home{font-size:10px;color:var(--muted)}.chapter-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.chapter-heading .eyebrow{margin-bottom:9px;font-size:8px}.chapter-heading h1{font:normal clamp(26px,2.7vw,37px)/1.12 Georgia,serif;letter-spacing:-1px;margin:0 0 9px}.chapter-heading p:last-child{font-size:11px;color:var(--muted);margin:0}.chapter-info{flex-shrink:0}.resource-bar{display:flex;gap:16px;justify-content:center;margin:29px 0 0;padding:12px 18px;border:1px solid var(--line);border-radius:10px;background:#ffffff03}.resource{display:flex;align-items:center;gap:6px;font-size:10px;white-space:nowrap}.resource .icon{width:17px;height:17px;color:var(--accent)}.resource strong{font-weight:600;font-size:14px}.resource>span:last-child{color:var(--muted);font-size:9px}.resource+.resource{padding-left:15px;border-left:1px solid var(--line)}.board-stage{position:relative;padding:30px 19px 19px;max-width:620px;margin:0 auto;isolation:isolate}.board-glow{position:absolute;inset:15% 12%;background:#ae6d8515;border-radius:50%;filter:blur(35px);z-index:-1}.board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));aspect-ratio:1.12;position:relative;gap:4px;transform:perspective(1400px) rotateX(13deg) rotateZ(-4deg);filter:drop-shadow(0 25px 20px #07060b90);padding:7px;border:1px solid #d6b89125;background:#241b2b;border-radius:19px;box-shadow:0 7px 0 #0c0910,0 9px 0 #e6cfa713}.tile{position:relative;border:1px solid #ddc3a725;border-radius:6px;background:linear-gradient(145deg,#eee3d8,#c4b0aa);color:#53434b;box-shadow:0 3px 0 #74616e,inset 0 1px #ffffff80;display:flex;align-items:center;justify-content:center;padding:0;min-width:0;isolation:isolate;transition:box-shadow .18s,background .18s,transform .18s}.tile>.icon{width:25px;height:25px;opacity:.8;stroke-width:1.3}.tile-number{position:absolute;left:4px;top:0px;font-size:6px;opacity:.45}.tile-trap{background:linear-gradient(145deg,#836477,#544052);color:#f1d4df;border-color:#edb1cd25;box-shadow:0 3px 0 #392b3d,inset 0 1px #ffffff13}.tile-arcana{background:linear-gradient(145deg,#b9adcf,#8d7aab);color:#3b294f;box-shadow:0 3px 0 #625071}.tile-love{background:linear-gradient(145deg,#edc9cf,#c18e9c);color:#6e3c51}.tile-portal{background:linear-gradient(145deg,#b4d8cc,#77a49b);color:#2f5f58;box-shadow:0 3px 0 #496a66}.tile-eclipse{background:linear-gradient(145deg,#493c58,#292432);color:#e2c38e;box-shadow:0 3px 0 #17121f}.tile-start{background:linear-gradient(145deg,#e7cca5,#bc9067);color:#62432f}.tile.player-here{box-shadow:0 3px 0 #74616e,0 0 0 2px #ffebc8,0 0 30px #f5d7a770}.tile.rival-here{outline:1px solid var(--rose);outline-offset:2px}.tile.visiting{transform:translateY(-6px);box-shadow:0 7px 0 #74616e,0 0 20px #ffebc850;z-index:5}.pawn{position:absolute;left:50%;top:50%;height:30px;width:21px;border-radius:50% 50% 36% 36%;transform:translate(-50%,-85%);background:radial-gradient(circle at 35% 28%,#fff9ec,#c9a66e 58%,#72502f);box-shadow:0 5px 4px #21111b88,0 0 20px #ffebc860;border:1px solid #ffebc8;z-index:10;pointer-events:none}.pawn:before{content:'';position:absolute;inset:5px 4px 9px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff,#e4d9d7 50%,#c5b5c9);box-shadow:0 1px 2px #76544d55}.pawn:after{content:'';position:absolute;width:24px;height:6px;bottom:-2px;left:-3px;border-radius:50%;border:1px solid #dabb91;background:#a4825c}.pawn.rival{left:70%;top:70%;height:22px;width:16px;background:#be8a9c;border-color:#edc3d2;z-index:9}.pawn.rival:before{background:radial-gradient(circle at 35% 25%,#ffe6e8,#bc7d96)}.pawn.rival:after{width:18px;background:#81546b}.board-center{grid-column:2/8;grid-row:2/8;position:relative;overflow:hidden;border:1px solid #d6b89120;border-radius:9px;margin:4px;display:grid;place-items:center;background:#211a2a}.board-art{position:absolute;inset:0;background:linear-gradient(0deg,#17121de0,#17121d08 65%),url('../assets/world.webp') 74% center/cover;opacity:.8;filter:saturate(.68)}.board-center:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 60px #17121dbb;pointer-events:none}.inner-orbit{position:absolute;border:1px solid #f5d5a82e;z-index:1;border-radius:50%;width:76%;height:76%;transform:rotate(-30deg)}.orbit-two{width:88%;height:55%;transform:rotate(40deg)}.center-copy{z-index:2;position:relative;display:flex;align-items:center;flex-direction:column;text-shadow:0 2px 12px #100c18}.center-chapter{letter-spacing:3px;font-size:7px;color:var(--accent);margin-top:12px}.center-symbol{font:75px/1.25 Georgia,serif;color:#f5e3be;filter:drop-shadow(0 0 20px #ffebc840)}#center-title{font:25px Georgia,serif;letter-spacing:-.5px}.center-subtitle{font-size:8px;letter-spacing:1px;color:#e8d7c5b0;margin-top:10px}.board-pop{position:absolute;top:36%;left:50%;transform:translate(-50%,15px);opacity:0;transition:.4s var(--ease);z-index:20;pointer-events:none;white-space:nowrap;padding:10px 17px;background:#f0debd;color:#382333;font-weight:600;border-radius:50px;box-shadow:0 10px 35px #120a15a0}.board-pop.visible{opacity:1;transform:translate(-50%,0)}.turn-status{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:9px;margin:8px 4px 15px}.turn-status>span:last-child{margin-left:auto;color:#776a81}.turn-dot{width:5px;height:5px;background:var(--jade);border-radius:50%}.action-console{display:flex;gap:17px;align-items:center;padding:18px;border:1px solid #e6cfa72c;background:linear-gradient(115deg,#e6cfa70a,#ad6f9c06);border-radius:12px}.dice-pair{display:flex;align-items:center;gap:9px;flex-shrink:0}.die{width:45px;height:45px;background:linear-gradient(145deg,#f7eee2,#d2bcb3);border:1px solid #fff5e8;border-radius:10px;box-shadow:0 4px 0 #8d7681,0 8px 15px #10091970;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:8px;gap:2px;transform:rotate(-8deg)}.second-die{transform:rotate(8deg) translateY(3px)}.pip{border-radius:50%;background:#614455;box-shadow:inset 0 1px 1px #25162380}.rolling .die{animation:dice-tumble .65s var(--ease)}.rolling .second-die{animation-delay:60ms}@keyframes dice-tumble{0%{transform:rotate(-8deg) translateY(0)}25%{transform:rotate(120deg) translateY(-19px)}55%{transform:rotate(250deg) translateY(-5px)}80%{transform:rotate(355deg) translateY(-6px)}100%{transform:rotate(352deg)}}.roll-copy{flex:1;min-width:0}.roll-copy strong{display:block;font-weight:500;font-size:11px;line-height:1.6}.roll-copy>span{display:block;font-size:9px;color:var(--muted);margin-top:4px}.roll-button{background:var(--accent);color:#372832;padding:15px 20px;border-radius:8px;display:flex;align-items:center;gap:10px;font-size:11px;font-weight:650;white-space:nowrap;box-shadow:0 4px 17px #cfae7c13;flex-shrink:0}.roll-button .icon{width:18px}.key-hint{font-size:11px;opacity:.5;margin-left:3px}.hand-heading{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;color:var(--accent);margin:28px 0 10px}.hand-heading>span:last-child{letter-spacing:0;color:var(--muted)}.hand{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.arcana{background:linear-gradient(130deg,#c7a6cf0c,#ffffff02);border:1px solid #c7a6cf26;border-radius:9px;padding:15px 10px;text-align:left;position:relative;display:flex;gap:10px;align-items:center;min-width:0}.arcana.active{border-color:var(--accent);background:#e6cfa715}.arcana-art{flex-shrink:0;width:33px;height:45px;border:1px solid #c9aa884a;border-radius:4px;background:linear-gradient(#30223888,#30223888),url('../assets/cards.webp') center/cover;display:grid;place-items:center;color:#ecd8b4}.arcana .icon{width:21px;height:21px}.arcana strong{display:block;font-size:9px;font-weight:500;line-height:1.45}.arcana small{display:block;font-size:8px;color:var(--muted);margin-top:5px}.arcana-count{position:absolute;right:7px;top:4px;font-size:8px;color:var(--accent)}.game-footnote{text-align:center;font-size:8px;color:#7e7287;margin:18px 0}.insight-side{padding-top:5px}.constellation-panel{border:1px solid #c2a7c323;background:linear-gradient(140deg,#d6b0d10b,transparent);border-radius:12px;padding:20px}.panel-header{display:flex;align-items:center;justify-content:space-between}.panel-header .eyebrow{margin:0;font-size:8px;letter-spacing:1.3px}.small-moon{font-size:20px;color:var(--accent)}.constellation{display:block;width:100%;color:#d4b9983b;margin:4px 0 8px}.constellation circle{fill:#6d586c;stroke:#9a839c;stroke-width:1}.constellation circle.lit{fill:#f4d69c;stroke:#ffefc8;filter:drop-shadow(0 0 5px #e9c88d)}.constellation-panel h2{font:21px Georgia,serif;margin:0 0 9px}.constellation-panel p{color:var(--muted);font-size:10px;line-height:1.9;margin:0 0 20px}.goal-meter{height:3px;background:#ffffff0c;border-radius:3px;overflow:hidden}.goal-meter>div{height:100%;width:0;background:linear-gradient(90deg,#a5809b,#f2d5a2);transition:width .8s var(--ease)}.goal-count{display:block;font-size:9px;color:var(--accent);margin-top:9px}.rival-panel{margin-top:15px;padding:15px;border:1px solid var(--line);border-radius:9px;font-size:10px;color:var(--muted)}.rival-panel strong{color:var(--rose);font-size:11px}.rival-panel .icon{width:15px;height:15px}.chronicle-heading{display:flex;justify-content:space-between;align-items:center;margin-top:28px}.chronicle-heading h2{font:20px Georgia,serif;margin:0}.chronicle-heading>span{color:var(--accent)}.chronicle{height:210px;overflow:auto;scrollbar-width:thin;scrollbar-color:#5b455c transparent;padding-right:4px}.event{border-left:1px solid #c2a7c326;padding:0 0 15px 14px;margin-left:4px;position:relative;margin-top:16px;animation:event-in .35s var(--ease)}.event:before{content:'';position:absolute;width:4px;height:4px;border:1px solid #ad929c;border-radius:50%;left:-3px;top:6px;background:var(--bg)}.event strong{font-size:10px;font-weight:500;display:block}.event p{font-size:9px;color:var(--muted);margin:5px 0 0;line-height:1.8}.event.ai strong{color:#be8a9c}.event.reward strong,.event.finish strong{color:var(--accent)}@keyframes event-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.quiet-button{display:flex;justify-content:space-between;align-items:center;width:100%;background:transparent;color:var(--muted);font-size:10px;padding:14px 0;border-top:1px solid var(--line);margin-top:15px}.modal{background:#211a29;color:var(--text);border:1px solid #d6b89138;border-radius:18px;padding:0;width:min(580px,calc(100% - 28px));max-height:88dvh;overflow:auto;box-shadow:0 30px 120px #08040dbb}.modal::backdrop{background:#100c18b8;backdrop-filter:blur(9px)}.modal-inner{padding:34px;position:relative}.modal-close{position:absolute;right:15px;top:15px;color:var(--muted);background:transparent;padding:8px;font-size:23px;line-height:1}.modal .eyebrow{margin-bottom:14px}.modal h2{font:normal 36px/1.12 Georgia,serif;letter-spacing:-.8px;margin:0 30px 14px 0}.modal p{color:var(--muted);font-size:12px;line-height:1.85}.modal-art{height:140px;background:linear-gradient(90deg,#211a29,#211a2910),url('../assets/world.webp') 70% 55%/cover;border-bottom:1px solid var(--line)}.modal-intro{margin-top:0}.field-label{display:block;letter-spacing:1.5px;font-size:8px;color:var(--accent);margin:24px 0 10px}.mode-options,.hero-options{display:flex;gap:9px}.option{background:#ffffff03;border:1px solid var(--line);padding:12px;border-radius:8px;text-align:left;flex:1;font-size:11px;line-height:1.5}.option small{display:block;color:var(--muted);font-size:9px;margin-top:6px}.option.selected{border-color:#e6cfa76b;background:#e6cfa70b}.option .icon{display:block;margin:0 0 7px}.primary{background:var(--accent);color:#362531;border-radius:8px;padding:15px 23px;font-weight:600;display:inline-flex;justify-content:center;align-items:center;gap:10px;font-size:12px}.primary.wide{width:100%;margin-top:24px}.secondary{background:transparent;border:1px solid #c7a6cf38;border-radius:8px;padding:12px 18px;color:var(--text);font-size:11px}.secondary.wide{width:100%;margin-top:10px}.modal-note{font-size:9px!important;text-align:center;margin-bottom:0}.modal .choice-list{display:flex;flex-direction:column;gap:10px;margin-top:25px}.choice-button{border:1px solid #e6cfa72c;background:#ffffff03;padding:15px 18px;border-radius:9px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:15px}.choice-button strong{font-size:12px;display:block;font-weight:500}.choice-button small{display:block;color:var(--accent);font-size:10px;margin-top:5px}.choice-button>span:last-child{font-size:22px;color:var(--accent)}.story-quote{font:italic 21px/1.5 Georgia,serif!important;color:var(--accent)!important;border-left:1px solid #e6cfa740;padding-left:20px;margin:25px 0}.rule-row{display:flex;gap:15px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--line)}.rule-row .icon{flex-shrink:0;color:var(--accent);margin-top:3px}.rule-row strong{font-size:12px;font-weight:500}.rule-row p{font-size:11px;margin:5px 0}.result-symbol{font:70px Georgia,serif;color:var(--accent);margin-bottom:10px}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:23px}.result-stats strong{font:27px Georgia,serif;display:block}.result-stats span{font-size:9px;color:var(--muted)}.cosmetic-row{display:flex;justify-content:space-between;align-items:center;gap:20px;border:1px solid var(--line);border-radius:9px;margin-top:12px;padding:15px}.cosmetic-row h3{font-size:12px;margin:0;font-weight:500}.cosmetic-row p{font-size:10px;margin:4px 0}.swatch{width:34px;height:45px;border:1px solid #d8be9380;border-radius:5px;background:linear-gradient(140deg,#4e3e5d,#bc9a72);flex-shrink:0}.swatch.rose{background:linear-gradient(140deg,#563249,#d899aa)}.swatch.jade{background:linear-gradient(140deg,#234b47,#7bbaac)}.cosmetic-copy{flex:1}.cosmetic-row button{font-size:10px;padding:9px 11px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);max-width:calc(100% - 30px);padding:12px 22px;background:#ecd9b9;color:#392936;border-radius:9px;font-size:11px;z-index:100;opacity:0;pointer-events:none;transition:.3s}.toast.visible{opacity:1;transform:translate(-50%,0)}body.theme-rose{--accent:#eac2cd;--rose:#c7a2d9}body.theme-jade{--accent:#b4dbcf;--rose:#cba1b5}.story-inline{padding:15px;border:1px solid var(--line);border-radius:8px}.mobile-menu-links{display:none}.modal .install-steps{font-size:12px;color:var(--muted);line-height:2}.danger{color:#e7acb6!important}.confirm-row{display:flex;gap:10px;margin-top:20px}.confirm-row>*{flex:1}.menu-list{display:flex;flex-direction:column;gap:10px}.menu-list>button{text-align:left}.file-input{width:100%;font-size:11px;margin:15px 0}.chapter-badges{display:flex;gap:8px;margin:16px 0}.chapter-badges span{font-size:9px;border:1px solid var(--line);padding:4px 10px;border-radius:20px;color:var(--accent)}
@media(min-width:1600px){.game-layout{padding-top:48px;gap:55px;grid-template-columns:200px minmax(500px,740px) 280px;max-width:1500px}.board-stage{max-width:650px}.topbar{height:95px}.insight-side{padding-top:15px}}
@media(max-width:1240px){.game-layout{gap:25px;padding:30px 25px;grid-template-columns:160px minmax(420px,1fr) 230px}.resource-bar{gap:9px}.resource+.resource{padding-left:9px}.action-console{gap:12px;padding:15px}.roll-copy strong{font-size:10px}.roll-button{padding:15px}.key-hint{display:none}.arcana{padding:15px 8px;gap:7px}.arcana-art{width:25px;height:37px}.arcana strong{font-size:8px}.constellation-panel{padding:17px}.constellation-panel h2{font-size:19px}}
@media(max-width:1080px){.journey-side{display:none}.game-layout{grid-template-columns:minmax(420px,1fr) 245px;gap:30px;max-width:1000px}.mobile-menu-links{display:block}.topbar{margin:0 25px}.board-stage{padding-top:22px}.chapter-heading h1{font-size:34px}}
@media(max-width:760px){.topbar{height:66px;margin:0 19px}.brand{font-size:29px}.brand-moon{font-size:34px}.beta{font-size:7px;margin-top:12px}.top-actions{gap:7px}.icon-button{height:32px;width:32px}.icon-button .icon{width:18px}.connection{display:none}.game-layout{display:flex;flex-direction:column;padding:24px 19px 18px;gap:0}.play-area{width:100%;max-width:590px;margin:auto}.chapter-heading h1{font-size:29px}.chapter-heading .eyebrow{font-size:7px;letter-spacing:1.7px;margin-bottom:8px}.chapter-heading p:last-child{font-size:10px}.chapter-info{height:30px;width:30px}.resource-bar{gap:12px;padding:10px 9px;margin-top:20px}.resource .icon{width:15px;height:15px}.resource strong{font-size:13px}.resource>span:last-child{font-size:8px}.resource+.resource{padding-left:12px}.board-stage{padding:25px 4px 13px;max-width:560px}.board{gap:3px;padding:5px;border-radius:14px;aspect-ratio:1.05;transform:perspective(1000px) rotateX(10deg) rotateZ(-3deg)}.tile{border-radius:5px}.tile>.icon{width:22px;height:22px}.board-center{margin:3px}.center-symbol{font-size:60px}.center-chapter{font-size:6px}#center-title{font-size:24px}.center-subtitle{font-size:7px}.pawn{width:18px;height:26px}.pawn:after{width:21px}.turn-status{margin:9px 1px 13px;font-size:8px}.action-console{padding:15px 12px;gap:12px;flex-wrap:wrap}.die{width:41px;height:41px;padding:7px;border-radius:9px}.dice-pair{gap:8px}.roll-copy strong{font-size:10px}.roll-copy>span{font-size:9px}.roll-button{width:100%;justify-content:center;padding:14px;font-size:12px;margin-top:3px}.roll-button .key-hint{display:none}.hand-heading{margin-top:23px}.hand{gap:7px}.arcana{display:block;padding:12px 9px 11px;min-height:101px}.arcana-art{width:27px;height:36px;margin-bottom:9px}.arcana strong{font-size:9px}.arcana small{font-size:8px}.arcana-count{top:8px;right:9px;font-size:9px}.game-footnote{font-size:7px;margin-bottom:15px}.insight-side{max-width:590px;width:100%;margin:10px auto 0;padding:0}.constellation-panel{display:grid;grid-template-columns:92px 1fr;padding:17px;column-gap:16px;border-radius:11px}.panel-header{grid-column:1/3;margin-bottom:8px}.panel-header .eyebrow{font-size:8px}.small-moon{font-size:16px}.constellation{grid-column:1;grid-row:2/6;width:92px;margin:4px 0}.constellation-panel h2{font-size:22px;grid-column:2;margin-bottom:5px}.constellation-panel p{font-size:9px;grid-column:2;margin:0 0 10px}.goal-meter,.goal-count{grid-column:2}.goal-count{font-size:8px;margin-top:7px}.chronicle-heading{margin-top:23px}.chronicle-heading h2{font-size:21px}.chronicle{height:160px;display:flex;flex-direction:column}.event{margin-top:13px;padding-bottom:8px}.event strong{font-size:10px}.event p{font-size:9px}.quiet-button{font-size:10px;margin-top:10px}.modal-inner{padding:29px 23px}.modal h2{font-size:31px}.modal p{font-size:11px}.modal-art{height:100px}.hero-options{gap:7px}.option{padding:12px 10px;font-size:10px}.option small{font-size:8px}.modal .eyebrow{font-size:8px}.choice-button{padding:14px}.choice-button strong{font-size:11px}.choice-button small{font-size:9px}.modal-note{font-size:8px!important}.toast{font-size:10px;text-align:center;min-width:240px}.result-stats strong{font-size:24px}.story-quote{font-size:19px!important}.topbar .top-actions .icon-button{background:#ffffff02}.board-pop{font-size:11px}.game-layout{padding-bottom:calc(18px + env(safe-area-inset-bottom))}}
@media(max-width:370px){.resource-bar{gap:8px}.resource+.resource{padding-left:8px}.resource>span:last-child{font-size:7px}.focus-resource>span:last-child{display:none}.chapter-heading h1{font-size:26px}.tile>.icon{width:19px;height:19px}.tile-number{font-size:5px}.board-stage{padding-left:0;padding-right:0}.center-symbol{font-size:51px}#center-title{font-size:21px}.arcana strong{font-size:8px}.arcana small{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.board{transform:none}.toast{transform:translateX(-50%)}.board-pop{transform:translateX(-50%)}}
@media(min-width:761px){.board-stage{width:min(100%,calc((100dvh - 460px)*1.12));min-width:340px;max-width:590px}.board-center #center-title{font-size:clamp(19px,1.6vw,25px)}.board-center .center-symbol{font-size:clamp(48px,4.2vw,70px)}}

/* Quiet, tactile surfaces. Keep focus and selected state distinct from decoration. */
:root {
  --surface-soft: rgba(234, 213, 240, .045);
  --shadow-soft: 0 8px 24px rgba(5, 3, 12, .13), 0 2px 6px rgba(5, 3, 12, .07);
  --shadow-raised: 0 16px 36px rgba(5, 3, 12, .2), 0 3px 10px rgba(5, 3, 12, .1);
}
body { -webkit-font-smoothing: antialiased; }
button, a { transition: background .22s, opacity .22s, transform .22s var(--ease), box-shadow .22s var(--ease); }
button:hover:not(:disabled) { filter: none; }
button:disabled { opacity: .5; }
.beta { border-color: transparent; border-radius: 6px; background: rgba(230, 207, 167, .055); }
.icon-button {
  width: 42px;
  height: 42px;
  border-color: transparent;
  background: rgba(235, 218, 243, .04);
  box-shadow: 0 4px 12px rgba(5, 3, 12, .09);
}
.chapter-button { border-radius: 15px; border-color: transparent; }
.chapter-button.current { border-color: transparent; background: linear-gradient(115deg, rgba(230, 207, 167, .09), rgba(230, 207, 167, .025)); box-shadow: var(--shadow-soft); }
.side-link { min-height: 44px; border-radius: 12px; padding-inline: 8px; }
.back-home { display: inline-flex; align-items: center; min-height: 44px; border-radius: 10px; }
.resource-bar { border-color: transparent; border-radius: 18px; background: rgba(235, 218, 243, .04); box-shadow: var(--shadow-soft); }
.resource + .resource { border-left-color: rgba(255, 255, 255, .055); }
.board-glow { opacity: .35; }
.board {
  border-color: transparent;
  border-radius: 23px;
  background: linear-gradient(145deg, #302537, #211927);
  filter: drop-shadow(0 17px 20px rgba(5, 3, 12, .35));
  box-shadow: 0 5px 0 rgba(9, 6, 15, .65), inset 0 1px 0 rgba(247, 225, 252, .035);
}
.tile { border-color: transparent; border-radius: 9px; box-shadow: 0 2px 0 #78636f, 0 4px 6px rgba(9, 6, 15, .16), inset 0 1px 0 rgba(255, 255, 255, .35); }
.tile-trap { border-color: transparent; box-shadow: 0 2px 0 #392b3d, 0 4px 6px rgba(9, 6, 15, .16), inset 0 1px 0 rgba(255, 255, 255, .07); }
.tile-arcana { box-shadow: 0 2px 0 #625071, 0 4px 6px rgba(9, 6, 15, .16), inset 0 1px 0 rgba(255, 255, 255, .17); }
.tile-portal { box-shadow: 0 2px 0 #496a66, 0 4px 6px rgba(9, 6, 15, .16), inset 0 1px 0 rgba(255, 255, 255, .19); }
.tile-eclipse { box-shadow: 0 2px 0 #17121f, 0 4px 6px rgba(9, 6, 15, .16), inset 0 1px 0 rgba(255, 255, 255, .07); }
.tile.player-here { box-shadow: 0 2px 0 #74616e, 0 0 0 1.5px rgba(255, 235, 200, .8), 0 5px 10px rgba(9, 6, 15, .2); }
.tile.visiting { transform: translateY(-4px); box-shadow: 0 6px 0 #74616e, 0 8px 12px rgba(9, 6, 15, .24); }
.tile:focus-visible { z-index: 12; outline-offset: 2px; }
.pawn { box-shadow: 0 4px 5px rgba(33, 17, 27, .45), 0 0 10px rgba(255, 235, 200, .14); }
.board-center { border: 0; border-radius: 14px; background: #241c2e; }
.board-center::after { box-shadow: inset 0 0 40px rgba(23, 18, 29, .52); }
.inner-orbit { border-color: rgba(245, 213, 168, .12); }
.center-symbol { filter: drop-shadow(0 3px 8px rgba(9, 6, 15, .22)); }
.board-pop { box-shadow: 0 10px 26px rgba(9, 5, 17, .27); }
.action-console { border-color: transparent; border-radius: 21px; background: linear-gradient(120deg, rgba(230, 207, 167, .065), rgba(199, 166, 207, .035)); box-shadow: var(--shadow-soft); }
.die { border-color: transparent; border-radius: 12px; box-shadow: 0 3px 0 #8d7681, 0 7px 12px rgba(16, 9, 25, .25), inset 0 1px 0 rgba(255, 255, 255, .45); }
.roll-button, .primary { min-height: 50px; border-radius: 15px; box-shadow: 0 6px 17px rgba(8, 4, 15, .13), inset 0 1px 0 rgba(255, 255, 255, .22); }
.secondary { min-height: 46px; border-color: transparent; border-radius: 14px; background: rgba(230, 214, 238, .055); box-shadow: 0 5px 15px rgba(5, 3, 12, .1); }
.arcana { border-color: transparent; border-radius: 16px; background: linear-gradient(130deg, rgba(199, 166, 207, .075), rgba(234, 213, 240, .025)); box-shadow: 0 7px 20px rgba(5, 3, 12, .12); }
.arcana.active { border-color: transparent; background: rgba(230, 207, 167, .1); box-shadow: inset 0 0 0 1px rgba(230, 207, 167, .4), 0 7px 18px rgba(5, 3, 12, .14); }
.arcana-art { border-color: rgba(201, 170, 136, .18); border-radius: 8px; box-shadow: 0 3px 7px rgba(5, 3, 12, .13); }
.constellation-panel { border-color: transparent; border-radius: 22px; background: linear-gradient(140deg, rgba(214, 176, 209, .065), rgba(234, 213, 240, .018)); box-shadow: var(--shadow-soft); }
.constellation circle.lit { filter: drop-shadow(0 0 3px rgba(233, 200, 141, .5)); }
.goal-meter { height: 4px; border-radius: 99px; }
.goal-meter > div { border-radius: inherit; }
.rival-panel { border-color: transparent; border-radius: 16px; background: rgba(207, 157, 169, .035); box-shadow: var(--shadow-soft); }
.quiet-button { min-height: 48px; border-top-color: rgba(255, 255, 255, .055); border-radius: 0 0 12px 12px; }
.modal {
  border: 0;
  border-radius: 28px;
  background: linear-gradient(145deg, #2a2133, #211a29 74%);
  max-height: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 32px);
  box-shadow: 0 24px 70px rgba(4, 2, 10, .38), 0 5px 18px rgba(4, 2, 10, .16);
  overscroll-behavior: contain;
}
.modal[open] { animation: modal-arrive .3s var(--ease) both; }
.modal::backdrop { background: rgba(16, 12, 24, .64); backdrop-filter: blur(7px); }
.modal-inner { padding: 36px; }
.modal-close { width: 44px; height: 44px; display: grid; place-items: center; padding: 0; border-radius: 50%; right: 10px; top: 10px; background: rgba(241, 220, 248, .045); }
.modal-art { border-bottom: 0; border-radius: 28px 28px 0 0; }
.option { min-height: 60px; border-color: transparent; border-radius: 15px; background: rgba(238, 218, 245, .045); box-shadow: 0 5px 16px rgba(5, 3, 12, .11); }
.option.selected { border-color: transparent; background: rgba(230, 207, 167, .09); box-shadow: inset 0 0 0 1px rgba(230, 207, 167, .38), 0 5px 16px rgba(5, 3, 12, .11); }
.choice-button { min-height: 62px; border-color: transparent; border-radius: 16px; background: rgba(238, 218, 245, .045); box-shadow: 0 5px 16px rgba(5, 3, 12, .11); }
.cosmetic-row { border-color: transparent; border-radius: 17px; background: rgba(238, 218, 245, .035); box-shadow: 0 5px 16px rgba(5, 3, 12, .09); }
.swatch { border-color: rgba(216, 190, 147, .25); border-radius: 9px; box-shadow: 0 4px 9px rgba(5, 3, 12, .15); }
.cosmetic-row button { min-height: 44px; border-radius: 13px; }
.story-inline { border-color: transparent; border-radius: 17px; background: rgba(238, 218, 245, .03); }
.chapter-badges { flex-wrap: wrap; }
.chapter-badges span { border-color: transparent; background: rgba(230, 207, 167, .055); }
.toast { bottom: calc(22px + env(safe-area-inset-bottom, 0px)); border-radius: 17px; box-shadow: 0 10px 28px rgba(9, 5, 17, .24); }
.menu-list > button { min-height: 48px; border-radius: 14px; }
.file-input { min-height: 44px; border-radius: 12px; color: var(--muted); }
.file-input::file-selector-button { min-height: 44px; border: 0; border-radius: 12px; padding: 10px 13px; margin-right: 10px; background: rgba(238, 218, 245, .07); color: var(--text); font: inherit; }
button:focus-visible, a:focus-visible, select:focus-visible, input:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
.tile:focus-visible { outline-offset: 2px; }
.rolling .die { animation: dice-tumble .62s var(--ease); }
.rolling .second-die { animation-name: dice-tumble-second; animation-delay: 45ms; }
@keyframes dice-tumble { 0% { transform: rotate(-8deg) translateY(0); } 25% { transform: rotate(100deg) translateY(-13px); } 56% { transform: rotate(240deg) translateY(-3px); } 82% { transform: rotate(344deg) translateY(-5px); } 100% { transform: rotate(352deg) translateY(0); } }
@keyframes dice-tumble-second { 0% { transform: rotate(8deg) translateY(3px); } 25% { transform: rotate(122deg) translateY(-10px); } 56% { transform: rotate(256deg) translateY(0); } 82% { transform: rotate(360deg) translateY(-2px); } 100% { transform: rotate(368deg) translateY(3px); } }
@keyframes modal-arrive { from { opacity: 0; transform: translateY(8px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@media (hover: hover) and (pointer: fine) {
  .icon-button:hover, .side-link:hover, .option:hover:not(:disabled), .choice-button:hover:not(:disabled), .secondary:hover:not(:disabled) { background: rgba(238, 218, 245, .085); }
  .arcana:hover:not(:disabled) { transform: translateY(-2px); box-shadow: var(--shadow-raised); }
  .roll-button:hover:not(:disabled), .primary:hover:not(:disabled) { background: var(--accent); filter: brightness(1.04); box-shadow: 0 9px 22px rgba(8, 4, 15, .19), inset 0 1px 0 rgba(255, 255, 255, .25); }
}
@media (hover: none) { .arcana:hover:not(:disabled) { transform: none; } }
@media (max-width: 760px) {
  .topbar { height: calc(74px + env(safe-area-inset-top, 0px)); padding-top: env(safe-area-inset-top, 0px); margin-inline: max(18px, env(safe-area-inset-left, 0px)) max(18px, env(safe-area-inset-right, 0px)); }
  .top-actions { gap: 6px; }
  .topbar .top-actions .icon-button, .chapter-info { width: 44px; height: 44px; background: rgba(235, 218, 243, .04); }
  .icon-button .icon { width: 19px; height: 19px; }
  .brand { font-size: 28px; gap: 7px; }
  .brand-moon { font-size: 33px; }
  .beta { letter-spacing: .9px; padding-inline: 3px; }
  .game-layout { padding: 20px max(18px, env(safe-area-inset-right, 0px)) calc(24px + env(safe-area-inset-bottom, 0px)) max(18px, env(safe-area-inset-left, 0px)); }
  .chapter-heading { gap: 10px; }
  .chapter-heading h1 { font-size: clamp(26px, 7.1vw, 30px); line-height: 1.17; letter-spacing: -.8px; }
  .chapter-heading p:last-child { font-size: 11px; line-height: 1.65; }
  .chapter-heading .eyebrow { font-size: 8px; letter-spacing: 1.35px; }
  .resource-bar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; padding: 9px 5px; margin-top: 18px; border-radius: 18px; }
  .resource { display: grid; grid-template-columns: 16px max-content; justify-content: center; align-content: center; column-gap: 5px; row-gap: 2px; min-width: 0; line-height: 1.35; }
  .resource > span:first-child { grid-column: 1; grid-row: 1; }
  .resource strong { grid-column: 2; grid-row: 1; font-size: 14px; }
  .resource > span:last-child { grid-column: 1 / -1; grid-row: 2; display: block; font-size: 10px; text-align: center; }
  .resource + .resource { border-left: 0; padding-left: 0; }
  .resource .icon { width: 15px; height: 15px; }
  .board-stage { padding-top: 22px; padding-bottom: 11px; }
  .board { border-radius: 20px; gap: 3px; padding: 6px; }
  .tile { border-radius: 8px; }
  .board-center { border-radius: 12px; margin: 3px; }
  .tile > .icon { width: 21px; height: 21px; }
  .tile-number { font-size: 6px; left: 4px; top: 1px; opacity: .55; }
  .turn-status { font-size: 9px; line-height: 1.5; margin-top: 10px; }
  .action-console { padding: 16px 13px 14px; gap: 12px; border-radius: 21px; }
  .roll-copy strong { font-size: 11px; line-height: 1.65; }
  .roll-copy > span { font-size: 10px; line-height: 1.6; }
  .die { width: 42px; height: 42px; border-radius: 11px; }
  .roll-button { min-height: 53px; font-size: 13px; border-radius: 15px; }
  .hand-heading { font-size: 9px; letter-spacing: 1.2px; margin-top: 25px; }
  .hand-heading > span:last-child { font-size: 9px; }
  .hand { gap: 8px; }
  .arcana { min-height: 128px; padding: 13px 9px 12px; border-radius: 16px; }
  .arcana-art { width: 29px; height: 39px; margin-bottom: 11px; border-radius: 8px; }
  .arcana strong { font-size: 10px; line-height: 1.45; overflow-wrap: anywhere; }
  .arcana small { font-size: 9px; line-height: 1.5; }
  .arcana-count { font-size: 10px; top: 9px; right: 9px; }
  .game-footnote { font-size: 9px; line-height: 1.8; color: #998ba5; margin: 18px 6px; }
  .insight-side { margin-top: 14px; }
  .constellation-panel { padding: 19px 16px; border-radius: 21px; grid-template-columns: 82px minmax(0, 1fr); column-gap: 13px; }
  .constellation { width: 82px; }
  .constellation-panel h2 { font-size: 21px; line-height: 1.2; }
  .constellation-panel p { font-size: 11px; line-height: 1.75; }
  .goal-count { font-size: 10px; }
  .rival-panel { font-size: 11px; line-height: 1.75; padding: 16px; }
  .event strong { font-size: 11px; line-height: 1.6; }
  .event p { font-size: 11px; line-height: 1.75; }
  .chronicle { height: 195px; }
  .quiet-button { min-height: 50px; font-size: 11px; }
  .modal { width: calc(100% - 24px); border-radius: 26px; max-height: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 24px); }
  .modal-inner { padding: 32px 22px 25px; }
  .modal h2 { font-size: 30px; line-height: 1.16; margin-right: 30px; }
  .modal p, .modal .install-steps { font-size: 12px; line-height: 1.85; }
  .modal .eyebrow { font-size: 8px; padding-right: 30px; }
  .modal-art { height: 110px; border-radius: 26px 26px 0 0; }
  .mode-options, .hero-options { gap: 8px; }
  .option { min-height: 74px; padding: 13px 10px; font-size: 11px; }
  .option small { font-size: 10px; line-height: 1.5; }
  .choice-button { min-height: 64px; padding: 15px; border-radius: 16px; }
  .choice-button strong { font-size: 12px; line-height: 1.65; }
  .choice-button small { font-size: 11px; line-height: 1.6; }
  .modal-note { font-size: 10px !important; line-height: 1.7 !important; }
  .rule-row { gap: 12px; }
  .rule-row strong, .rule-row p { font-size: 12px; line-height: 1.8; }
  .story-quote { font-size: 20px !important; border-left-color: rgba(230, 207, 167, .22); padding-left: 16px; }
  .cosmetic-row { gap: 12px; padding: 15px 12px; }
  .cosmetic-row h3 { font-size: 12px; }
  .cosmetic-row p { font-size: 11px; }
  .cosmetic-row button { font-size: 11px; padding-inline: 12px; }
  .confirm-row { flex-wrap: wrap; }
  .confirm-row > * { min-width: 120px; }
  .toast { font-size: 11px; line-height: 1.7; padding: 13px 18px; border-radius: 16px; max-width: calc(100% - 32px); }
}
@media (max-width: 370px) {
  .brand { font-size: 26px; gap: 5px; }
  .brand-moon { font-size: 31px; }
  .top-actions { gap: 4px; }
  .topbar .top-actions .icon-button { width: 44px; height: 44px; }
  .tile > .icon { width: 19px; height: 19px; }
  .arcana { padding-inline: 8px; }
  .arcana strong { font-size: 10px; }
  .arcana small { font-size: 9px; }
  .hero-options { flex-wrap: wrap; }
  .hero-options > .option { flex-basis: calc(50% - 8px); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  button:active:not(:disabled), .arcana:hover:not(:disabled), .tile.visiting { transform: none; }
  .board { transform: none; }
  .toast, .board-pop { transform: translateX(-50%); }
}

/* Landscape devices may exceed the mobile breakpoint while retaining a notch. */
.topbar { padding-top: env(safe-area-inset-top, 0px); margin-left: max(3.1%, env(safe-area-inset-left, 0px)); margin-right: max(3.1%, env(safe-area-inset-right, 0px)); }
.game-layout { padding-left: max(42px, env(safe-area-inset-left, 0px)); padding-right: max(42px, env(safe-area-inset-right, 0px)); padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px)); }
.modal { left: env(safe-area-inset-left, 0px); right: env(safe-area-inset-right, 0px); top: env(safe-area-inset-top, 0px); bottom: env(safe-area-inset-bottom, 0px); margin: auto; width: min(580px, calc(100% - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px) - 24px)); }
@media (max-width: 1240px) { .game-layout { padding-left: max(25px, env(safe-area-inset-left, 0px)); padding-right: max(25px, env(safe-area-inset-right, 0px)); } }
@media (max-width: 1080px) { .topbar { margin-left: max(25px, env(safe-area-inset-left, 0px)); margin-right: max(25px, env(safe-area-inset-right, 0px)); } }
@media (max-width: 760px) {
  .topbar { margin-left: max(18px, env(safe-area-inset-left, 0px)); margin-right: max(18px, env(safe-area-inset-right, 0px)); }
  .game-layout { padding-left: max(18px, env(safe-area-inset-left, 0px)); padding-right: max(18px, env(safe-area-inset-right, 0px)); }
}

/* Transient notices belong below navigation, clear of dice, cards and roll CTA. */
@media (max-width: 760px) {
  .toast {
    top: calc(84px + env(safe-area-inset-top, 0px));
    bottom: auto;
    left: calc(50% + (env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)) / 2);
    width: max-content;
    min-width: 0;
    max-width: calc(100% - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px) - 36px);
    padding: 10px 14px;
    border-radius: 14px;
    font-size: 11px;
    line-height: 1.5;
    text-align: center;
    pointer-events: none;
    transform: translate(-50%, -6px);
    box-shadow: 0 8px 22px rgba(9, 5, 17, .2);
  }
  .toast.visible { transform: translate(-50%, 0); }
}
@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  .toast, .toast.visible { transform: translateX(-50%); }
}

/* Adventure release: companions, chapter identity and three readable stages. */
.hero-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.hero-options .hero-option { position:relative; display:flex; flex-direction:column; padding:0; overflow:hidden; text-align:left; border:0; border-radius:18px; min-width:0; background:#17131f; box-shadow:0 7px 18px #09050e30; }
.hero-option img { width:100%; height:clamp(100px,18dvh,162px); object-fit:cover; object-position:center 24%; display:block; transition:filter .3s,transform .4s; filter:saturate(.72) brightness(.82); }
.hero-option > span:not(.hero-selected) { padding:10px 12px; font-size:14px; }
.hero-option small { font-size:11px; margin-top:3px; color:#b9adbf; }
.hero-options .hero-option.selected { background:#3a2e40; box-shadow:0 8px 24px #09050e45,0 0 0 2px #d7bd90; }
.hero-option.selected img { filter:saturate(.95) brightness(1); }
.hero-selected { display:none; position:absolute; right:8px; top:8px; background:#ead4ae; color:#2d2232; border-radius:50%; width:24px; height:24px; text-align:center; font-weight:700; line-height:24px; box-shadow:0 3px 10px #0003; }
.hero-option.selected .hero-selected { display:block; }
.hero-detail { margin:16px 0 20px; padding:14px 16px; border-radius:16px; background:#ffffff04; min-height:88px; }
.hero-detail strong { display:block; color:var(--accent); font:18px/1.45 Georgia,serif; }
.hero-detail p { font-size:12px; line-height:1.7; color:#c3b7ca; margin:6px 0 0; }
.resume-companion { display:flex; align-items:center; gap:18px; background:#ffffff04; border-radius:20px; padding:12px; margin:20px 0; }
.resume-companion img { width:82px; height:105px; object-fit:cover; object-position:center 20%; border-radius:14px; }
.resume-companion strong { color:var(--accent); font:21px Georgia,serif; }
.resume-companion p { font-size:12px; margin:8px 0 0; }
.companion-mini { position:absolute; z-index:4; top:10px; left:10px; display:flex; align-items:center; gap:6px; padding:5px 8px 5px 5px; border-radius:22px; background:#17121dcc; box-shadow:0 4px 12px #08050d40; color:#eee4d5; }
.companion-mini img { width:29px; height:29px; border-radius:50%; object-fit:cover; object-position:center 20%; }
.companion-mini span { font-size:10px; line-height:1.4; }
.companion-mini small { display:block; font-size:8px; color:#d5c4cd; }
.journey-progress { margin:18px 0 0; padding:16px; border-radius:20px; background:linear-gradient(130deg,#d4b08a0b,#b78ed006); box-shadow:0 8px 24px #09050e19; }
.objective-strip { display:flex; flex-wrap:wrap; gap:9px 16px; }
.objective { font-size:11px; color:#c2b5cb; display:flex; align-items:center; gap:5px; }
.objective strong { font-size:12px; color:var(--text); margin-left:3px; }
.objective.complete { color:#acd6c6; }
.stage-rail { display:flex; align-items:center; gap:9px; margin-top:13px; }
.stage-badge { display:flex; align-items:center; justify-content:center; gap:8px; flex:1; min-height:44px; background:#ffffff04; border-radius:13px; color:#cbbbd2; }
.stage-badge > span { color:var(--accent); font:18px Georgia,serif; }
.stage-badge small { font-size:10px; }
.stage-badge.claimed { background:#9bc9b111; color:#aed2c0; }
.stage-badge.pending { background:#dbc39a1a; box-shadow:0 3px 16px #09050e30; }
.phase-label { font-size:10px; color:var(--accent); padding-left:4px; }
.chapter-1 .board { background:#182828; transform:perspective(1400px) rotateX(11deg) rotateZ(3deg); box-shadow:0 7px 0 #0a1214,0 18px 35px #02060950; }
.chapter-1 .tile-star { background:linear-gradient(145deg,#d0ded4,#9bb6b0); color:#294b48; }
.chapter-1 .tile-fortune { background:linear-gradient(145deg,#dec5a2,#ae8864); color:#4d3727; }
.chapter-1 .tile-portal { background:linear-gradient(145deg,#abc9ce,#648f9c); }
.chapter-2 .board { background:#222034; transform:perspective(1400px) rotateX(10deg) rotateZ(-2deg); box-shadow:0 7px 0 #0e0b19,0 18px 38px #02010a60; }
.chapter-2 .tile-star { background:linear-gradient(145deg,#e0dcec,#a99cbe); color:#403650; }
.chapter-2 .tile-trap { background:linear-gradient(145deg,#5c506f,#342c49); color:#e6d5f2; }
.chapter-2 .tile-portal { background:linear-gradient(145deg,#b6acd9,#7d72aa); color:#302a4d; }
.chapter-2 .center-symbol { font-size:68px; }
.pawn.hopping { animation:pawn-step .23s cubic-bezier(.2,.6,.3,1); }
@keyframes pawn-step { 0%,100% { transform:translate(-50%,-85%); } 45% { transform:translate(-50%,-108%); } }
.vault-intro { font-size:12px; color:#c9b7cc; margin:15px 0; }
.vault-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.vault-options .vault-choice { display:flex; flex-direction:column; align-items:center; justify-content:flex-start; text-align:center; gap:13px; padding:18px 12px; min-height:200px; background:linear-gradient(145deg,#e6cfa709,#8f6b9b08); border-radius:20px; box-shadow:0 7px 20px #09050e25; }
.vault-choice strong { font-size:13px; line-height:1.45; }
.vault-choice small { display:block; margin-top:6px; color:#d3c2d5; font-size:11px; line-height:1.5; }
.vault-choice .choice-arrow { display:none; }
.vault-card { width:57px; height:79px; display:block; flex-shrink:0; position:relative; transform-style:preserve-3d; transition:transform .42s cubic-bezier(.2,.65,.3,1); }
.vault-back,.vault-front { position:absolute; inset:0; display:grid; place-items:center; backface-visibility:hidden; border-radius:12px; background:linear-gradient(145deg,#564052,#2d223c); color:#ead2a8; font:33px Georgia,serif; box-shadow:0 5px 15px #0004,inset 0 0 0 1px #e4cba426; }
.vault-back:after { content:''; position:absolute; inset:5px; border:1px solid #e3c9a333; border-radius:8px; }
.vault-front { transform:rotateY(180deg); background:linear-gradient(145deg,#f0dfbc,#bea77e); color:#493348; }
.vault-front .icon { width:30px; height:30px; }
.revealed .vault-card { transform:rotateY(180deg); }
.treasure-balance { margin:20px 0; padding:25px; text-align:center; background:radial-gradient(ellipse at top,#aa7d8526,transparent),#17131d70; border-radius:24px; }
.treasure-balance > span { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:#c9b6c7; }
.treasure-balance > strong { display:block; color:var(--accent); font:49px/1.4 Georgia,serif; }
.treasure-balance strong small { font-size:28px; }
.treasure-balance p { font-size:11px; margin:0; }
.treasure-stage { display:flex; gap:16px; padding:16px 2px; align-items:center; }
.treasure-stage > span { width:32px; flex-shrink:0; text-align:center; color:var(--accent); font:25px Georgia,serif; }
.treasure-stage h3 { font:19px Georgia,serif; margin:0 0 5px; }
.treasure-stage p { font-size:11px; margin:0 0 5px; }
.treasure-stage small { color:#cbb890; font-size:11px; }
.treasure-stage.claimed > span { color:#a9d7bd; }
.oracle-message { background:#dbc49c09; border-radius:18px; padding:18px; margin:15px 0; }
.oracle-message > span { font-size:9px; letter-spacing:.1em; color:var(--accent); }
.oracle-message p { color:#e6d9df; font:21px/1.5 Georgia,serif; margin:10px 0 0; }
.result-path { display:flex; flex-direction:column; gap:7px; margin:20px 0; font-size:11px; color:#bda6c7; }
.result-path .claimed { color:#b4d2c0; }
.invite-input { width:100%; color:#e2d3e7; background:#17131e; border:0; border-radius:14px; padding:14px; min-height:48px; font:12px Manrope,system-ui,sans-serif; margin:0 0 14px; }
.referral-note,.incoming-invite { background:#ffffff04; border-radius:18px; padding:16px; margin-top:18px; }
.referral-note strong { color:var(--accent); font:18px Georgia,serif; }
.referral-note p,.incoming-invite p { font-size:12px; margin:7px 0; }
@media(hover:hover) and (pointer:fine) { .hero-option:hover img { transform:scale(1.025); filter:saturate(.95) brightness(1); } }
@media(max-width:600px) {
 .hero-options { gap:8px; }
 .hero-option > span:not(.hero-selected) { padding:9px; font-size:13px; }
 .hero-option small { font-size:10px; }
 .hero-detail { margin:12px 0 17px; padding:13px; min-height:80px; }
 .hero-detail strong { font-size:17px; }
 .hero-detail p { font-size:11px; }
 .companion-mini { top:7px; left:7px; padding:4px 7px 4px 4px; }
 .companion-mini img { width:25px; height:25px; }
 .companion-mini span { font-size:9px; }
 .companion-mini small { font-size:8px; }
 .journey-progress { padding:13px; margin-top:15px; }
 .objective-strip { gap:8px; justify-content:space-between; }
 .objective { font-size:10px; gap:4px; }
 .objective strong { font-size:11px; }
 .stage-rail { gap:7px; }
 .stage-badge { gap:7px; }
 .phase-label { font-size:9px; }
 .vault-options .vault-choice { padding:15px 10px; min-height:185px; }
 .vault-options .vault-choice:last-child:nth-child(odd) { grid-column:1/-1; flex-direction:row; text-align:left; min-height:100px; }
 .vault-choice strong { font-size:12px; }
 .vault-choice small { font-size:11px; }
 .resume-companion { gap:12px; }
 .resume-companion strong { font-size:19px; }
}
@media(prefers-reduced-motion:reduce) { .pawn.hopping { animation:none; } .vault-card,.hero-option img { transition:none; } }
