:root{--bg: #ede8df;--panel: #f5f1ea;--dark: #1c1812;--primary: #5c4f3a;--accent: #8c5e38;--warn: #8a3530;--muted: #8a826e;--hud-h-top: 36px;--hud-h-bot: 52px}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;font-family:Courier New,Courier,monospace;background:var(--bg);color:var(--dark);-webkit-tap-highlight-color:transparent;touch-action:manipulation}#app{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}canvas{display:block;position:fixed;top:0;left:0;width:100%;height:100%}#intro-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px}.intro-container{width:100%;max-width:340px;padding:40px 32px;background:var(--panel);border:1px solid rgba(28,24,18,.18)}.intro-title{font-size:9px;font-weight:400;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);opacity:.7;margin-bottom:24px}.intro-body{font-size:11px;line-height:2;color:var(--muted);margin-bottom:24px;letter-spacing:.3px}.entity-select-wrap{display:flex;align-items:center;gap:8px;margin-bottom:10px}.arrow-btn{flex-shrink:0;width:28px;height:28px;background:none;border:1px solid rgba(28,24,18,.2);color:var(--muted);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .1s,color .1s;font-family:inherit}.arrow-btn:hover{background:var(--dark);color:var(--bg)}.entity-carousel{flex:1;position:relative;overflow:hidden}.entity-carousel .entity-card{display:none;padding:20px 12px;border:1px solid rgba(28,24,18,.12);text-align:center;width:100%}.entity-carousel .entity-card.active{display:block}.entity-carousel .entity-card.selected{border-color:var(--dark)}.carousel-dots{display:flex;justify-content:center;gap:6px;margin-bottom:16px}.dot{width:4px;height:4px;border-radius:50%;background:#1c181233;transition:background .15s}.dot.active{background:var(--dark)}.entity-card{padding:14px 8px;border:1px solid rgba(28,24,18,.12);cursor:pointer;text-align:center;transition:border-color .1s,background .1s}.entity-card:hover{border-color:#1c181259}.entity-card.selected{border-color:var(--dark)}.card-name{font-size:9px;font-weight:700;letter-spacing:3px;color:var(--dark);margin-bottom:8px;text-transform:uppercase}.card-desc{font-size:10px;color:var(--muted);line-height:1.9}.large-button:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.large-button{margin-top:24px;width:100%;padding:14px;font-family:inherit;font-size:10px;font-weight:700;letter-spacing:4px;text-transform:uppercase;background:var(--dark);color:var(--bg);border:1px solid var(--dark);cursor:pointer;transition:opacity .15s}.large-button:hover{opacity:.8}#ui-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}#hud-top{position:fixed;top:0;left:0;right:0;height:var(--hud-h-top);display:flex;align-items:center;justify-content:space-between;padding:0 16px;background:var(--bg);border-bottom:1px solid rgba(28,24,18,.1);z-index:100;pointer-events:none}#debt-bar{position:fixed;top:0;left:0;height:2px;background:var(--accent);transition:width 1s linear,background 1s;z-index:200;pointer-events:none}#back-btn{pointer-events:all;background:none;border:none;color:var(--muted);font-family:Courier New,monospace;font-size:11px;padding:4px 0;cursor:pointer;letter-spacing:1px;opacity:.6;transition:opacity .15s}#back-btn:hover{opacity:1}#hud-bottom{position:fixed;bottom:0;left:0;right:0;height:var(--hud-h-bot);padding:12px 18px 14px;background:var(--bg);border-top:1px solid rgba(28,24,18,.1);z-index:100;pointer-events:none;display:flex;flex-direction:column;gap:8px;justify-content:center}#care-bar-bg{width:100%;height:2px;background:#1c181214;overflow:hidden}#care-bar-fill{height:100%;width:0%;background:var(--primary);transition:width .6s ease,background .8s}#status-text{font-size:9px;letter-spacing:2px;color:var(--muted);text-align:center;text-transform:uppercase}#companion-label{position:fixed;transform:translate(-50%);font-size:9px;letter-spacing:2px;text-transform:uppercase;font-weight:700;pointer-events:none;white-space:nowrap;color:var(--muted);z-index:200;opacity:.5}#companion-bubble{position:fixed;transform:translate(-50%);background:var(--panel);border:1px solid rgba(28,24,18,.2);padding:8px 16px;font-size:12px;font-family:inherit;color:var(--dark);white-space:nowrap;font-style:italic;opacity:0;transition:opacity .4s ease;pointer-events:none;z-index:200}#companion-bubble.visible{opacity:1}#companion-bubble:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#1c181233}.feedback-popup{position:fixed;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--primary);z-index:1000;pointer-events:none;animation:popupFade .9s ease-out forwards;transform:translate(-50%,-50%)}@keyframes popupFade{0%{opacity:0;transform:translate(-50%,-50%)}20%{opacity:1;transform:translate(-50%,-65%)}80%{opacity:1;transform:translate(-50%,-80%)}to{opacity:0;transform:translate(-50%,-95%)}}#end-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:1500;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:32px 20px 48px}.end-container{max-width:480px;width:100%;margin:auto;padding:40px 36px;background:var(--panel);border:1px solid rgba(28,24,18,.15)}.end-container h1{font-size:10px;color:var(--muted);margin-bottom:32px;letter-spacing:4px;font-weight:700;text-transform:uppercase;text-align:center}.end-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin-bottom:20px;background:#1c181214}.end-cell{padding:12px 14px;background:var(--panel)}.end-cell.warn{background:#8a35300a}.end-cell-label{font-size:8px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;margin-bottom:6px}.end-cell-value{font-size:16px;font-weight:700;color:var(--dark)}.end-cell-value.warn{color:var(--warn)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse-critical{0%,to{opacity:1}50%{opacity:.3}}@media (max-width: 480px){.end-container{padding:28px 20px}.end-cell-value{font-size:13px}#end-screen{padding:20px 12px 40px}}
