@font-face{font-family:'Cormorant';src:url(fonts/cormorant.woff2) format('woff2');font-weight:300 700;font-display:swap}
@font-face{font-family:'Cormorant';src:url(fonts/cormorant-italic.woff2) format('woff2');font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:'Cinzel';src:url(fonts/cinzel.woff2) format('woff2');font-weight:400 900;font-display:swap}
:root{--bk:#07050a;--bk2:#120c12;--pn:rgba(14,9,14,.92);--cr:#8e1226;--cr2:#c2263a;--em:#1f7a52;--pu:#3a1d52;--gd:#d4af5a;--gd2:#f1d996;--ink:#f3eadb;--dim:#b9ab97;
 --st:env(safe-area-inset-top,0px);--sb:env(safe-area-inset-bottom,0px);--sl:env(safe-area-inset-left,0px);--sr:env(safe-area-inset-right,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:#000;color:var(--ink);font-family:'Cormorant',Georgia,serif;font-size:17px;overflow:hidden;overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:none}
#c{position:fixed;inset:0;width:100vw;height:100vh;display:block}
#ui{position:fixed;inset:0;pointer-events:none;z-index:2}
#ui>*{pointer-events:auto}
#ui .pe-none{pointer-events:none}
button{font-family:'Cinzel',serif;color:var(--gd2);background:linear-gradient(#1b1119,#0d080c);border:1px solid rgba(212,175,90,.55);border-radius:6px;padding:9px 14px;font-size:14px;letter-spacing:.06em;cursor:pointer;touch-action:manipulation}
button:active{transform:scale(.97);background:#2a1520}
button.pri{background:linear-gradient(#8e1226,#4a0814);border-color:var(--gd);color:#fff3d6}
button.sel{border-color:var(--gd2);box-shadow:0 0 0 1px var(--gd2) inset,0 0 12px rgba(212,175,90,.35)}
button:disabled{opacity:.4}
input,select,textarea{font-family:'Cormorant',serif;font-size:17px;background:#0c070b;color:var(--ink);border:1px solid rgba(212,175,90,.4);border-radius:5px;padding:7px 9px;user-select:text;-webkit-user-select:text}
input[type=range]{padding:0;width:100%;accent-color:#c2263a}
h1,h2,h3{font-family:'Cinzel',serif;color:var(--gd);font-weight:600;letter-spacing:.08em;margin:.2em 0 .4em}
h2{font-size:20px}h3{font-size:15px;color:var(--gd2)}
.small{font-size:14px;color:var(--dim)}
#loading{position:fixed;inset:0;z-index:50;background:radial-gradient(ellipse at 50% 40%,#2a0b16,#050306 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;transition:opacity .8s}
#loading .lt{font-family:'Cinzel',serif;font-size:34px;color:var(--gd);letter-spacing:.2em;text-shadow:0 0 22px rgba(194,38,58,.6)}
#loading .lb{width:min(70vw,360px);height:3px;background:#2a1a22;border-radius:2px;overflow:hidden}
#loading .lb i{display:block;height:100%;width:0;background:linear-gradient(90deg,#8e1226,#d4af5a);transition:width .3s}
#lmsg{color:var(--dim);font-style:italic}
/* title */
.screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(10px + var(--st)) calc(12px + var(--sr)) calc(10px + var(--sb)) calc(12px + var(--sl))}
.titlebox{text-align:center;max-width:560px;width:100%;max-height:100%;overflow:auto;background:linear-gradient(rgba(7,5,10,.25),rgba(7,5,10,.75));border-radius:12px;padding:14px}
.logo{font-family:'Cinzel',serif;font-size:clamp(34px,7vw,64px);color:var(--gd);letter-spacing:.16em;text-shadow:0 0 30px rgba(194,38,58,.75),0 2px 0 #000;margin:4px 0}
.tag{font-style:italic;color:#e8cfc0;margin-bottom:12px}
.col{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.row.c{justify-content:center}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.slot{border:1px solid rgba(212,175,90,.45);border-radius:8px;padding:8px;background:rgba(18,10,16,.85);font-size:14px;cursor:pointer;min-height:70px}
.slot.sel{border-color:var(--gd2);box-shadow:0 0 14px rgba(212,175,90,.35)}
.slot b{font-family:'Cinzel',serif;color:var(--gd2);font-size:13px;display:block}
/* panels */
.panel{position:fixed;z-index:10;left:50%;top:50%;transform:translate(-50%,-50%);width:min(94vw,720px);max-height:calc(100vh - 20px - var(--st) - var(--sb));display:flex;flex-direction:column;background:var(--pn);border:1px solid rgba(212,175,90,.5);border-radius:12px;box-shadow:0 10px 50px #000,0 0 0 4px rgba(142,18,38,.15);animation:pin .25s ease-out}
@keyframes pin{from{opacity:0;transform:translate(-50%,-47%)}}
.panel .ph{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid rgba(212,175,90,.25)}
.panel .pb{padding:12px 14px;overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.x{padding:6px 11px;font-size:16px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;padding:8px 14px 0}
.tabs button{padding:6px 10px;font-size:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.card{border:1px solid rgba(212,175,90,.3);border-radius:8px;padding:8px;background:rgba(30,16,24,.7);font-size:15px}
.card b{font-family:'Cinzel',serif;font-size:13px;color:var(--gd2)}
.card.lock{opacity:.4;filter:grayscale(1)}
.bar{height:6px;background:#2a1a22;border-radius:3px;overflow:hidden;margin:3px 0}
.bar i{display:block;height:100%;background:linear-gradient(90deg,#8e1226,#d4af5a)}
.bar.rom i{background:linear-gradient(90deg,#5a0d2a,#ff4d7a)}
.sw{width:30px;height:30px;border-radius:50%;border:2px solid rgba(255,255,255,.2);cursor:pointer;display:inline-block}
.sw.sel{border-color:var(--gd2);box-shadow:0 0 8px var(--gd)}
.lbl{font-family:'Cinzel',serif;font-size:12px;color:var(--gd);letter-spacing:.08em;margin:8px 0 4px}
/* creator layout */
#creator{position:fixed;right:calc(8px + var(--sr));top:calc(8px + var(--st));bottom:calc(8px + var(--sb));width:min(46vw,400px);display:flex;flex-direction:column;background:var(--pn);border:1px solid rgba(212,175,90,.45);border-radius:12px}
#creator .pb{flex:1;overflow:auto;padding:10px 12px;touch-action:pan-y}
@media (orientation:portrait){#creator{left:8px;right:8px;width:auto;top:46vh}}
/* HUD */
#hud{position:fixed;left:calc(10px + var(--sl));top:calc(8px + var(--st));display:flex;gap:8px;align-items:center;pointer-events:none}
.pill{background:rgba(10,6,10,.72);border:1px solid rgba(212,175,90,.4);border-radius:20px;padding:4px 11px;font-family:'Cinzel',serif;font-size:13px;color:var(--gd2);white-space:nowrap}
#hudr{position:fixed;right:calc(10px + var(--sr));top:calc(8px + var(--st));display:flex;gap:6px;align-items:center}
#hudr button{padding:7px 10px;font-size:13px}
#chip{max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#joy{position:fixed;left:calc(18px + var(--sl));bottom:calc(18px + var(--sb));width:130px;height:130px;border-radius:50%;background:radial-gradient(circle,rgba(212,175,90,.10),rgba(10,6,10,.35));border:1px solid rgba(212,175,90,.35);touch-action:none}
#joy i{position:absolute;left:40px;top:40px;width:50px;height:50px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d4af5a,#6b4f1d);box-shadow:0 0 12px rgba(0,0,0,.7)}
#acts{position:fixed;right:calc(14px + var(--sr));bottom:calc(16px + var(--sb));display:grid;grid-template-columns:repeat(3,auto);gap:8px;align-items:end;justify-items:end}
#acts button{width:58px;height:58px;border-radius:50%;padding:0;font-size:11px;background:radial-gradient(circle at 40% 35%,#2b1520,#0b070a)}
#acts button.big{width:70px;height:70px;font-size:12px;border-color:var(--gd2)}
#acts button.on{background:radial-gradient(circle,#8e1226,#3a0610);color:#fff}
#prompt{position:fixed;left:50%;bottom:calc(150px + var(--sb));transform:translateX(-50%);pointer-events:auto}
#prompt button{background:rgba(20,8,14,.9);font-size:14px}
#toasts{position:fixed;left:50%;top:calc(48px + var(--st));transform:translateX(-50%);display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none;z-index:20}
.toast{background:rgba(14,8,12,.92);border:1px solid rgba(212,175,90,.5);padding:7px 14px;border-radius:8px;font-size:16px;animation:pin .3s;max-width:86vw;text-align:center}
#dlg{position:fixed;left:50%;bottom:calc(10px + var(--sb));transform:translateX(-50%);width:min(96vw,760px);background:var(--pn);border:1px solid rgba(212,175,90,.5);border-radius:12px;padding:12px 14px;z-index:12;max-height:60vh;overflow:auto}
#dlg .who{font-family:'Cinzel',serif;color:var(--gd);font-size:15px}
#dlg .say{font-size:19px;margin:6px 0 10px;line-height:1.3}
#dlg .opts{display:flex;flex-wrap:wrap;gap:7px}
#dlg .opts button{font-size:13px}
#emf{position:fixed;left:50%;top:calc(46px + var(--st));transform:translateX(-50%);display:flex;gap:4px;pointer-events:none}
#emf i{width:22px;height:12px;border-radius:2px;background:#1a1a1a;border:1px solid #333}
#emf i.on:nth-child(1),#emf i.on:nth-child(2){background:#2fae76}#emf i.on:nth-child(3){background:#d4af5a}#emf i.on:nth-child(4){background:#e0702a}#emf i.on:nth-child(5){background:#e01a3a;box-shadow:0 0 10px #e01a3a}
#buildbar{position:fixed;left:50%;bottom:calc(8px + var(--sb));transform:translateX(-50%);display:flex;gap:6px;flex-wrap:wrap;justify-content:center;max-width:98vw;background:var(--pn);border:1px solid rgba(212,175,90,.45);border-radius:10px;padding:7px}
#buildbar button{padding:7px 9px;font-size:12px}
#photobar{position:fixed;left:50%;bottom:calc(14px + var(--sb));transform:translateX(-50%);display:flex;gap:8px}
#fade{position:fixed;inset:0;background:#000;opacity:0;pointer-events:none;z-index:40;transition:opacity .8s;display:flex;align-items:center;justify-content:center;font-family:'Cinzel',serif;color:var(--gd);font-size:22px;letter-spacing:.1em;text-align:center;padding:20px}
#fade.on{opacity:1;pointer-events:auto}
#chat{position:fixed;left:calc(10px + var(--sl));top:calc(44px + var(--st));width:min(60vw,320px);background:rgba(10,6,10,.82);border:1px solid rgba(212,175,90,.35);border-radius:8px;padding:6px;font-size:15px}
#chat .log{max-height:28vh;overflow:auto;touch-action:pan-y}
#chat .log div b{color:var(--gd2);font-family:'Cinzel',serif;font-size:12px}
.gold{color:var(--gd2)}.red{color:#ff6b80}.green{color:#5fd39a}
.list>div{padding:7px 0;border-bottom:1px solid rgba(212,175,90,.15)}
.mapwrap{position:relative;width:100%;aspect-ratio:2.4;background:#0b0710;border:1px solid rgba(212,175,90,.35);border-radius:8px;overflow:hidden}
.mapwrap canvas{width:100%;height:100%}
#buildbar{flex-direction:column;align-items:center}
#buildbar .row{justify-content:center}
#kidp input{width:100%}
body.building #joy,body.building #acts,body.building #prompt{display:none}
#chip{max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:560px){ #chip{max-width:22vw} #hudr{gap:4px} #hudr button{padding:6px 8px;font-size:12px} .pill{font-size:11px;padding:3px 8px} }
@media (max-width:400px){ #chip{max-width:44px} }
@media (max-width:560px){ #hud{flex-direction:column;align-items:flex-start;gap:4px} }
/* Palia-style speech bubbles */
#bubbles{position:fixed;inset:0;pointer-events:none;z-index:9;overflow:hidden}
.bub{position:absolute;left:0;top:0;max-width:min(62vw,300px);background:rgba(248,240,226,.96);color:#24141a;border-radius:16px;padding:8px 13px 9px;font:500 15px/1.28 Georgia,serif;box-shadow:0 4px 16px rgba(0,0,0,.45);opacity:0;transition:opacity .22s;transform-origin:50% 100%;text-align:center}
.bub.on{opacity:1}
.bub:after{content:'';position:absolute;left:50%;bottom:-9px;margin-left:-9px;border:9px solid transparent;border-bottom:0;border-top-color:rgba(248,240,226,.96)}
.bub b{display:block;font:600 12px Cinzel,Georgia,serif;color:#7a0f22;letter-spacing:.04em;margin-bottom:2px}
.bub.amb{background:rgba(30,20,30,.9);color:#f3ead8;font-size:14px}.bub.amb:after{border-top-color:rgba(30,20,30,.9)}
.bub.me{background:rgba(122,15,34,.94);color:#fff}.bub.me:after{border-top-color:rgba(122,15,34,.94)}
#dlg.palia{background:transparent;border:0;padding:0;max-height:none;overflow:visible}
#dlg.palia .who{display:inline-block;background:var(--pn);border:1px solid rgba(212,175,90,.5);border-radius:10px;padding:4px 10px;margin-bottom:6px;font-size:13px}
#dlg.palia .say{display:none}
#dlg.palia.offb .say{display:block;background:rgba(240,228,205,.95);color:#1d1016;border-radius:14px;padding:10px 14px;margin-bottom:8px}
#dlg.palia .opts{justify-content:center}
#dlg.palia .opts button{background:rgba(20,10,16,.92);border:1px solid rgba(212,175,90,.55);border-radius:20px;padding:9px 14px;font-size:14px}
