@font-face{font-display:swap;font-family:Merriweather;font-style:normal;font-weight:300;src:url(../fonts/merriweather-v33-latin-300.woff2) format("woff2")}@font-face{font-display:swap;font-family:Merriweather;font-style:italic;font-weight:300;src:url(../fonts/merriweather-v33-latin-300italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Merriweather;font-style:normal;font-weight:700;src:url(../fonts/merriweather-v33-latin-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:Merriweather;font-style:italic;font-weight:700;src:url(../fonts/merriweather-v33-latin-700italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:400;src:url(../fonts/inter-v20-latin-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:400;src:url(../fonts/inter-v20-latin-italic.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-style:normal;font-weight:700;src:url(../fonts/inter-v20-latin-700.woff2) format("woff2")}@font-face{font-display:swap;font-family:Inter;font-style:italic;font-weight:700;src:url(../fonts/inter-v20-latin-700italic.woff2) format("woff2")}@font-face{font-family:OpenDyslexic;src:url(../fonts/OpenDyslexic-Regular.woff2) format("woff2"),url(../fonts/OpenDyslexic-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(../fonts/OpenDyslexic-Bold.woff2) format("woff2"),url(../fonts/OpenDyslexic-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(../fonts/OpenDyslexic-Italic.woff2) format("woff2"),url(../fonts/OpenDyslexic-Italic.woff) format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-display:swap;font-family:Material Icons;font-style:normal;font-weight:400;src:url(../fonts/material-icons-v145-latin-regular.woff2) format("woff2")}@font-face{font-display:swap;font-family:Material Icons Outlined;font-style:normal;font-weight:400;src:url(../fonts/material-icons-outlined-v110-latin-regular.woff2) format("woff2")}.material-icons,.material-icons-outlined{font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.material-icons,.material-icons-outlined{overflow:hidden;width:1em;height:1em}.settings-tab .material-icons-outlined{width:1.4rem;height:1.4rem}.material-icons{font-family:Material Icons}.material-icons-outlined{font-family:Material Icons Outlined}:root{--container-bg-opacity: 98%;--font-serif: "Merriweather", Georgia, "Times New Roman", Times, serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-dyslexic: "OpenDyslexic", Arial, sans-serif;--font-heading: "Merriweather", Georgia, "Times New Roman", Times, serif;--font-monospace: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--font-main: var(--font-serif);--font-weight-light: 300;--font-weight-normal: 400;--font-weight-bold: 700;--text-size-base: 13pt;--text-size-small: 8pt;--text-size-medium: 9pt;--text-size-large: 15pt;--text-size-xl: 16pt;--text-size-xxl: 18pt;--text-size-title: 30pt;--text-size-title-smaller: 20pt;--text-size-subtitle: 14pt;--text-size-tiny: 11pt;--spacing-xs: 3px;--spacing-sm: 6px;--spacing-md: 8px;--spacing-lg: 10px;--spacing-xl: 12px;--spacing-xxl: 15px;--spacing-huge: 30px;--spacing-massive: 60px;--content-max-width: 700px;--nav-height-desktop: 60px;--nav-height-mobile: 115px;--border-radius: 3px;--border-radius-lg: 8px;--transition-fast: .1s;--transition-medium: .2s;--transition-slow: .6s;--transition-very-slow: 2s;--line-height-heading: 1.2em;--line-height-text: 1.7em;--line-height-choice: 1.7em;--line-height-list: 1.6em;--line-height-tight: 1;--stat-bar-height: 10px;--stat-bar-border-radius: 5px}:root{--palette-black: #0a0a0a;--palette-gray-950: #0a0a0a;--palette-gray-900: #171717;--palette-gray-800: #262626;--palette-gray-700: #404040;--palette-gray-600: #525252;--palette-gray-500: #737373;--palette-gray-400: #a3a3a3;--palette-gray-300: #d4d4d4;--palette-gray-200: #e5e5e5;--palette-gray-100: #f5f5f5;--palette-gray-50: #fafafa;--palette-white: #fafafa;--palette-accent: #0d9488;--palette-accent-light: #5eead4;--palette-accent-dark: #115e59;--palette-danger: #991b1b;--palette-danger-light: #f87171;--palette-warning: #b45309;--palette-warning-light: #fcd34d;--palette-success: #166534;--palette-success-light: #86efac;--palette-debug: #ff00ff;--color-background: var(--palette-gray-200);--color-hover-bg: var(--palette-gray-300);--color-text-primary: var(--palette-gray-900);--color-text-secondary: var(--palette-gray-700);--color-text-strong: var(--palette-black);--color-accent-primary: var(--palette-black);--color-accent-secondary: var(--palette-gray-500);--color-warning-primary: var(--palette-warning);--color-warning-secondary: var(--palette-warning-light);--color-danger-primary: var(--palette-danger);--color-danger-secondary: var(--palette-danger-light);--color-success-primary: var(--palette-success);--color-success-secondary: var(--palette-success-light);--color-border-light: var(--palette-gray-300);--color-border-medium: var(--palette-gray-500);--color-code-bg: var(--palette-gray-700);--color-blockquote-bg: var(--palette-gray-300);--color-blockquote-border: var(--palette-gray-700);--color-blockquote-text: var(--color-text-primary);--color-separator-line: var(--palette-gray-500);--color-highlight: yellow;--color-important: var(--color-danger-primary);--color-quiet: var(--color-text-secondary);--stat-bar-track-bg: var(--palette-gray-300);--stat-bar-fill-bg: var(--color-accent-primary);--color-disabled: var(--palette-debug)}html.dark body,body.dark{--color-background: var(--palette-gray-800);--color-hover-bg: var(--palette-gray-700);--color-text-primary: var(--palette-gray-100);--color-text-secondary: var(--palette-gray-300);--color-text-strong: var(--palette-white);--color-accent-primary: var(--palette-white);--color-accent-secondary: var(--palette-gray-500);--color-warning-primary: var(--palette-warning-light);--color-warning-secondary: var(--palette-warning);--color-danger-primary: var(--palette-danger-light);--color-danger-secondary: var(--palette-danger);--color-success-primary: var(--palette-success-light);--color-success-secondary: var(--palette-success);--color-border-light: var(--palette-gray-700);--color-border-medium: var(--palette-gray-500);--color-code-bg: var(--palette-gray-300);--color-blockquote-bg: var(--palette-gray-700);--color-blockquote-border: var(--palette-gray-300);--color-blockquote-text: var(--color-text-primary);--color-separator-line: var(--palette-gray-500);--color-highlight: yellow;--color-important: var(--color-danger-primary);--color-quiet: var(--color-text-secondary);--stat-bar-track-bg: var(--palette-gray-700);--stat-bar-fill-bg: var(--color-accent-primary)}html.dark{color-scheme:dark}:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body{font-family:var(--font-main);font-weight:lighter;background:var(--color-background);overflow:hidden;color:var(--color-text-primary)}@media screen and (prefers-reduced-motion:no-preference){body.switched{transition:color var(--transition-slow),background-color var(--transition-slow)}}h1,h2,h3,h4{text-align:center;font-family:var(--font-heading);line-height:var(--line-height-heading);margin:0;padding:0}h1,h2{font-size:var(--text-size-title);font-weight:var(--font-weight-bold);margin-top:var(--spacing-massive);margin-bottom:var(--spacing-massive)}h3{text-align:left;font-size:var(--text-size-title-smaller);font-style:strong;font-weight:var(--font-weight-bold);color:var(--color-text-secondary);margin-top:var(--spacing-huge);margin-bottom:var(--spacing-huge)}h4{text-align:left;font-size:var(--text-size-subtitle);font-style:strong;font-weight:var(--font-weight-bold);color:var(--color-text-secondary)}.title{font-family:var(--font-heading);font-weight:700}p{font-size:var(--text-size-base);color:var(--color-text-primary);line-height:var(--line-height-text);font-weight:var(--font-weight-light)}a{font-weight:700;color:var(--color-accent-primary);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}.unclickable{font-weight:700;color:var(--color-accent-secondary);text-decoration:none;cursor:not-allowed}a:hover{color:var(--color-accent-secondary);text-decoration:none}@media screen and (prefers-reduced-motion:no-preference){a{transition:color var(--transition-slow)}a:hover{transition:color var(--transition-fast)}}strong{color:var(--color-text-strong);font-weight:var(--font-weight-bold)}ul{margin:.5em 0;padding-left:1.5em;color:var(--color-text-primary)}li{margin:.3em 0;line-height:var(--line-height-list);color:var(--color-text-primary);font-size:var(--text-size-base)}blockquote{margin:1em 0;padding:.5em 1em;border-left:3px solid var(--color-blockquote-border);background:var(--color-blockquote-bg);font-style:italic;color:var(--color-blockquote-text)}hr{border-top:1px solid var(--color-separator-line);color:transparent;width:50%;margin:0 auto;margin-top:var(--spacing-massive);margin-bottom:var(--spacing-massive)}.end{text-align:center;font-weight:700;color:var(--color-text-strong);padding-top:var(--spacing-huge);padding-bottom:var(--spacing-huge)}img{display:block;margin:0 auto;max-width:100%}.container .hide{opacity:0}.container .invisible{display:none}@media screen and (prefers-reduced-motion:no-preference){.container>*{transition:opacity var(--transition-very-slow)}}body .container>*{transition:opacity var(--transition-very-slow)}@media screen and (prefers-reduced-motion:reduce){body .container>*{transition:none}}.header{padding-top:1em;padding-bottom:1em}.byline{font-style:italic}.outerContainer{position:absolute;display:block;margin:0;padding:0;-webkit-overflow-scrolling:touch;overflow:scroll;overflow-x:hidden;height:calc(100% - var(--nav-height-desktop));width:100%;top:var(--nav-height-desktop);left:0}@media screen and (max-width:680px){.outerContainer{height:calc(100% - var(--nav-height-mobile));top:var(--nav-height-mobile)}}.container{display:block;max-width:var(--content-max-width);margin:5px auto 120px;padding:var(--spacing-huge);padding-top:var(--spacing-sm);padding-bottom:var(--spacing-huge);background:transparent;position:relative;z-index:1}.container:before{content:"";position:absolute;inset:0;background:var(--color-background);opacity:var(--container-bg-opacity);z-index:-1;pointer-events:none}@media screen and (max-width:680px){.container{margin-top:0}}@media screen and (prefers-reduced-motion:no-preference){.switched .container{transition:background-color var(--transition-slow)}}.loading-screen{position:fixed;inset:0;background:var(--color-background);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .3s ease}.loading-screen.hidden{opacity:0;pointer-events:none}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-border-light);border-top-color:var(--color-accent-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation:none;border-top-color:var(--color-border-light);border-right-color:var(--color-accent-primary);border-bottom-color:var(--color-accent-primary)}}.top-nav{position:fixed;top:0;left:0;right:0;z-index:4;background:var(--color-background);border-bottom:1px solid var(--color-border-light);padding:var(--spacing-xl) var(--spacing-huge);display:flex;justify-content:space-between;align-items:center}@media screen and (prefers-reduced-motion:no-preference){.top-nav{transition:color var(--transition-slow),background var(--transition-slow),border-color var(--transition-slow)}}.nav-title-section{display:flex;align-items:baseline;gap:var(--spacing-md)}.nav-title{font-size:var(--text-size-xxl);font-weight:var(--font-weight-bold);margin:0;text-align:left;font-family:Quattrocento,Georgia,Times New Roman,Times,serif;font-family:var(--font-heading);cursor:pointer;min-height:44px}.nav-title-wrapper{position:relative}.nav-title-btn{position:absolute;inset:0;background:transparent;border:none;cursor:pointer}.nav-byline{font-size:var(--text-size-tiny);font-style:italic;font-weight:var(--font-weight-light);color:var(--color-text-primary);margin:0}.nav-controls{display:flex;gap:var(--spacing-xl);font-size:var(--text-size-medium);align-items:center}.nav-controls button{background:none;border:none;cursor:pointer;font-weight:700;color:var(--color-accent-primary);font-family:sans-serif;border-radius:var(--border-radius);transition:background-color var(--transition-medium);min-height:44px;min-width:44px;padding:var(--spacing-md) var(--spacing-lg)}.nav-controls button:hover{background-color:var(--color-hover-bg)}.nav-controls [disabled]{color:var(--color-disabled);cursor:not-allowed}.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--color-background);color:var(--color-accent-primary);padding:.5rem 1rem;text-decoration:none;font-weight:700}.skip-link:focus{left:0}@media screen and (max-width:680px){.top-nav{flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg) var(--spacing-xxl)}.nav-title-section{justify-content:center}.nav-title{text-align:center;font-size:var(--text-size-xl);cursor:default}.nav-title-btn,.nav-byline{display:none}.nav-controls{justify-content:center;flex-wrap:wrap;gap:var(--spacing-md)}.nav-controls button{font-size:var(--text-size-small);min-height:44px;min-width:44px;padding:var(--spacing-sm) var(--spacing-md)}}.panel-separator{border:none;border-top:1px solid var(--color-border-medium);width:90%;opacity:.5}.slide-panel{position:fixed;top:var(--nav-height-desktop);left:0;right:0;height:0;background:var(--color-background);box-shadow:0 4px 12px #00000026;z-index:3;overflow:hidden;transition:height var(--transition-medium) ease;display:flex;flex-direction:column}.slide-panel.show{height:calc(100vh - var(--nav-height-desktop));height:calc(100dvh - var(--nav-height-desktop))}@media screen and (max-width:680px){.slide-panel{top:var(--nav-height-mobile)}.slide-panel.show{height:calc(100vh - var(--nav-height-mobile));height:calc(100dvh - var(--nav-height-mobile))}}.panel-content{flex:1;overflow-y:auto;padding:2rem 0;background:var(--color-background)}.panel-link{display:block;padding:1rem 2rem;color:var(--color-text-primary);text-decoration:none;transition:background-color var(--transition-medium);font-size:var(--text-size-base)}.panel-link:hover{background:var(--color-hover-bg);color:var(--color-text-strong)}.panel-close-bottom{flex-shrink:0;background:var(--color-background);border:none;border-top:1px solid var(--color-border-medium);cursor:pointer;font-size:1.5rem;color:var(--color-text-secondary);transition:all var(--transition-medium);text-align:center;width:100%;padding:1rem;min-height:44px}.panel-close-bottom:hover{background:var(--color-hover-bg);color:var(--color-text-strong)}#pages-menu-btn.active{background-color:var(--color-hover-bg)}.choices-container{margin-top:1em}.choice{display:block;width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:inherit;font-size:var(--text-size-base);font-weight:700;color:inherit;line-height:var(--line-height-choice);position:relative;padding:.5em 0 .5em 1.5em;min-height:44px}.choice:after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background-color:var(--color-accent-primary);transition:width var(--transition-medium, .2s) ease-out}.choice:hover{color:var(--color-accent-primary)}.choice:hover:after{width:100%}.choice:focus-visible{outline:2px solid var(--color-accent-primary);outline-offset:2px}.choice:focus-visible:after{width:100%}@media(prefers-reduced-motion:reduce){.choice:after{transition:none}}.choice.unclickable{cursor:not-allowed;opacity:.6;color:var(--color-text-secondary)}.choice.unclickable:hover:after,.choice:disabled:hover:after{width:100%;background-color:transparent;border-bottom:2px dashed var(--color-text-secondary);height:0}:not(.choice)+.choice{padding-top:.75em}.choice-key-hint{color:var(--color-text-secondary);margin-right:.3em}.choice:hover .choice-key-hint,.choice:focus-within .choice-key-hint{color:inherit}.choice-numbers-off .choice-key-hint{display:none}.choice-numbers-auto .choice-key-hint{display:inline}@media(hover:none)and (pointer:coarse){.choice-numbers-auto .choice-key-hint{display:none}}.choice-numbers-on .choice-key-hint{display:inline}.tone-indicator-leading{position:absolute;left:0;top:50%;transform:translateY(-50%)}.tone-indicator-trailing{margin-left:.3em;opacity:.85}.tone-icon{font-size:.95em;line-height:1;vertical-align:baseline}.tone-icon.material-icons{font-size:1.1em;vertical-align:middle}.tone-indicator-trailing .tone-icon{font-size:.85em}.tone-indicator-trailing .tone-icon.material-icons{font-size:.95em}.tone-indicator-trailing .tone-icon+.tone-icon{margin-left:.15em}.story-image{max-width:100%;height:auto;display:block;margin:1em auto}.story-image.image-center{display:block;margin:1em auto;float:none}.story-image.image-left{float:left;margin:.5em 1.5em 1em 0}.story-image.image-right{float:right;margin:.5em 0 1em 1.5em}#story p:after{content:"";display:table;clear:both}.story-figure{max-width:100%;margin:1em auto;padding:0}.story-figure.figure-center{display:block;margin:1em auto;float:none}.story-figure.figure-left{float:left;margin:.5em 1.5em 1em 0}.story-figure.figure-right{float:right;margin:.5em 0 1em 1.5em}.story-figure .story-image{display:block;margin:0;float:none}.story-caption{font-size:.9em;color:var(--color-text-secondary);text-align:center;font-style:italic;padding:.5em .5em 0;line-height:1.4}code{background:var(--color-code-bg);padding:.2em .4em;border-radius:var(--border-radius);font-family:var(--font-monospace);font-size:.9em;color:var(--color-background)}.inline-center{display:block;text-align:center;margin:0;padding:0}.inline-highlight{background:var(--color-highlight);padding:.1em .3em}html.dark .inline-highlight,body.dark .inline-highlight{color:var(--color-background)}.inline-important{color:var(--color-important);font-weight:700}.inline-quiet{color:var(--color-quiet);font-size:.9em}.dramatic{color:var(--color-important);font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.whisper{color:var(--color-quiet);font-size:.85em;font-style:italic}.glowing{color:var(--color-accent-primary, #0d9488);text-shadow:0 0 10px currentColor}.old-paper{background:#8b775c26;padding:.8em 1em;border-left:3px solid rgba(139,119,92,.5);font-style:italic}.stat-bar-container{margin:1em 0;width:100%}.stat-bar-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.3em;font-size:1em}.stat-bar-label{color:var(--color-text-primary);font-weight:var(--font-weight-normal)}.stat-bar-value{color:var(--color-text-secondary);font-weight:var(--font-weight-bold)}.stat-bar-current{color:var(--stat-bar-fill-bg)}.stat-bar-track{width:100%;height:var(--stat-bar-height);background:var(--stat-bar-track-bg);border-radius:var(--stat-bar-border-radius);overflow:hidden}.stat-bar-fill{height:100%;background:var(--stat-bar-fill-bg);border-radius:var(--stat-bar-border-radius);min-width:0}@media screen and (prefers-reduced-motion:no-preference){.stat-bar-fill{transition:width .3s ease}}.stat-bar-opposed .stat-bar-labels{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.3em;font-size:1em}.stat-bar-label-left,.stat-bar-label-right{color:var(--color-text-primary)}.user-input-inline-container{margin:1rem 0;padding:1rem;background:var(--color-hover-bg);border-radius:var(--border-radius-lg);border:2px solid var(--color-accent-primary)}.user-input-prompt{display:flex;gap:.5rem;margin-bottom:.5rem}.user-input-inline-field{flex:1;padding:.5rem;min-height:44px;border:2px solid var(--color-border-medium);border-radius:var(--border-radius);background:var(--color-background);color:var(--color-text-primary);font-size:1rem;transition:border-color var(--transition-medium)}.user-input-inline-field:focus{outline:none;border-color:var(--color-accent-primary)}.user-input-submit-btn{padding:.75rem 1.5rem;min-height:44px;background:var(--color-accent-primary);color:var(--color-background);border:none;border-radius:var(--border-radius);cursor:pointer;font-weight:600;transition:background-color var(--transition-medium)}.user-input-submit-btn:hover{background:var(--color-accent-secondary)}.user-input-help{font-size:.8rem;color:var(--color-text-secondary);text-align:center;font-style:italic}.user-input-response{font-weight:700;color:var(--color-accent-primary);font-style:italic;margin:.5rem 0;padding:.5rem 1rem;background:var(--color-hover-bg);border-left:3px solid var(--color-accent-primary);border-radius:var(--border-radius)}@media screen and (max-width:680px){.user-input-prompt{flex-direction:column}.user-input-submit-btn{width:100%}}:root{--notification-spacing: 10px}.notification-container{display:flex;flex-direction:column;gap:var(--notification-spacing);max-width:400px}.notification-container[data-position^=top]{flex-direction:column}.notification-container[data-position^=bottom]{flex-direction:column-reverse}.notification-item{background:var(--color-background);border:1px solid var(--color-border-medium);border-radius:var(--border-radius-lg);padding:1rem 1.5rem;box-shadow:0 4px 12px #00000026;font-size:.9rem;font-weight:600;pointer-events:auto;cursor:pointer;position:relative;overflow:hidden;transform:translate(100%);opacity:0;transition:all var(--transition-medium) ease;min-width:250px;max-width:400px;word-wrap:break-word}.notification-item.notification-visible{transform:translate(0);opacity:1}.notification-item.notification-info{border-left:4px solid var(--color-text-secondary);color:var(--color-text-primary)}.notification-item.notification-success{border-left:4px solid var(--color-success-primary);color:var(--color-text-primary)}.notification-item.notification-error{border-left:4px solid var(--color-danger-primary);color:var(--color-text-primary)}.notification-item.notification-warning{border-left:4px solid var(--color-warning-primary);color:var(--color-text-primary)}.notification-item.notification-critical{background:var(--color-danger-primary);color:var(--color-background);border:none}.notification-close{position:absolute;top:0;right:0;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--color-text-secondary);width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color var(--transition-medium)}.notification-close:hover{background:var(--color-hover-bg)}.notification-critical .notification-close{color:#fffc}.notification-critical .notification-close:hover{background:#fff3}.notification-icon{display:inline-block;margin-right:.5rem;font-style:normal}.notification-content{margin-right:1.5rem}.notification-progress{position:absolute;bottom:0;left:0;height:3px;background:currentColor;opacity:.3;transition:width linear}@media screen and (max-width:480px){.notification-container{max-width:calc(100vw - 40px);left:20px!important;right:20px!important;transform:none!important}.notification-item{min-width:auto;max-width:none}}.base-modal-backdrop{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1000;display:none;opacity:0;transition:opacity var(--transition-medium) ease}.base-modal-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);background:var(--color-background);border:1px solid var(--color-border-medium);border-radius:var(--border-radius-lg);padding:2rem;max-width:500px;width:90%;max-height:80vh;overflow:hidden;box-shadow:0 10px 30px #0000004d;transition:transform var(--transition-medium) ease;z-index:1001;display:flex;flex-direction:column;box-sizing:border-box}.base-modal-content.modal-open{transform:translate(-50%,-50%) scale(1)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-shrink:0}.modal-header h2{margin:0;color:var(--color-text-strong);font-size:1.5rem;text-align:left}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--border-radius);transition:background-color var(--transition-medium);padding:.5rem;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.modal-close:hover{background:var(--color-hover-bg)}.modal-body{flex:1;overflow-y:auto;min-height:0;-webkit-overflow-scrolling:touch;padding-left:.75rem;padding-right:.75rem}.modal-footer{flex-shrink:0;margin-top:1.5rem;text-align:right;border-top:1px solid var(--color-border-light);padding-top:1rem}.modal-footer-right{display:flex;justify-content:flex-end;gap:.5rem}.modal-footer-split{display:flex;justify-content:space-between;gap:.5rem}.modal-button{padding:.5rem 1rem;min-height:44px;min-width:44px;border:none;border-radius:var(--border-radius);cursor:pointer;transition:all .2s ease;font-weight:600;margin-left:.5rem;font-size:1rem}.modal-button-primary{background:var(--color-accent-primary);color:var(--color-background)}.modal-button-primary:hover{background:var(--color-accent-secondary)}.modal-button-secondary{background:none;border:1px solid var(--color-border-medium);color:var(--color-text-primary)}.modal-button-secondary:hover{background:var(--color-hover-bg)}.modal-button-danger{background:var(--color-danger-primary);color:var(--color-background)}.modal-button-danger:hover{background:var(--color-danger-secondary)}.modal-button-warning{background:var(--color-warning-primary);color:var(--color-background)}.modal-button-warning:hover{background:var(--color-warning-secondary)}.base-modal-content.modal-small{max-width:400px}.base-modal-content.modal-medium{max-width:500px}.base-modal-content.modal-large{max-width:600px}.base-modal-content.modal-wide{max-width:700px}.settings-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--color-border-light);margin-bottom:1.5rem}.settings-tab{padding:.75rem 1rem;min-height:44px;background:none;border:none;cursor:pointer;opacity:.5;transition:opacity .2s,border-color .2s;border-bottom:2px solid transparent;margin-bottom:-1px}.settings-tab:hover{opacity:.8}.settings-tab.active{opacity:1;border-bottom-color:var(--color-accent-primary)}.settings-tab .material-icons-outlined{font-size:1.4rem;color:var(--color-text-primary)}.settings-panels{display:grid}.settings-panel{grid-area:1 / 1;visibility:hidden;opacity:0;transition:opacity var(--transition-medium) ease}.settings-panel.active{visibility:visible;opacity:1}.settings-section h3{margin:1.5rem 0 1rem;color:var(--color-text-strong);font-size:1.1rem}.settings-section:first-child h3{margin-top:0}.setting-item{margin-bottom:1.5rem}.setting-item:last-child{margin-bottom:1rem}.setting-label{display:block;margin-bottom:.5rem;color:var(--color-text-primary);font-weight:600}.setting-checkbox-label{display:flex;align-items:center;gap:.5rem;color:var(--color-text-primary);cursor:pointer;min-height:44px}.setting-checkbox{width:1.2rem;height:1.2rem;accent-color:var(--color-accent-primary);min-width:20px;min-height:20px}.setting-select{width:100%;padding:.75rem;min-height:44px;border:1px solid var(--color-border-medium);border-radius:var(--border-radius);background:var(--color-background);color:var(--color-text-primary);font-size:1rem}.saves-section h3{margin:0 0 1rem;color:var(--color-text-strong);font-size:1.1rem}.save-slots-container{margin-bottom:2rem}.save-slot{border-radius:var(--border-radius);padding:1rem;margin-bottom:.5rem;transition:all .2s ease;border:1px solid var(--color-border-medium)}.save-slot.autosave-slot{border:2px solid var(--color-accent-primary);background:var(--color-hover-bg);margin-bottom:1rem}.save-slot:hover{background:var(--color-hover-bg)}.save-slot.autosave-slot:hover{background:var(--color-background);color:var(--color-text-primary)}.save-slot-content{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.save-slot-info{display:flex;flex-direction:column;gap:.25rem;min-width:0}.save-slot-name{color:var(--color-text-strong);font-weight:600}.save-slot-date,.save-slot-meta{color:var(--color-text-secondary);font-size:.85rem}.save-slot-actions{display:grid;grid-template-columns:repeat(2,auto);gap:.5rem;flex-shrink:0}.save-slot-actions>:last-child:nth-child(3){grid-column:2}.save-action-button{padding:.4rem .8rem;min-height:44px;min-width:44px;border:none;border-radius:var(--border-radius);cursor:pointer;font-size:.8rem;transition:all .2s ease}.save-action-primary{background:var(--color-accent-primary);color:var(--color-background)}.save-action-secondary{background:none;border:1px solid var(--color-accent-primary);color:var(--color-accent-primary)}.save-action-warning{background:var(--color-warning-primary);color:var(--color-background)}.save-action-danger{background:var(--color-danger-primary);color:var(--color-background)}.import-export-info{font-size:.9rem;color:var(--color-text-secondary);line-height:1.4;padding:1rem;background:var(--color-hover-bg);border-radius:var(--border-radius)}.keyboard-help-section h3{margin:1rem 0 .5rem;color:var(--color-text-strong);font-size:1rem}.keyboard-help-section:first-child h3{margin-top:0}.keyboard-help-table{width:100%;border-collapse:collapse}.keyboard-help-table td{padding:.4rem .5rem;border-bottom:1px solid var(--color-border-light)}.keyboard-help-table .shortcut-key{width:45%;text-align:left;font-weight:400}.keyboard-help-table kbd{background:var(--color-hover-bg);border:1px solid var(--color-border-medium);border-radius:3px;padding:.15rem .4rem;font-family:monospace;font-size:.85rem}.keyboard-help-note{margin-top:1rem;font-size:.9rem;color:var(--color-text-secondary)}.keyboard-help-btn{width:100%;padding:.6rem 1rem;background:var(--color-hover-bg);border:1px solid var(--color-border-medium);border-radius:var(--border-radius);color:var(--color-text-primary);cursor:pointer;font-size:.95rem}.keyboard-help-btn:hover{background:var(--color-border-light)}.error-modal-content{border:2px solid var(--color-danger-primary)}.error-modal-icon{color:var(--color-danger-primary);vertical-align:middle;margin-right:.5rem;font-size:1.5rem}.error-modal-message{font-size:1rem;line-height:1.5;margin:0 0 1rem;color:var(--color-text-primary)}.error-modal-suggestions{margin-bottom:1rem}.error-modal-suggestions p{margin:0 0 .5rem;color:var(--color-text-primary)}.error-modal-suggestions ul{margin:0;padding-left:1.5rem}.error-modal-suggestions li{margin-bottom:.25rem;color:var(--color-text-secondary)}.error-modal-details{margin-top:1rem;border:1px solid var(--color-border-medium);border-radius:var(--border-radius);overflow:hidden}.error-modal-details summary{padding:.75rem 1rem;background:var(--color-hover-bg);cursor:pointer;font-size:.9rem;color:var(--color-text-secondary)}.error-modal-details summary:hover{background:var(--color-background)}.error-modal-details pre{margin:0;padding:1rem;font-size:.85rem;font-family:Courier New,Courier,monospace;line-height:1.4;background:var(--color-hover-bg);border-top:1px solid var(--color-border-medium);overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:var(--color-text-primary);max-height:200px;overflow-y:auto}.error-modal-console-hint{margin:.75rem 1rem;font-size:.8rem;color:var(--color-text-secondary)}.error-modal-console-hint kbd{background:var(--color-hover-bg);border:1px solid var(--color-border-medium);border-radius:3px;padding:.1rem .4rem;font-family:inherit;font-size:.75rem}@media screen and (max-width:680px){.base-modal-content{position:fixed;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;margin:0;padding:1rem;border-radius:0;transform:scale(.95)}.base-modal-content.modal-open{transform:scale(1)}.modal-button{font-size:.9rem;padding:.4rem .8rem}.modal-footer{display:flex;flex-direction:column-reverse;gap:.5rem}.modal-footer .modal-button{margin-left:0;width:100%}.save-slot-content{flex-direction:column;align-items:flex-start;gap:1rem}.save-slot-actions{display:flex;width:100%;gap:.5rem;justify-content:flex-end}.save-action-button{font-size:.7rem;padding:.3rem .6rem}}@media screen and (max-width:480px){.base-modal-content{position:fixed;inset:0;width:100%;max-width:100%;max-height:100%;margin:0;padding:1rem;border-radius:0;transform:none}.base-modal-content,.base-modal-content.modal-open{transform:none}.modal-header{margin-bottom:1rem}.modal-header h2{font-size:1.25rem}.modal-footer{margin-top:1rem;padding-top:.75rem}.settings-tabs{margin-bottom:1rem}.settings-tab{padding:.5rem .75rem}.setting-item{margin-bottom:.75rem}.setting-item:last-child{margin-bottom:.5rem}.settings-section h3{margin:1rem 0 .75rem;font-size:1rem}.settings-section:first-child h3{margin-top:0}.saves-section h3{margin-bottom:.75rem;font-size:1rem}.save-slot{padding:.75rem}.save-slots-container{margin-bottom:1rem}.import-export-info{padding:.75rem;font-size:.85rem}}
