:root{font-family:Inter,system-ui,sans-serif;color:#e7ddca;background:#000;font-synthesis:none;--brass:#b6905d;--paper:#e4d5bb;--muted:#948879;--panel:#111115}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:#000}#app{position:relative;isolation:isolate;background:#000}#game{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}#game canvas{display:block;width:100%;height:100%}#hud{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.vignette{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 150px 42px #030306b8;background:radial-gradient(ellipse at 50% 48%,transparent 42%,#09090d4d 100%)}.topbar{pointer-events:none;position:absolute;inset:0 0 auto;min-height:76px;padding:17px 29px 15px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid #9c805126;background:linear-gradient(180deg,#09090de8 0%,#0c0c10b8 72%,transparent 100%)}.brand{display:flex;align-items:center;gap:12px}.sigil{font:29px serif;color:#c2a16e;text-shadow:0 0 18px #cf9c54a6}.kicker{font:600 9px serif;letter-spacing:.3em;color:#c5a16e}.world-name{margin-top:3px;font:600 15px serif;letter-spacing:.14em;color:#eee1cb}.world-name span{color:#ac987d}.depth{display:flex;align-items:baseline;gap:7px;padding:7px 17px;border-left:1px solid #a78b6338;border-right:1px solid #a78b6338;font-family:serif}.depth-label{font-size:8px;letter-spacing:.22em;color:#a89270;margin-right:8px}.depth b{font-size:23px;font-weight:500;color:#e6d1aa}.depth-total{font-size:10px;color:#867b6a}.resources{justify-self:end;display:flex;align-items:center;gap:17px;color:#cfb98e;font-size:12px}.resources span{white-space:nowrap}.resources b{font-weight:500;color:#eee0c6;margin-left:4px}.book-btn{pointer-events:auto;background:#121216b5;border:1px solid #6d5a414d;padding:8px 11px;color:#cdb48a;font:11px serif;letter-spacing:.1em}.book-btn:hover{border-color:#bd9a65;background:#27201a}.book-btn i{font-style:normal;font-size:9px;margin-left:4px}.floor-caption{position:absolute;top:91px;left:50%;transform:translate(-50%);font:500 9px serif,serif;letter-spacing:.29em;color:#c8b38f;text-shadow:0 2px 8px #000;white-space:nowrap;opacity:.85}.center-message{position:absolute;top:125px;left:50%;transform:translate(-50%);max-width:min(80vw,700px);text-align:center;color:#c5bba9;font-size:11px;letter-spacing:.02em;text-shadow:0 2px 8px #000;background:#09090ca8;border:1px solid #846c4826;padding:8px 14px;box-shadow:0 8px 20px #0004}.center-message.danger{color:#f2a195;border-color:#9b4f4b60}.bottom-bar{position:absolute;inset:auto 0 0;min-height:128px;padding:20px 29px 22px;display:flex;align-items:center;justify-content:center;gap:23px;background:linear-gradient(0deg,#09090ff5,#0c0c10e0 67%,#0b0b0c00)}.orb{position:relative;width:72px;height:72px;flex:0 0 72px;border-radius:50%;border:1px solid #b49a7057;background:radial-gradient(circle at 50% 65%,#171319 0,#171319 44%,#08090c 72%);overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 23px #000a,inset 0 0 18px #000}.orb-fill{position:absolute;bottom:0;left:0;right:0;z-index:0;opacity:.52;transition:height .3s ease}.vitality .orb-fill{background:linear-gradient(0deg,#751d25,#a34037)}.essence .orb-fill{background:linear-gradient(0deg,#36367d,#70549a)}.orb-number,.orb-label{position:relative;z-index:1;text-shadow:0 1px 5px #000}.orb-number{font:600 19px serif,serif;color:#f1e3cc}.orb-number small{font:9px Inter,sans-serif;color:#b4a38d}.orb-label{margin-top:2px;font:600 7px serif,serif;letter-spacing:.16em;color:#c6b9a4}.hero-panel{width:min(510px,56vw);padding:6px 0 4px}.hero-name{display:flex;justify-content:center;align-items:center;gap:13px;font:600 13px serif,serif;letter-spacing:.16em;color:#e6d8c0}.level-tag{font:600 9px Inter,sans-serif;letter-spacing:.07em;color:#c8a575}.hero-name select{pointer-events:auto;color:#cbbb9e;background:#151419;border:1px solid #68563d;border-radius:0;padding:5px 8px;font:9px serif,serif;letter-spacing:.05em}.experience{height:3px;background:#332c27;margin:11px 0 9px;overflow:hidden}.experience i{display:block;height:100%;background:linear-gradient(90deg,#805a36,#cba26b);box-shadow:0 0 11px #d1a15b;transition:width .28s}.actions{display:flex;justify-content:center;align-items:center;gap:15px}.skill-button{pointer-events:auto;display:flex;align-items:center;gap:8px;background:#17151a;border:1px solid #856c4a;color:#d8bd8e;padding:6px 9px;font:600 8px serif,serif;letter-spacing:.1em}.skill-button b{display:grid;place-items:center;width:19px;height:19px;background:#372d25;border:1px solid #a4895c;font:600 11px Inter,sans-serif;color:#e7d7b7}.skill-button:hover{background:#30261e;border-color:#d6b074}.skill-button.cooling{opacity:.65}.control-hint{font-size:8px;color:#958b7c;letter-spacing:.1em}.control-hint span{color:#c1a26f;margin:0 4px}.right-hints{position:absolute;right:15px;bottom:141px;display:flex;flex-direction:column;align-items:flex-end;gap:5px;font:7px serif,serif;letter-spacing:.12em;color:#b0a38e8a}.modal-scrim{pointer-events:auto;position:absolute;top:0;right:0;bottom:0;left:0;background:#050508bd;display:grid;place-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.teleport{position:relative;width:min(440px,calc(100vw - 32px));max-height:min(80vh,620px);padding:28px 28px 22px;background:linear-gradient(145deg,#201d1b,#101014 72%);border:1px solid #a7895d66;box-shadow:0 20px 70px #000c;overflow:auto}.teleport:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid #b5925a24;pointer-events:none}.teleport .kicker{font-size:9px}.teleport h2{font:500 22px serif,serif;letter-spacing:.06em;margin:10px 0;color:#e6d6bc}.teleport p{font-size:11px;color:#a59a89;line-height:1.5}.close{pointer-events:auto;position:absolute;right:14px;top:12px;color:#d3bc98;background:none;border:0;font-size:25px}.floor-list{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:17px}.floor-list button{pointer-events:auto;display:flex;justify-content:space-between;align-items:center;background:#141317;border:1px solid #74604554;padding:10px;color:#ddc9a8;font:9px serif,serif;letter-spacing:.08em}.floor-list button:hover{background:#282119;border-color:#c49d64}.floor-list small{font:8px Inter,sans-serif;color:#a58d69}@media(max-width:700px){.topbar{padding:12px;grid-template-columns:1fr auto;min-height:65px}.brand{gap:7px}.sigil{font-size:23px}.kicker{font-size:7px;letter-spacing:.22em}.world-name{font-size:11px;letter-spacing:.1em}.depth{grid-column:2;grid-row:1;justify-self:end;padding:4px 8px;border-right:0}.depth-label{display:none}.depth b{font-size:19px}.resources{grid-column:1 / -1;grid-row:2;justify-self:center;gap:15px;margin-top:7px;font-size:10px}.book-btn{padding:5px 8px}.floor-caption{top:93px;font-size:7px;letter-spacing:.18em}.center-message{top:117px;padding:6px 9px;font-size:9px;max-width:90vw}.bottom-bar{min-height:108px;padding:18px 10px 14px;gap:9px}.orb{width:57px;height:57px;flex-basis:57px}.orb-number{font-size:16px}.hero-panel{width:min(58vw,360px)}.hero-name{gap:6px;font-size:10px;letter-spacing:.08em}.hero-name select{padding:4px;font-size:8px}.level-tag{font-size:8px}.experience{margin:8px 0}.actions{gap:7px}.skill-button{padding:4px 5px;gap:5px;font-size:7px}.skill-button b{width:17px;height:17px;font-size:10px}.control-hint{font-size:6px;letter-spacing:0}.right-hints{right:7px;bottom:116px;font-size:6px}}@media(max-width:390px){.orb{width:48px;height:48px;flex-basis:48px}.orb-number{font-size:14px}.orb-label{font-size:6px}.hero-panel{width:59vw}.hero-name{font-size:9px}.control-hint{display:none}.floor-caption{top:98px}}.talent-grid{display:grid;gap:8px;margin-top:18px}.talent{pointer-events:auto;display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:12px 14px;color:#ddc9a8;background:#151418;border:1px solid #74604566}.talent b{font:20px serif,serif;color:#c2a16e}.talent strong{display:block;font:600 11px serif,serif;letter-spacing:.08em}.talent small{display:block;margin-top:4px;font-size:10px;color:#a59a89}.talent:hover:not(:disabled){background:#282119;border-color:#c49d64}.talent.owned{border-color:#bd965b;color:#efdfbf}.talent.owned b{color:#e4bd7f}.talent:disabled:not(.owned){opacity:.5}.coin-button{pointer-events:auto;white-space:nowrap;background:linear-gradient(180deg,#3a2c1d,#211911);border:1px solid #a98755;color:#ecd09a;padding:7px 10px;font:600 8px serif,serif;letter-spacing:.08em}.coin-button:hover:not(:disabled){background:#584124;border-color:#e3bd7a}.coin-button:disabled{opacity:.42}.arcane-button{pointer-events:auto;white-space:nowrap;background:linear-gradient(180deg,#1d2a3a,#0f171d);border:1px solid #71d4e8;color:#71d4e8;padding:7px 10px;font:600 8px serif,serif;letter-spacing:.08em}.arcane-button:hover:not(:disabled){background:#2a3a4a;border-color:#a3e4ff}.arcane-button:disabled{opacity:.42}.save-button{pointer-events:auto;white-space:nowrap;background:linear-gradient(180deg,#2a3a2d,#172018);border:1px solid #71d477;color:#71d477;padding:7px 10px;font:600 8px serif,serif;letter-spacing:.08em;margin-left:6px}.save-button:hover:not(:disabled){background:#3a4a3d;border-color:#a3e4a7}.save-button:disabled{opacity:.42}.load-button{pointer-events:auto;white-space:nowrap;background:linear-gradient(180deg,#3a2a2d,#201718);border:1px solid #d47171;color:#d47171;padding:7px 10px;font:600 8px serif,serif;letter-spacing:.08em;margin-left:6px}.load-button:hover:not(:disabled){background:#4a3a3d;border-color:#e4a3a3}.load-button:disabled{opacity:.42}.continue-button{display:block;margin:16px auto 0;padding:12px 18px;font-size:10px}.actions{flex-wrap:wrap}.resources{gap:13px}.depth b{color:#e8d2aa}@media(max-width:700px){.resources{gap:10px}.resources span{font-size:8px}.bottom-bar{min-height:134px;padding:16px 8px 12px;gap:7px}.hero-panel{width:60vw}.actions{gap:5px}.control-hint{display:none}.coin-button{font-size:7px;padding:5px 6px}.skill-button{font-size:7px}.right-hints{display:none}}.class-trait{min-height:15px;margin:7px 0 4px;text-align:center;color:#bda074;font:600 8px serif,serif;letter-spacing:.18em}@media(max-width:700px){.class-trait{min-height:12px;margin:5px 0 3px;font-size:6px;letter-spacing:.1em}}.coin-counter{pointer-events:none;white-space:nowrap;color:#f1c40f;padding:7px 10px;font:600 8px serif,serif;letter-spacing:.08em;margin-left:6px}.char-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:#020103;overflow:hidden}.char-bg:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(circle at 30% 30%,#2a1e14 0,#050304 55%,#000);opacity:.6;filter:blur(60px)}.char-bg:after{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(circle at 70% 70%,#3d2e22 0,#050304 55%,#000);opacity:.5;filter:blur(60px)}.char-creation{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;pointer-events:auto;padding:2vh 3vw;color:#e7ddca}.char-creation .panel{position:relative;width:min(560px,88vw);max-height:min(90vh,720px);padding:34px 36px 30px;background:linear-gradient(160deg,#141113,#0b0a0c);border:1px solid #8a6d3b;box-shadow:0 30px 100px #000c,0 0 0 1px #8a6d3b40;overflow-y:auto;pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.char-creation .panel:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid #b5925a1f;pointer-events:none}.char-creation h1{font:700 2.2rem serif,serif;letter-spacing:.14em;color:#e6d6bc;margin:0 0 8px;text-align:center;text-shadow:0 0 25px rgba(194,161,110,.35)}.char-creation h1 span{display:block;font:500 1rem serif,serif;letter-spacing:.35em;color:#b6905d;margin-top:6px;text-shadow:none}.char-creation .section-title{font:600 .95rem serif,serif;letter-spacing:.2em;color:#c5a16e;margin:1.6rem 0 .7rem;text-align:center;text-transform:uppercase}.char-creation p{font-size:1rem;color:#c5bba9;line-height:1.5;text-align:center}.char-card{pointer-events:auto;display:flex;align-items:center;gap:1.15rem;padding:1.05rem 1.3rem;margin:.85rem 0;background:linear-gradient(180deg,#181311d9,#100d0ea6);border:1px solid #74604544;border-radius:5px;color:#e7ddca;transition:all .18s ease;cursor:pointer}.char-card:hover{background:#201916e6;border-color:#c49d64;transform:translateY(-1px);box-shadow:0 8px 24px #8a6d3b26}.char-card .char-badge{width:56px;height:56px;border:2px solid #b6905d;border-radius:50%;background:#b6905d1f;display:flex;align-items:center;justify-content:center;font-size:1.7rem;flex:0 0 56px;color:#d8bd8e}.char-card .char-info{flex:1;text-align:left}.char-card .char-info .char-name{font:600 1.05rem serif,serif;letter-spacing:.08em;color:#e6d6bc}.char-card .char-info .char-sub{font-size:.85rem;color:#a59a89;letter-spacing:.03em}.char-card .char-delete{pointer-events:auto;flex:0 0 auto;background:#6e282866;border:1px solid #9b4f4b;color:#f2a195;font-size:.75rem;padding:.45rem .7rem;border-radius:3px}.char-card .char-delete:hover{background:#3a1a1a;border-color:#d47171;color:#fecaca}.create-controls{margin-top:2.2rem;display:flex;flex-direction:column;gap:.75rem;align-items:center}.create-controls button{pointer-events:auto;width:min(260px,80vw);padding:.95rem 1.5rem;font:600 1rem serif,serif;letter-spacing:.12em;color:#e7ddca;background:linear-gradient(180deg,#241c17,#13100d);border:1px solid #8a6d3b;border-radius:4px;cursor:pointer;transition:all .15s}.create-controls button:hover{background:linear-gradient(180deg,#3a2c20,#251c13);border-color:#c49d64;transform:translateY(-1px)}.create-controls button:disabled{opacity:.45;cursor:not-allowed;transform:none;border-color:#4a3d30}.create-controls button.secondary{background:#17151a;border-color:#856c4a;color:#d8bd8e}.create-controls button.secondary:hover{border-color:#c49d64;color:#e6d6bc}.create-controls button.danger{background:#2d1414;border-color:#9b4f4b;color:#f2a195}.create-controls button.danger:hover{border-color:#d47171;background:#3a1a1a}.create-controls button.primary{border-color:#77b9a4;color:#77b9a4;background:linear-gradient(180deg,#1b2a2a,#101b1b)}.create-controls button.primary:hover{border-color:#a3d4d4;color:#bfe4e4}.class-grid{display:flex;gap:1rem;justify-content:center;margin:1rem 0}.class-grid button{pointer-events:auto;padding:1.1rem 2rem;font:600 1rem serif,serif;letter-spacing:.1em;color:#d8bd8e;background:#17151a;border:1px solid #856c4a;cursor:pointer;transition:all .15s}.class-grid button:hover{border-color:#c49d64;color:#e6d6bc;background:#251c13}.class-grid button.selected{border-color:#77b9a4;color:#77b9a4;border-width:2px}.class-grid button.selected:hover{border-color:#a3d4d4;color:#a3d4d4}.name-input{width:min(300px,85vw);padding:.85rem;font:1.1rem serif,serif;text-align:center;background:#151419;border:1px solid #68563d;color:#e7ddca;border-radius:4px;outline:none}.name-input:focus{border-color:#c49d64;outline:none;box-shadow:0 0 0 2px #c49d6440}.name-error{color:#f2a195;font-size:.9rem;margin-top:.5rem;text-align:center}@media(max-width:700px){.char-creation{padding:3vh 4vw}.char-creation .panel{padding:24px 20px 20px;width:min(460px,92vw)}.char-creation h1{font-size:1.7rem}.class-grid{flex-direction:column;align-items:center}.class-grid button{width:min(240px,85vw)}.create-controls button{width:100%}}
