@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/newsreader-latin-DBQoWVJ5.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:italic;font-weight:200 800;font-display:swap;src:url(/assets/newsreader-latin-italic-DSgQPFUB.woff2) format("woff2")}@font-face{font-family:Work Sans;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/worksans-latin-BGbNWJ1H.woff2) format("woff2")}@font-face{font-family:Work Sans;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/worksans-latin-italic-DX3iizNo.woff2) format("woff2")}:root{--background: #faf9f8;--surface: #faf9f8;--surface-dim: #dadad9;--surface-container-lowest: #ffffff;--surface-container-low: #f4f3f2;--surface-container: #eeeeed;--surface-container-high: #e9e8e7;--secondary: #5d5f5a;--secondary-container: #e0e0da;--on-secondary-container: #62635e;--inverse-surface: #2f3130;--inverse-on-surface: #f0efee;--primary: #6c0c20;--primary-container: #8b2635;--on-primary: #ffffff;--on-background: #1a1c1c;--on-surface-variant: #897172;--outline-variant: #ddc0c0;--font-serif: "Newsreader", Georgia, "Times New Roman", serif;--font-sans: "Work Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}html,body{height:100%;font-family:var(--font-serif);color:var(--on-background);background:var(--background)}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.app-body{display:flex;flex:1;min-height:0}.main-column{display:flex;flex-direction:column;flex:1;min-width:0}.app-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background:linear-gradient(145deg,var(--primary),var(--primary-container));color:var(--on-primary)}.app-brand{display:flex;align-items:center;gap:.6rem}.app-brand-link{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:inherit}.app-logo{width:1.75rem;height:1.75rem;display:block}.app-title{font-family:var(--font-serif);font-size:1.25rem;font-weight:700;letter-spacing:.05em;line-height:1;transform:translateY(.1em)}.beta-badge{font-family:var(--font-sans);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700;padding:.3rem .75rem;margin-left:.5rem;background:#ffd86b;color:#1a1c1c;align-self:center}.header-actions{display:flex;gap:.5rem}.header-button{padding:.4rem 1rem;font-family:var(--font-sans);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:var(--on-primary);background:transparent;border:1px solid rgba(255,255,255,.25);border-radius:0;cursor:pointer;transition:border-color .15s}.header-button:hover{border-color:#ffffffb3}.loading{font-family:var(--font-sans);font-size:.8rem;opacity:.8}.transcript{flex:1;overflow-y:auto;scroll-behavior:smooth;padding:2.5rem 4rem 2rem 5rem;max-width:52rem}.welcome{color:var(--secondary);font-style:italic;padding-top:4rem;text-align:center;font-size:1.1rem}.status-line{display:flex;justify-content:space-between;align-items:baseline;padding:.75rem 4rem .75rem 5rem;max-width:52rem;background:var(--surface-container-low);flex-shrink:0}.room-title{font-family:var(--font-serif);font-size:2rem;font-style:italic;font-weight:400;letter-spacing:-.01em}.score{font-family:var(--font-sans);font-size:.7rem;font-weight:500;color:var(--secondary);text-transform:uppercase;letter-spacing:.06em}.output-frame,.input-frame{background:transparent;transition:background 1.5s ease-out}.output-frame.highlighted,.input-frame.highlighted{background:var(--outline-variant);transition:none}@keyframes reveal-down{0%{clip-path:inset(0 0 100% 0);opacity:0}to{clip-path:inset(0 0 0 0);opacity:1}}.output-frame{margin-bottom:.4rem;animation:reveal-down .4s ease-out}.game-text{font-family:var(--font-serif);font-size:1rem;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.input-frame{margin-bottom:.4rem;animation:reveal-down .2s ease-out}.prompt-marker{color:var(--primary);font-weight:700;transition:opacity .2s ease}.prompt-thinking{opacity:.2;transition-delay:.18s}.command-text{font-family:var(--font-sans);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--primary)}.game-status{margin-top:1.5rem;font-style:italic;color:var(--secondary)}.game-status.error{color:#ba1a1a}.input-bar{display:flex;align-items:center;padding:1.25rem 4rem 1.25rem 5rem;max-width:52rem}.input-bar .prompt-marker{margin-right:.25rem}.input-bar input{flex:1;border:none;border-bottom:2px solid var(--surface-container);outline:none;font-family:var(--font-serif);font-size:1rem;font-style:italic;background:transparent;color:var(--on-background);padding-bottom:.25rem;transition:border-color .2s}.input-bar input:focus{border-bottom-color:var(--primary)}.input-bar input::placeholder{color:var(--on-surface-variant);opacity:.6}.input-bar input:disabled{opacity:.3}.sidebar{width:280px;background:var(--inverse-surface);color:var(--inverse-on-surface);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0}.sidebar-backdrop{display:none}.sidebar-header{padding:1.25rem 1.25rem .75rem}.sidebar-title{font-family:var(--font-sans);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:#ffffff80}.sidebar-section+.sidebar-section{margin-top:.5rem}.todo-list{padding:0 .75rem .75rem}.todo-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;transition:background .1s}.todo-item:hover{background:#ffffff0d}.todo-checkbox{width:1rem;height:1rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,.35);border-radius:0;background:transparent;cursor:pointer;padding:0;color:var(--on-primary);font-size:.65rem;line-height:1;transition:all .15s}.todo-done .todo-checkbox{background:var(--primary);border-color:var(--primary)}.todo-check{display:block}.todo-text{flex:1;font-family:var(--font-serif);font-size:.85rem;color:#fffc;cursor:default;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.todo-done .todo-text{text-decoration:line-through;opacity:.5}.todo-delete{opacity:0;background:transparent;border:none;color:#fff6;cursor:pointer;font-size:.9rem;padding:0 .15rem;line-height:1;transition:opacity .1s,color .1s}.todo-item:hover .todo-delete{opacity:1}.todo-delete:hover{color:#fffc}.todo-add{padding:.25rem .5rem}.todo-add-input,.todo-edit-input{width:100%;border:none;border-bottom:1px solid rgba(255,255,255,.15);outline:none;font-family:var(--font-serif);font-size:.85rem;font-style:italic;background:transparent;color:var(--inverse-on-surface);padding:.25rem 0;transition:border-color .2s}.todo-add-input:focus,.todo-edit-input:focus{border-bottom-color:var(--primary)}.todo-add-input::placeholder{color:#ffffff4d}.history-list{padding:0 .75rem 1rem}.history-entry{display:flex;align-items:baseline;gap:.4rem;padding:.25rem .5rem}.turn-number{font-family:var(--font-sans);font-size:.65rem;font-weight:600;color:#fff6;white-space:nowrap;flex-shrink:0}.turn-location{font-family:var(--font-serif);font-size:.8rem;color:#ffffffb3;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.turn-location-link{cursor:pointer}.turn-location-link:hover{text-decoration:underline;color:#ffffffe6}.history-restore-btn{flex-shrink:0;width:1.5rem;text-align:center;font-size:.75rem;color:#fff6;background:transparent;border:none;cursor:pointer;padding:0;line-height:1;transition:color .15s}.history-restore-btn:hover{color:#fffc}.history-restore-placeholder{visibility:hidden}.history-pagination{display:flex;justify-content:space-between;padding:.4rem 1.25rem .75rem}.history-page-btn{font-family:var(--font-sans);font-size:.6rem;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:#fff6;background:transparent;border:none;cursor:pointer;padding:.2rem 0;transition:color .15s}.history-page-btn:hover{color:#fffc}.launcher{padding:3rem 4rem 2rem 5rem;max-width:52rem}.launcher-heading{font-family:var(--font-sans);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--secondary);margin-bottom:1.5rem}.saved-game-list{display:flex;flex-direction:column;gap:.25rem;margin-bottom:2rem}.saved-game-entry-row{display:flex;align-items:stretch;gap:.25rem}.saved-game-entry-row .saved-game-entry{flex:1}.saved-game-entry{display:flex;flex-direction:column;padding:1rem 1.25rem;background:var(--surface-container-low);cursor:pointer;transition:background .15s;border:none;text-align:left;width:100%}.saved-game-entry:hover{background:var(--surface-container)}.saved-game-delete,.saved-game-export{display:flex;align-items:center;justify-content:center;padding:0 1rem;background:var(--surface-container-low);color:var(--on-surface-variant);cursor:pointer;border:none;font-size:1.25rem;line-height:1;transition:background .15s,color .15s}.saved-game-export:hover{background:var(--surface-container);color:var(--on-background)}.saved-game-delete:hover{background:var(--surface-container);color:var(--error, #b8392e)}.saved-game-entry-open{background:transparent;outline:1px dashed var(--on-surface-variant);outline-offset:-1px;margin-bottom:.75rem}.saved-game-entry-open:hover{background:var(--surface-container-low)}.saved-game-name{font-family:var(--font-serif);font-size:1.1rem;font-style:italic;color:var(--on-background)}.saved-game-location{font-family:var(--font-sans);font-size:.75rem;color:var(--secondary);margin-top:.25rem}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.06)}.sidebar-authorship{font-family:var(--font-sans);font-size:.7rem;color:#ffffff59;padding:1rem 1.25rem .5rem}.authorship-link{color:#ffffff8c;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.15);transition:color .12s ease,border-color .12s ease}.authorship-link:hover,.authorship-link:focus-visible{color:#ffffffd9;border-bottom-color:#fff6}.story-info{display:flex;flex-direction:column;gap:.15rem;padding:.5rem 1.25rem 1rem}.story-name{font-family:var(--font-sans);font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:#ffffff59}.story-version{font-family:var(--font-sans);font-size:.6rem;color:#fff3;letter-spacing:.04em}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100}.dialog{background:var(--surface-container-lowest);padding:2rem 2.5rem;max-width:24rem;box-shadow:0 8px 32px #00000040}.dialog-text{font-family:var(--font-serif);font-size:1rem;line-height:1.5;color:var(--on-background);margin-bottom:1.5rem}.dialog-actions{display:flex;justify-content:flex-end;gap:.75rem}.dialog-btn{padding:.5rem 1.25rem;font-family:var(--font-sans);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.08em;border:none;cursor:pointer;transition:background .15s}.dialog-btn-cancel{background:transparent;color:var(--secondary)}.dialog-btn-cancel:hover{background:var(--surface-container)}.dialog-btn-confirm{background:var(--primary);color:var(--on-primary)}.dialog-btn-confirm:hover{background:var(--primary-container)}.help-dialog{max-width:30rem;display:flex;flex-direction:column;max-height:min(85vh,44rem)}.help-dialog-title{font-family:var(--font-sans);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--secondary);margin:0 0 1.25rem;flex:0 0 auto}.help-dialog-body{flex:1 1 auto;overflow-y:auto;min-height:0;margin-bottom:1.5rem}.help-dialog .dialog-actions{flex:0 0 auto}.help-dialog-intro{font-family:var(--font-serif);font-size:1rem;line-height:1.55;color:var(--on-background);margin:0 0 1.5rem}.help-dialog-text{font-family:var(--font-serif);font-size:1rem;line-height:1.55;color:var(--on-background);margin:0 0 1.25rem}.help-section-title{font-family:var(--font-sans);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--secondary);margin:1.75rem 0 .75rem}.help-dialog-body>:first-child{margin-top:0}.help-list{margin:0 0 1.5rem;padding-left:1.25rem}.help-list li{font-family:var(--font-serif);font-size:1rem;line-height:1.55;color:var(--on-background);margin-bottom:.5rem}.help-command-list{display:flex;flex-direction:column;gap:.5rem;margin:0 0 1.5rem}.help-command{display:grid;grid-template-columns:10rem 1fr;align-items:baseline;column-gap:1rem}.help-command-name{font-family:var(--font-sans);font-size:.85rem;font-weight:600;color:var(--primary)}.help-command-description{font-family:var(--font-serif);font-size:1rem;color:var(--on-background)}.help-dialog-note{font-family:var(--font-serif);font-style:italic;font-size:.9rem;color:var(--secondary);margin:0 0 1.5rem}.load-error-title{font-family:var(--font-sans);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--primary);margin-bottom:.75rem}.crash-banner{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;background:var(--primary);color:var(--on-primary);font-family:var(--font-sans);font-size:.85rem;z-index:1000;box-shadow:0 2px 12px #0003}.crash-banner-text{flex:1}.crash-banner-reload,.crash-banner-close{background:transparent;border:1px solid rgba(255,255,255,.5);color:inherit;padding:.3rem .75rem;font-family:var(--font-sans);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:background .15s}.crash-banner-close{padding:.15rem .5rem;font-size:1rem;text-transform:none;letter-spacing:0}.crash-banner-reload:hover,.crash-banner-close:hover{background:#ffffff26}@media(max-width:768px){.sidebar{width:220px}.status-line{padding:.75rem 1.5rem}.transcript{padding:1.5rem 1.5rem 1rem}.input-bar{padding:1rem 1.5rem}}@media(max-width:32rem){.app-header{padding:.5rem 1rem}.header-button-library .button-label,.header-button-sidebar .button-label,.header-button-help .button-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.header-button-library,.header-button-sidebar,.header-button-help{width:2.5rem;height:2.5rem;padding:0;display:inline-flex;align-items:center;justify-content:center}.header-button-library:before,.header-button-sidebar:before,.header-button-help:before{content:"";display:block;width:1.25rem;height:1.25rem;background-color:currentColor;-webkit-mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-size:contain;mask-repeat:no-repeat;mask-position:center}.header-button-library:before{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='4' y='3' width='3' height='18'/><rect x='9' y='3' width='3' height='18'/><path d='M15.6 4.7l2.9-1 4.5 15-2.9 1z'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><rect x='4' y='3' width='3' height='18'/><rect x='9' y='3' width='3' height='18'/><path d='M15.6 4.7l2.9-1 4.5 15-2.9 1z'/></svg>")}.header-button-sidebar:before{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='3' y='4' width='18' height='16'/><line x1='15' y1='4' x2='15' y2='20'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='3' y='4' width='18' height='16'/><line x1='15' y1='4' x2='15' y2='20'/></svg>")}.header-button-help:before{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='9'/><path d='M9.5 9a2.5 2.5 0 015 0c0 1.5-2.5 2-2.5 4'/><circle cx='12' cy='17' r='0.6' fill='black' stroke='none'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='9'/><path d='M9.5 9a2.5 2.5 0 015 0c0 1.5-2.5 2-2.5 4'/><circle cx='12' cy='17' r='0.6' fill='black' stroke='none'/></svg>")}.sidebar{position:fixed;top:0;right:0;bottom:0;width:min(85vw,20rem);z-index:30;box-shadow:-4px 0 16px #0000004d}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:20}.saved-game-delete,.saved-game-export{min-width:3rem;padding:0 .75rem}}
