.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:.8rem 2rem;border-bottom:1px solid var(--c-border);background:linear-gradient(180deg,#1a0f08f2,#1a0f08b3);backdrop-filter:blur(6px);position:sticky;top:0;z-index:10}.brand{display:inline-flex;align-items:center;gap:.6rem;color:var(--c-text);font-size:1.15rem}.brand:hover{color:var(--c-gold-hi)}.brand-mark{color:var(--c-gold);font-size:1.4rem;text-shadow:0 0 8px rgba(217,168,86,.5)}.brand-name{font-weight:600;letter-spacing:.03em}.app-nav{display:inline-flex;align-items:center;gap:1.5rem}.app-nav a{color:var(--c-text-dim);font-size:1rem}.app-nav a:hover{color:var(--c-gold-hi)}.visitor-chip{padding:.2em .8em;border:1px solid var(--c-border);border-radius:999px;color:var(--c-text-dim);font-size:.9rem;font-style:italic;background:#4a2f1e4d}.app-main{flex:1;padding:2.5rem 2rem 3rem;max-width:1180px;width:100%;margin:0 auto}.app-footer{border-top:1px solid var(--c-border);padding:1rem 2rem;color:var(--c-text-mute);font-size:.9rem;text-align:center}.footer-dot{margin:0 .6em;opacity:.5}@media (max-width: 600px){.app-header{padding:.8rem 1rem}.app-main{padding:1.5rem 1rem 2rem}h1{font-size:2.2rem}h2{font-size:1.7rem}}.tavern-header{text-align:center;margin-bottom:2.2rem}.tavern-header h2{color:var(--c-gold-hi);letter-spacing:.03em}.tavern-lead{color:var(--c-text-dim);max-width:560px;margin:0 auto;font-size:1.1rem}.tavern-rooms{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.4rem}.room-card{position:relative;border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-panel);overflow:hidden;transition:transform .25s ease,border-color .25s ease;cursor:default}.room-card:hover{transform:translateY(-3px);border-color:var(--room-tint, var(--c-gold))}.room-card-glow{position:absolute;inset:-1px;background:radial-gradient(ellipse at top,var(--room-tint),transparent 60%);opacity:.15;pointer-events:none}.room-card-inner{position:relative;padding:1.6rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:.7rem;height:100%}.room-card-icon{font-size:2.4rem;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6))}.room-card-title{color:var(--c-text);margin:0;font-size:1.35rem}.room-card-desc{color:var(--c-text-dim);margin:0;font-size:1rem;line-height:1.5;flex:1}.room-card-npcs{list-style:none;padding:0;margin:.4rem 0;display:flex;flex-direction:column;gap:.35rem;font-size:.95rem;color:var(--c-text-dim)}.room-card-npcs li{display:flex;align-items:center;gap:.5em}.npc-dot{width:8px;height:8px;border-radius:50%;box-shadow:0 0 6px currentColor}.npc-role{color:var(--c-text-mute);margin-left:.3em;font-style:italic}.room-card .btn-ghost{margin-top:.6rem;align-self:flex-start}.dialog-overlay{position:fixed;inset:0;background:#0a0603b3;backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem}.dialog{width:100%;max-width:640px;max-height:min(80vh,800px);display:flex;flex-direction:column;background:radial-gradient(ellipse at top,rgba(217,168,86,.06),transparent 60%),linear-gradient(180deg,#2a180e,#1a0f08);border:1px solid var(--npc-color, var(--c-border-hi));border-radius:var(--radius-lg);box-shadow:var(--shadow-soft),0 0 40px #0009,inset 0 0 0 1px #d9a8560d;overflow:hidden}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;border-bottom:1px solid var(--c-border);background:linear-gradient(180deg,rgba(58,38,24,.6),transparent)}.dialog-npc{display:flex;align-items:center;gap:.8rem}.dialog-portrait{font-size:2rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.6))}.dialog-header h3{margin:0;color:var(--c-text);font-size:1.2rem}.dialog-role{color:var(--c-text-mute);font-style:italic;font-size:.9rem}.dialog-close{background:transparent;border:none;color:var(--c-text-mute);font-size:1.3rem;cursor:pointer;width:32px;height:32px;border-radius:6px;transition:all .2s}.dialog-close:hover{color:var(--c-text);background:#ffffff0f}.dialog-scroller{flex:1;overflow-y:auto;padding:1.2rem;display:flex;flex-direction:column;gap:.9rem;scrollbar-width:thin;scrollbar-color:var(--c-border-hi) transparent}.bubble{max-width:82%;padding:.7rem 1rem;border-radius:12px;line-height:1.5;border:1px solid var(--c-border)}.bubble-author{display:block;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;color:var(--c-text-mute);margin-bottom:.3rem}.bubble-text{margin:0;white-space:pre-wrap;color:var(--c-text)}.bubble-user{align-self:flex-end;background:linear-gradient(180deg,#3a2415,#2e1a10);border-color:var(--c-border-hi)}.bubble-user .bubble-author{color:var(--c-gold)}.bubble-assistant{align-self:flex-start;background:linear-gradient(180deg,#3a261880,#26181080);border-color:var(--npc-color);border-left-width:3px}.bubble-assistant .bubble-author{color:var(--npc-color)}.bubble-cached:after{content:"·  из памяти";color:var(--c-text-mute);font-size:.75rem;font-style:italic;margin-left:.6em}.bubble-error{border-color:var(--c-blood);background:#a33a2b1f}.bubble-typing .typing-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--npc-color);margin-right:4px;animation:typing 1.2s infinite ease-in-out}.bubble-typing .typing-dot:nth-child(2){animation-delay:.15s}.bubble-typing .typing-dot:nth-child(3){animation-delay:.3s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.dialog-error{padding:.6rem 1.2rem;background:#a33a2b26;border-top:1px solid var(--c-blood);color:#f5c1b5;font-size:.95rem}.dialog-input{display:flex;gap:.6rem;padding:.9rem 1rem;border-top:1px solid var(--c-border);background:#140c0899}.dialog-input input{flex:1;padding:.65rem .9rem;border-radius:var(--radius-md);border:1px solid var(--c-border);background:#0e080599;color:var(--c-text);outline:none;transition:border-color .2s}.dialog-input input:focus{border-color:var(--npc-color, var(--c-gold))}.dialog-input input:disabled{opacity:.6}.dialog-input button{padding:.65rem 1.4rem;border-radius:var(--radius-md);border:1px solid var(--npc-color, var(--c-gold));background:linear-gradient(180deg,var(--c-gold),#b8862b);color:#1a0f08;font-weight:600;cursor:pointer;transition:all .2s}.dialog-input button:hover:not(:disabled){background:linear-gradient(180deg,var(--c-gold-hi),var(--c-gold))}.dialog-input button:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 600px){.dialog{max-height:92vh}.bubble{max-width:92%}}.room{position:relative;min-height:70vh}.room-scene{position:absolute;inset:-2rem;pointer-events:none;z-index:-1;overflow:hidden;border-radius:var(--radius-lg)}.room-scene-fog{position:absolute;inset:-20%;background:radial-gradient(circle at 20% 30%,rgba(217,168,86,.08),transparent 40%),radial-gradient(circle at 80% 70%,var(--room-tint),transparent 55%);filter:blur(60px);opacity:.4;animation:fog-drift 24s ease-in-out infinite alternate}.room-scene-light{position:absolute;top:-10%;left:40%;width:40%;height:60%;background:radial-gradient(ellipse,rgba(240,199,117,.14),transparent 70%);filter:blur(30px);animation:light-flicker 6s ease-in-out infinite}@keyframes fog-drift{0%{transform:translate(0)}to{transform:translate(4%,-3%)}}@keyframes light-flicker{0%,to{opacity:.9}50%{opacity:.6}}.room-header{margin-bottom:2rem}.room-back{color:var(--c-text-mute);font-size:.95rem}.room-back:hover{color:var(--c-gold-hi)}.room-heading{display:flex;align-items:center;gap:.8rem;margin:.8rem 0 .5rem}.room-heading h2{color:var(--c-gold-hi);margin:0}.room-icon-lg{font-size:2.6rem;line-height:1;filter:drop-shadow(0 2px 6px rgba(0,0,0,.7))}.room-atmosphere{color:var(--c-text-dim);font-style:italic;max-width:720px;line-height:1.6}.room-npcs{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.2rem;margin-top:1.4rem}.npc-card{display:flex;align-items:center;gap:1rem;text-align:left;padding:1.2rem 1.3rem;border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-panel);color:inherit;cursor:pointer;transition:all .25s ease;font:inherit;position:relative;overflow:hidden}.npc-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--npc-color, var(--c-gold));box-shadow:0 0 10px var(--npc-color)}.npc-card:hover{transform:translateY(-2px);border-color:var(--npc-color, var(--c-gold));background:var(--c-panel-hi)}.npc-portrait{font-size:3rem;line-height:1;flex-shrink:0;filter:drop-shadow(0 3px 8px rgba(0,0,0,.6))}.npc-info{flex:1;min-width:0}.npc-name{color:var(--c-text);margin:0 0 .15rem;font-size:1.25rem}.npc-info .npc-role{color:var(--c-text-mute);font-style:italic;font-size:.95rem}.npc-hint{color:var(--c-text-dim);margin:.4rem 0 0;font-size:.95rem;line-height:1.45}.npc-cta{color:var(--npc-color, var(--c-gold));font-size:.95rem;white-space:nowrap;align-self:flex-end;opacity:.85}.prologue{max-width:780px;margin:3rem auto 0;text-align:center}.prologue-hero{padding:3rem 1rem 2rem}.prologue-title{font-family:var(--font-script);font-size:5rem;line-height:1;color:var(--c-gold-hi);text-shadow:0 0 20px rgba(217,168,86,.35),0 4px 12px rgba(0,0,0,.6);margin-bottom:1.2rem}.prologue-lead{font-size:1.35rem;color:var(--c-text-dim);max-width:600px;margin:0 auto 2.2rem;line-height:1.65}.prologue-cta{display:flex;justify-content:center}.prologue-scroll{margin:3rem auto 0;max-width:560px;padding:1.8rem 2rem;border:1px solid var(--c-border);border-radius:var(--radius-lg);background:radial-gradient(ellipse at top,rgba(217,168,86,.06),transparent 60%),var(--c-panel);color:var(--c-text-dim);font-style:italic;position:relative}.prologue-scroll:before,.prologue-scroll:after{content:"❦";position:absolute;color:var(--c-gold);font-size:1.1rem;opacity:.6}.prologue-scroll:before{top:8px;left:14px}.prologue-scroll:after{bottom:8px;right:14px}@media (max-width: 600px){.prologue-title{font-size:3.2rem}.prologue-lead{font-size:1.1rem}}:root{--c-bg-0: #0e0805;--c-bg-1: #1a0f08;--c-bg-2: #241610;--c-panel: rgba(38, 24, 16, .85);--c-panel-hi: rgba(58, 38, 24, .9);--c-border: #4a2f1e;--c-border-hi: #6b442a;--c-text: #efe0c6;--c-text-dim: #b8a284;--c-text-mute: #7d6a52;--c-gold: #d9a856;--c-gold-hi: #f0c775;--c-ember: #e07a3d;--c-blood: #a33a2b;--c-mist: #8a7fbf;--shadow-soft: 0 10px 40px rgba(0, 0, 0, .55);--shadow-hard: 0 4px 12px rgba(0, 0, 0, .7);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--font-serif: "Cormorant Garamond", "Georgia", serif;--font-script: "Marck Script", cursive}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-serif);font-size:18px;line-height:1.55;color:var(--c-text);background:radial-gradient(1200px 800px at 20% 10%,rgba(217,168,86,.08),transparent 60%),radial-gradient(1000px 700px at 90% 90%,rgba(163,58,43,.08),transparent 60%),linear-gradient(160deg,var(--c-bg-0),var(--c-bg-1) 40%,var(--c-bg-2));min-height:100vh;overflow-x:hidden}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}a{color:var(--c-gold-hi);text-decoration:none;transition:color .2s}a:hover{color:var(--c-ember)}h1,h2,h3,h4{font-weight:600;margin:0 0 .4em;letter-spacing:.01em}h1{font-size:3rem}h2{font-size:2.1rem}h3{font-size:1.4rem}.btn{display:inline-flex;align-items:center;gap:.5em;padding:.65em 1.4em;border-radius:var(--radius-md);border:1px solid var(--c-border-hi);background:linear-gradient(180deg,#3a2415,#241610);color:var(--c-text);cursor:pointer;transition:all .2s ease;text-decoration:none;font-size:1.05rem;letter-spacing:.02em;box-shadow:var(--shadow-hard)}.btn:hover{background:linear-gradient(180deg,#4a2f1e,#2e1a10);border-color:var(--c-gold);transform:translateY(-1px)}.btn-primary{background:linear-gradient(180deg,var(--c-gold),#b8862b);color:#1a0f08;border-color:var(--c-gold-hi);font-weight:600}.btn-primary:hover{background:linear-gradient(180deg,var(--c-gold-hi),var(--c-gold));color:#1a0f08}.btn-ghost{background:transparent;border-color:var(--c-border)}.btn-ghost:hover{background:#d9a85614}
