:root{--black: #030202;--black-2: #090505;--velvet: #52111D;--velvet-deep: #25070D;--gold: #C89A4F;--champagne: #F3D48B;--text: #FFF3D2;--muted: rgba(255, 247, 223, .74);--glass: rgba(8, 5, 5, .58);--glass-border: rgba(226, 185, 106, .34);--hair: rgba(226, 185, 106, .18);--ease: cubic-bezier(.22, .7, .2, 1);--font: "LINE Seed Sans TH", "Noto Sans Thai", "Thonburi", sans-serif;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%}body{font-family:var(--font);color:var(--text);font-size:15px;line-height:1.7;background:var(--black)}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}input,textarea{font:inherit;color:inherit}:is(button,input,textarea):focus-visible{outline:2px solid var(--champagne);outline-offset:2px}svg{display:block}.muted{color:var(--muted)}.small{font-size:13px}.app{height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(330px,50dvh) minmax(0,1fr);max-width:100vw;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) 0 env(safe-area-inset-left)}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;z-index:5;background:linear-gradient(180deg,#030202e6,#03020200)}.brand{display:flex;align-items:baseline;gap:10px;min-width:0}.brand b{font-weight:800;font-size:20px;color:var(--champagne);letter-spacing:.04em}.brand small{color:var(--muted);font-size:12px;white-space:nowrap}.cost{position:relative;overflow:hidden;flex:none;border:1px solid var(--glass-border);border-radius:999px;padding:3px 12px;font-size:12px;color:var(--muted);background:var(--glass)}.cost b{color:var(--champagne);font-weight:600}.cost i{position:absolute;left:0;bottom:0;height:2px;background:var(--gold);transition:width .6s var(--ease)}.cost.is-high{border-color:#e0915f}.cost.is-high i{background:#e0915f}.scene{position:relative;overflow:hidden;isolation:isolate;margin-top:-56px;padding-top:56px}.sky{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(60% 45% at 50% 24%,rgba(243,212,139,.22),transparent 70%),radial-gradient(90% 60% at 50% 110%,rgba(82,17,29,.85),transparent 70%),linear-gradient(180deg,#0b0607 0%,#1a070c 45%,var(--velvet-deep) 75%,var(--black) 100%)}.stars{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.7;background-image:radial-gradient(1px 1px at 12% 20%,#fff3d2 50%,transparent 51%),radial-gradient(1px 1px at 28% 8%,#f3d48b 50%,transparent 51%),radial-gradient(1.4px 1.4px at 66% 14%,#fff3d2 50%,transparent 51%),radial-gradient(1px 1px at 84% 26%,#f3d48b 50%,transparent 51%),radial-gradient(1px 1px at 40% 30%,#fff3d2 50%,transparent 51%),radial-gradient(1.2px 1.2px at 92% 9%,#fff3d2 50%,transparent 51%),radial-gradient(1px 1px at 6% 46%,#f3d48b 50%,transparent 51%),radial-gradient(1px 1px at 58% 4%,#f3d48b 50%,transparent 51%);animation:twinkle 6s ease-in-out infinite alternate}@keyframes twinkle{to{opacity:.35}}.glow{position:absolute;left:50%;top:24%;width:min(150%,900px);aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 8%,rgba(243,212,139,.09) 10% 12%,transparent 14% 24%,rgba(243,212,139,.07) 26% 28%,transparent 30% 40%,rgba(243,212,139,.09) 42% 44%,transparent 46% 58%,rgba(243,212,139,.07) 60% 62%,transparent 64% 74%,rgba(243,212,139,.09) 76% 78%,transparent 80% 90%,rgba(243,212,139,.07) 92% 94%,transparent 96%);-webkit-mask-image:radial-gradient(closest-side,#000 30%,transparent);mask-image:radial-gradient(closest-side,#000 30%,transparent);animation:spin 90s linear infinite}@keyframes spin{to{rotate:360deg}}.palace{position:absolute;left:50%;top:9%;width:min(480px,92%);translate:-50% 0;opacity:.8}.cloud{position:absolute;border-radius:50%;filter:blur(14px);opacity:.55;background:radial-gradient(closest-side,rgba(255,236,205,.32),rgba(200,154,79,.08) 60%,transparent)}.c1{width:60%;height:18%;left:-10%;top:30%;animation:drift 38s ease-in-out infinite alternate}.c2{width:55%;height:16%;right:-12%;top:50%;animation:drift 44s ease-in-out infinite alternate-reverse}.c3{width:80%;height:20%;left:10%;bottom:-4%;opacity:.45;animation:drift 52s ease-in-out infinite alternate}.c4{width:40%;height:12%;left:30%;top:22%;opacity:.3;animation:drift 30s ease-in-out infinite alternate-reverse}@keyframes drift{to{transform:translate(14%)}}.beams{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.beam-base{fill:none;stroke:#f3d48b38;stroke-width:1.5;vector-effect:non-scaling-stroke}.beam-flow{fill:none;stroke:url(#beamGold);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:10 90;animation:flow 1.6s linear infinite;filter:drop-shadow(0 0 4px #F3D48B)}@keyframes flow{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.deity{position:absolute;translate:-50% 0;margin-top:-30px;display:grid;justify-items:center;gap:0;width:96px;z-index:2}.medal{position:relative;width:60px;height:60px;border-radius:50%;display:grid;place-items:center;color:var(--champagne);background:radial-gradient(circle at 35% 30%,#7a1c2c,var(--velvet) 55%,var(--velvet-deep));box-shadow:0 0 0 1.5px var(--gold),0 0 0 4px #03020299,0 0 0 5px #c89a4f80,0 10px 20px -6px #000;transition:transform .4s var(--ease);animation:float 5s ease-in-out infinite}.deity:nth-child(odd) .medal{animation-delay:-2.4s}@keyframes float{50%{transform:translateY(-4px)}}.medal svg{width:30px;height:30px;filter:drop-shadow(0 0 3px rgba(243,212,139,.5))}.count{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:9px;font-size:11px;line-height:18px;background:var(--champagne);color:var(--black);font-weight:700}.halo,.rays{position:absolute;left:50%;top:30px;width:60px;height:60px;translate:-50% -50%;border-radius:50%;pointer-events:none}.halo{box-shadow:0 0 18px 4px #f3d48b1f;transition:box-shadow .6s var(--ease)}.rays{opacity:0;transition:opacity .5s var(--ease);width:110px;height:110px;background:repeating-conic-gradient(rgba(243,212,139,.35) 0 4deg,transparent 4deg 22deg);-webkit-mask-image:radial-gradient(closest-side,transparent 45%,#000 55%,transparent);mask-image:radial-gradient(closest-side,transparent 45%,#000 55%,transparent);animation:spin 8s linear infinite}.cloud-seat{width:84px;height:16px;margin-top:-6px;border-radius:50%;background:radial-gradient(closest-side,#fff3d273,#fff3d200);filter:blur(2px)}.d-name{font-size:13px;font-weight:600;color:var(--text);line-height:1.3;margin-top:2px;text-shadow:0 1px 4px #000}.d-status{font-size:11px;color:var(--muted);line-height:1.3;text-shadow:0 1px 4px #000}.is-thinking .halo{box-shadow:0 0 22px 8px #f3d48b4d;animation:pulse 1.4s ease-in-out infinite}.is-working .halo{box-shadow:0 0 28px 10px #f3d48b73}.is-working .rays{opacity:1}.is-working .medal{transform:scale(1.08)}.is-waiting .halo{box-shadow:0 0 0 2px var(--champagne),0 0 24px 8px #f3d48b59;animation:pulse 2.4s ease-in-out infinite}:is(.is-thinking,.is-working,.is-waiting) .d-status{color:var(--champagne)}.is-selected .medal{box-shadow:0 0 0 2px var(--champagne),0 0 0 5px #03020299,0 0 0 6px var(--champagne),0 10px 20px -6px #000}@keyframes pulse{50%{opacity:.55}}.is-off .medal{filter:saturate(.35) brightness(.7);animation:none}.is-off .d-name{color:var(--muted)}.deity-card{position:absolute;left:12px;right:12px;bottom:10px;z-index:6;max-width:380px;margin-inline:auto;background:var(--glass);border:1px solid var(--glass-border);border-radius:16px;padding:12px 14px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:rise .35s var(--ease)}.deity-card p{margin:6px 0 0;font-size:14px}.deity-card ul{margin:6px 0 0;padding-left:18px;font-size:14px;color:var(--champagne)}.dc-head{display:flex;align-items:center;gap:10px;color:var(--champagne)}.dc-head div{flex:1;display:grid;line-height:1.3}.dc-head b{color:var(--text)}.dc-head small{color:var(--muted)}.x{width:36px;height:36px;font-size:22px;color:var(--muted)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.panel{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;min-height:0;min-width:0;background:linear-gradient(180deg,var(--black-2),var(--black));border-top:1px solid var(--hair)}.tabs{display:flex;gap:4px;padding:8px 12px 0}.tabs button{padding:8px 14px;min-height:40px;border-radius:10px 10px 0 0;color:var(--muted);font-size:14px;position:relative}.tabs button[aria-selected=true]{color:var(--champagne);background:#52111d59;box-shadow:inset 0 -2px 0 var(--gold)}.badge{display:inline-block;margin-left:6px;min-width:20px;padding:0 6px;border-radius:10px;font-size:12px;line-height:20px;background:var(--champagne);color:var(--black);font-weight:700}.panel-body{overflow-y:auto;padding:12px 16px;min-height:0;overscroll-behavior:contain}.empty{text-align:center;padding:18px 0}.empty p{margin:2px 0}.running{display:flex;gap:10px;align-items:center;padding:10px 12px;margin-bottom:8px;border:1px dashed var(--glass-border);border-radius:12px}.running span:last-child{display:grid;line-height:1.4;min-width:0}.running small{color:var(--champagne)}.spinner{width:16px;height:16px;flex:none;border-radius:50%;border:2px solid rgba(243,212,139,.25);border-top-color:var(--champagne);animation:spin 1s linear infinite}.job{border:1px solid var(--glass-border);border-radius:16px;padding:14px;margin-bottom:12px;background:linear-gradient(165deg,#52111d61,#080505b3);animation:rise .4s var(--ease)}.job header{display:grid;line-height:1.4;margin-bottom:10px}.job header small{color:var(--muted);font-size:12px}.job.is-paused{border-color:#e0915f}.job.is-paused p{margin:0 0 10px;font-size:14px}.preview{position:relative;aspect-ratio:4 / 5;max-width:200px;margin:0 auto 12px;border-radius:12px;overflow:hidden;display:grid;place-content:end center;text-align:center;padding:0 16px 26px;gap:2px;background:radial-gradient(70% 40% at 50% 38%,rgba(243,212,139,.35),transparent 70%),linear-gradient(180deg,var(--velvet-deep),var(--velvet) 60%,var(--black));box-shadow:inset 0 0 0 1px var(--glass-border)}.preview .arch{position:absolute;top:6%;right:8%;bottom:0;left:8%;width:84%;height:94%}.preview .arch path{fill:none;stroke:var(--gold);stroke-width:1.2;vector-effect:non-scaling-stroke}.pv-flame{position:absolute;left:50%;top:30%;width:22px;height:40px;translate:-50% 0;border-radius:50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff3d2,#f3d48b 40%,#c89a4f00 75%);filter:blur(.5px);animation:pulse 2s ease-in-out infinite}.preview b{position:relative;font-size:22px;font-weight:800;color:var(--champagne);line-height:1.3;text-shadow:0 2px 8px #000}.preview span{position:relative;font-size:13px;color:var(--text)}.preview em{position:absolute;top:8px;right:8px;font-style:normal;font-size:11px;padding:1px 8px;border-radius:8px;background:#030202b3;color:var(--muted)}.caption,.extra{border-top:1px solid var(--hair);padding-top:10px;margin-top:10px}.by{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--champagne)}.by .link{margin-left:auto;color:var(--muted);text-decoration:underline;font-size:12px;min-height:32px}.caption p{white-space:pre-line;margin:6px 0 0}.caption .tags{color:var(--gold);font-size:13px}.extra ul{margin:6px 0 0;padding-left:18px;font-size:14px}.actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}.cta{min-height:44px;padding:0 20px;border-radius:999px;color:var(--black);font-weight:700;background:linear-gradient(180deg,#fbe7b4,var(--champagne) 45%,var(--gold));box-shadow:inset 0 1px #ffffffb3,0 6px 16px -8px #f3d48bb3}.cta:disabled{opacity:.45;cursor:default}.ghost{min-height:44px;padding:0 16px;border-radius:999px;border:1px solid var(--glass-border);color:var(--text)}.ghost:hover{background:#f3d48b14}.decide textarea{width:100%;margin-top:12px;padding:10px 12px;border-radius:12px;resize:vertical;background:#03020299;border:1px solid var(--glass-border)}.done h3{font-size:13px;color:var(--muted);font-weight:400;margin:16px 0 4px}.done p{margin:0;font-size:14px}.done small,.memory small{color:var(--muted)}.logs{list-style:none;margin:0;padding:0;font-size:14px}.logs li{display:grid;grid-template-columns:44px 18px 1fr;gap:6px;align-items:start;padding:5px 0;border-bottom:1px solid rgba(226,185,106,.08)}.logs time{color:var(--muted);font-size:12px;padding-top:2px}.logs .dot{color:var(--champagne);padding-top:4px}.memory p{margin:0 0 6px;font-size:14px}.memory .approved{color:var(--text)}.memory .rejected{color:#f0b49a}.memory .reset{margin-top:16px;font-size:13px;min-height:40px}.command{padding:8px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--hair);background:var(--black-2)}.chips{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips button{flex:none;font-size:12px;padding:4px 12px;min-height:32px;border-radius:999px;border:1px solid var(--hair);color:var(--muted);white-space:nowrap}.chips button:hover{color:var(--champagne);border-color:var(--glass-border)}.cmd-row{display:flex;gap:8px}.cmd-row input{flex:1;min-width:0;min-height:46px;padding:0 14px;border-radius:999px;background:#030202b3;border:1px solid var(--glass-border);font-size:16px}.cmd-row input::placeholder{color:#fff7df73}.banner{margin:0 0 10px;padding:8px 12px;border-radius:12px;font-size:14px;border:1px solid #e0915f;color:#f7c9ad;background:#e0915f1a}.warn{margin-top:10px;padding:8px 12px;border-radius:12px;font-size:14px;border:1px solid #e0915f;color:#f7c9ad}.warn p{margin:0}.info{margin-top:10px;font-size:13px;color:var(--muted)}.info p{margin:2px 0 0}.gate{height:100dvh;display:grid;place-content:center;gap:12px;padding:24px;text-align:center;max-width:420px;margin:auto}.gate h1{margin:0;font-size:28px;color:var(--champagne)}.gate p{margin:0}.gate input{min-height:46px;padding:0 14px;border-radius:999px;text-align:center;background:#030202b3;border:1px solid var(--glass-border);font-size:16px}.sim-note{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 50px);translate:-50% 0;margin:0;z-index:4;font-size:11px;color:var(--muted);padding:0 10px;border-radius:8px;background:#03020280;pointer-events:none}@media (min-width: 960px){.app{grid-template-columns:minmax(0,1fr) 420px;grid-template-rows:auto minmax(0,1fr)}.top{grid-column:1 / -1}.scene{margin-top:0;padding-top:0}.panel{border-top:0;border-left:1px solid var(--hair)}.deity{width:120px;margin-top:-39px}.medal{width:78px;height:78px}.medal svg{width:38px;height:38px}.halo{width:78px;height:78px;top:39px}.rays{width:140px;height:140px;top:39px}.cloud-seat{width:110px}.d-name{font-size:15px}.d-status{font-size:12px}.sim-note{top:18px;translate:none;left:auto;right:470px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}}.scene{container-type:size;margin:0;padding:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#4a2943,#180e20 70%,#0c0910)}.court-stage{position:relative;isolation:isolate;width:min(100%,133.333cqh);aspect-ratio:4/3;background:url(/council/hall.jpg) center/100% 100%;overflow:hidden;box-shadow:0 0 54px #120a17}.court-stars{pointer-events:none}.court-actor{position:absolute;height:var(--figure-size);aspect-ratio:1;transform:translate(-50%,-100%);transition:left 1.75s ease-in-out,top 1.75s ease-in-out;touch-action:manipulation}.court-sprite{display:block;height:100%;width:100%;background:url(/council/poses.png) no-repeat;background-size:900% 600%;background-position:7.8125% var(--row);transform:scaleX(var(--face));transform-origin:center bottom;animation:court-breathe 4s ease-in-out infinite alternate}.court-actor:nth-of-type(2n) .court-sprite{animation-delay:-2s}.court-label{position:absolute;top:100%;left:50%;transform:translate(-50%);white-space:nowrap;padding:1px 8px;font-size:clamp(10px,1.4cqw,15px);border:1px solid #ac864e;color:#fff1ce;background:#2b1626ed;border-radius:12px;line-height:1.5}.court-actor.is-working .court-label,.court-actor[aria-pressed=true] .court-label{background:#f3d48b;color:#321a19}.court-actor.phase-rising .court-sprite{background-position-x:35.9375%}.phase-standing .court-sprite{background-position-x:64.0625%;filter:drop-shadow(0 0 6px #f7d787)}.phase-outbound .court-sprite,.phase-returning .court-sprite{animation:court-stride .52s step-end infinite}@keyframes court-stride{0%,to{background-position-x:64.0625%}50%{background-position-x:92.1875%;translate:0 -1.4%}}@keyframes court-breathe{to{scale:1 1.012}}.scene .deity-card{z-index:100;background:#1e1223f2}@media (orientation: portrait){.app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto min(75vw,53dvh) minmax(0,1fr)}.panel{border-left:0;border-top:1px solid var(--hair)}}@media (prefers-reduced-motion: reduce){.court-actor{transition:none}}.video-editor{display:grid;gap:14px;padding:6px 0 18px}.video-editor h3{margin:0;color:var(--champagne)}.video-editor label{display:grid;gap:5px;font-size:14px}.video-editor :is(select,input){width:100%;padding:9px;background:#21131c;border:1px solid var(--hair);border-radius:8px;color:var(--text)}.video-editor video{width:100%;max-height:42vh;background:#080507}.video-editor a{color:var(--champagne)}.preview.real{margin:0;display:grid;gap:6px;background:none;border:0;padding:0;aspect-ratio:auto}.preview.real img{width:100%;max-height:420px;object-fit:contain;border-radius:12px;background:#00000040}.preview.real figcaption{font-size:12px;opacity:.75}
