*,:before,:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{background:var(--srpg-color-bg);color:var(--srpg-color-text);font-family:var(--srpg-font-sans);font-size:var(--srpg-text-md);line-height:var(--srpg-leading-normal);overscroll-behavior:none}button,input,select,textarea{font:inherit}h1,h2,h3{font-family:var(--srpg-font-display);letter-spacing:var(--srpg-tracking-tight)}:focus-visible{outline:var(--srpg-border-focus) solid var(--srpg-color-focus);outline-offset:var(--srpg-border-thin)}.visually-hidden{width:var(--srpg-size-hidden);height:var(--srpg-size-hidden);margin:calc(var(--srpg-size-hidden) * -1);clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.main{grid-template-columns:1fr var(--srpg-size-panel-width);min-height:0;display:grid}.stage{background:var(--srpg-color-bg);min-width:0;min-height:0;position:relative;overflow:hidden}.stage canvas{display:block;position:absolute;top:0;bottom:0;left:0;right:0}.side{gap:var(--srpg-space-3);min-height:0;padding:var(--srpg-space-3);border-left:var(--srpg-border-thin) solid var(--srpg-color-border);background:var(--srpg-color-surface-raised);flex-direction:column;display:flex;overflow:auto}@media (max-width:860px){.main{grid-template-rows:1fr auto;grid-template-columns:1fr}.side{border-left:0;border-top:var(--srpg-border-thin) solid var(--srpg-color-border);max-height:42dvh}}.trade-columns{gap:var(--srpg-space-3);margin-top:var(--srpg-space-3);grid-template-columns:1fr 1fr;display:grid}.trade-columns fieldset{align-items:stretch;gap:var(--srpg-space-2);min-width:0;padding:var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);flex-direction:column;margin:0;display:flex}.trade-columns legend{padding:0 var(--srpg-space-1);font-weight:600}.prep-person,.prep-convoy{gap:var(--srpg-space-2);min-width:0;margin:var(--srpg-space-3) 0 0;padding:var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);flex-direction:column;display:flex}.prep-person legend,.prep-convoy legend{padding:0 var(--srpg-space-1);font-weight:600}.prep-items{gap:var(--srpg-space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.prep-items li{justify-content:space-between;align-items:center;gap:var(--srpg-space-2);flex-wrap:wrap;display:flex}.overlay{z-index:var(--srpg-z-modal);place-content:center;justify-items:center;gap:var(--srpg-space-3);background:var(--srpg-color-bg);text-align:center;padding:var(--srpg-space-5);display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.overlay-title{font-size:var(--srpg-text-xl);margin:0}.result-list{margin:var(--srpg-space-3) 0 0;padding-left:var(--srpg-space-5)}.scene-box{inset-inline:var(--srpg-space-4);bottom:var(--srpg-space-4);z-index:var(--srpg-z-toast);gap:var(--srpg-space-2);max-width:var(--srpg-size-modal-wide-width);padding:var(--srpg-space-3) var(--srpg-space-4);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);box-shadow:var(--srpg-shadow-md);flex-direction:column;margin-inline-start:auto;margin-inline-end:auto;display:flex;position:fixed}.scene-speaker{align-items:center;gap:var(--srpg-space-2);margin:0;display:flex}.scene-text{font-size:var(--srpg-text-md);line-height:var(--srpg-leading-normal);margin:0}.scene-actions{justify-content:flex-end;align-items:center;gap:var(--srpg-space-2);flex-wrap:wrap;display:flex}.scene-actions .hint{margin-inline-end:auto}.prep-shop{gap:var(--srpg-space-2);min-width:0;margin:var(--srpg-space-3) 0 0;padding:var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);flex-direction:column;display:flex}.prep-shop legend{padding:0 var(--srpg-space-1);font-weight:600}.prep-gold{margin:var(--srpg-space-2) 0 0}.units-table{border-collapse:collapse;text-align:left;width:100%}.units-table th,.units-table td{padding:var(--srpg-space-1) var(--srpg-space-2);border-bottom:var(--srpg-border-thin) solid var(--srpg-color-border)}.srpg-button{min-height:var(--srpg-size-touch-target);padding:var(--srpg-space-2) var(--srpg-space-4);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit;font-size:var(--srpg-text-sm);font-weight:500;line-height:var(--srpg-leading-tight);cursor:pointer;transition:border-color var(--srpg-motion-fast), box-shadow var(--srpg-motion-fast), transform var(--srpg-motion-fast)}.srpg-button:hover:not(:disabled){background:var(--srpg-color-surface-raised);border-color:color-mix(in srgb, var(--srpg-color-text) 30%, var(--srpg-color-border))}.srpg-button:active:not(:disabled){transform:translateY(var(--srpg-size-dot))}.srpg-button:focus-visible{outline:var(--srpg-border-focus) solid var(--srpg-color-focus);outline-offset:var(--srpg-border-thin)}.srpg-button:disabled{opacity:.45;cursor:not-allowed}.srpg-button[aria-pressed=true],.srpg-button[aria-pressed=true]:hover{background:var(--srpg-color-accent);color:var(--srpg-color-accent-text);border-color:var(--srpg-color-accent);font-weight:600}.srpg-button--primary,.srpg-button--primary:hover:not(:disabled){background:var(--srpg-color-accent);color:var(--srpg-color-accent-text);border-color:var(--srpg-color-accent);font-weight:700}.srpg-button--primary:hover:not(:disabled){filter:brightness(.96)}.srpg-button--danger,.srpg-button--danger:hover:not(:disabled){background:var(--srpg-color-danger);color:var(--srpg-color-danger-text);border-color:var(--srpg-color-danger);font-weight:600}.srpg-button--ghost{background:0 0;border-color:#0000}.srpg-button--ghost:hover:not(:disabled){background:var(--srpg-color-surface-raised);border-color:#0000}.srpg-modal-scrim{z-index:var(--srpg-z-modal);padding:var(--srpg-space-4);background:color-mix(in srgb, var(--srpg-color-scrim) 55%, transparent);place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.srpg-modal{width:100%;max-width:var(--srpg-size-modal-width);max-height:100%;padding:var(--srpg-space-5);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-lg);background:var(--srpg-color-surface);color:var(--srpg-color-text);box-shadow:var(--srpg-shadow-lg);overflow:auto}.srpg-modal:focus{outline:none}.srpg-modal__title{margin:0 0 var(--srpg-space-3);font-family:var(--srpg-font-display);font-size:var(--srpg-text-lg);letter-spacing:var(--srpg-tracking-tight);font-weight:700;line-height:var(--srpg-leading-tight)}.srpg-modal__body{font-size:var(--srpg-text-md);line-height:var(--srpg-leading-normal)}.srpg-modal__footer{justify-content:flex-end;gap:var(--srpg-space-2);margin-top:var(--srpg-space-4);flex-wrap:wrap;display:flex}.srpg-modal--wide{max-width:var(--srpg-size-modal-wide-width)}.srpg-toasts{left:0;right:0;bottom:var(--srpg-space-4);z-index:var(--srpg-z-toast);align-items:center;gap:var(--srpg-space-2);pointer-events:none;flex-direction:column;display:flex;position:fixed}.srpg-toast{pointer-events:auto;max-width:90vw;padding:var(--srpg-space-2) var(--srpg-space-4);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-pill);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit;font-size:var(--srpg-text-sm);box-shadow:var(--srpg-shadow-md);cursor:pointer}.srpg-toast:focus-visible{outline:var(--srpg-border-focus) solid var(--srpg-color-focus)}.srpg-toast--success{border-color:var(--srpg-color-success)}.srpg-toast--warning{border-color:var(--srpg-color-warning)}.srpg-toast--error{border-color:var(--srpg-color-danger)}.sound-buttons{gap:var(--srpg-space-2);display:inline-flex}.unit-icon{width:var(--srpg-size-icon);height:var(--srpg-size-icon);image-rendering:pixelated;flex:none}.timeline{align-items:center;gap:var(--srpg-space-3);flex-basis:100%;display:flex;overflow-x:auto}.timeline-title{font-size:var(--srpg-text-sm);color:var(--srpg-color-text-muted);font-weight:700}.timeline-list{align-items:center;gap:var(--srpg-space-2);margin:0;padding:0;list-style:none;display:flex}.timeline-item{align-items:center;gap:var(--srpg-space-1);padding:var(--srpg-space-1) var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-bottom-width:var(--srpg-border-thick);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface-raised);font-size:var(--srpg-text-sm);white-space:nowrap;display:inline-flex}.timeline-item--player{border-bottom-color:var(--srpg-color-faction-player)}.timeline-item--enemy{border-bottom-color:var(--srpg-color-faction-enemy)}.timeline-item--ally{border-bottom-color:var(--srpg-color-faction-ally)}.timeline-item--neutral{border-bottom-color:var(--srpg-color-faction-neutral)}.timeline-item--now{border-color:var(--srpg-color-accent);font-weight:700}.timeline-icon .unit-icon{width:var(--srpg-size-swatch);height:var(--srpg-size-swatch)}.timeline-round{color:var(--srpg-color-text-muted);font-size:var(--srpg-text-sm);padding:0 var(--srpg-space-1);border-left:var(--srpg-border-thin) solid var(--srpg-color-border)}.topbar{justify-content:space-between;align-items:center;gap:var(--srpg-space-2) var(--srpg-space-4);min-height:var(--srpg-size-top-bar);padding:var(--srpg-space-2) var(--srpg-space-4);border-bottom:var(--srpg-border-thin) solid var(--srpg-color-border);background:var(--srpg-color-surface);flex-wrap:wrap;display:flex}.status{align-items:baseline;gap:var(--srpg-space-1) var(--srpg-space-4);flex-wrap:wrap;display:flex}.round{font-weight:700}.phase{padding:var(--srpg-space-1) var(--srpg-space-3);border-radius:var(--srpg-radius-pill);background:var(--srpg-color-surface-raised);font-weight:700;font-size:var(--srpg-text-sm)}.phase--player{background:var(--srpg-color-faction-player);color:var(--srpg-color-accent-text)}.phase--enemy{background:var(--srpg-color-faction-enemy);color:var(--srpg-color-danger-text)}.phase--ally{background:var(--srpg-color-faction-ally);color:var(--srpg-color-danger-text)}.objective{color:var(--srpg-color-text-muted);font-size:var(--srpg-text-sm)}.tools{gap:var(--srpg-space-2);flex-wrap:wrap;display:flex}.action-menu{gap:var(--srpg-space-2);flex-direction:column;display:flex}.menu-title{font-size:var(--srpg-text-md);margin:0}.action-menu .is-unavailable{opacity:.55}.guide{border-color:var(--srpg-color-focus)}.guide-title{margin:0 0 var(--srpg-space-1);font-size:var(--srpg-text-md)}.guide-keys{margin:var(--srpg-space-2) 0 0;font-size:var(--srpg-text-sm);color:var(--srpg-color-text);gap:var(--srpg-space-1);flex-wrap:wrap;align-items:center;display:flex}.guide-keys-label{color:var(--srpg-color-text-muted)}.guide-key{padding:0 var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-sm);background:var(--srpg-color-surface-raised);font:inherit}.guide-body{font-size:var(--srpg-text-sm);color:var(--srpg-color-text-muted);line-height:var(--srpg-leading-normal);margin:0}.target-title{margin:0 0 var(--srpg-space-2);font-size:var(--srpg-text-md)}.preview{border-collapse:collapse;width:100%;font-size:var(--srpg-text-sm)}.preview th,.preview td{padding:var(--srpg-space-1) var(--srpg-space-2);text-align:right;border-bottom:var(--srpg-border-thin) solid var(--srpg-color-border)}.preview th:first-child{text-align:left;color:var(--srpg-color-text-muted);font-weight:400}.preview thead th{font-weight:700}.target-buttons{gap:var(--srpg-space-2);margin-top:var(--srpg-space-3);flex-wrap:wrap;display:flex}.panel{padding:var(--srpg-space-3) var(--srpg-space-4);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface)}.muted{color:var(--srpg-color-text-muted)}.statuses{gap:var(--srpg-space-1);margin:var(--srpg-space-2) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.status-chip{padding:var(--srpg-space-1) var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-pill);background:var(--srpg-color-surface-raised);font-size:var(--srpg-text-sm)}.stat dd.changed{font-weight:700;text-decoration:underline}.unit-head{align-items:center;gap:var(--srpg-space-3);margin-bottom:var(--srpg-space-2);display:flex}.unit-name{font-size:var(--srpg-text-lg);line-height:var(--srpg-leading-tight);margin:0}.unit-sub{font-size:var(--srpg-text-sm);color:var(--srpg-color-text-muted);align-items:center;gap:var(--srpg-space-1);margin:0;display:flex}.faction{width:var(--srpg-size-bar);height:var(--srpg-size-bar);border-radius:var(--srpg-radius-pill);background:var(--srpg-color-faction-neutral);display:inline-block}.faction--player{background:var(--srpg-color-faction-player)}.faction--enemy{background:var(--srpg-color-faction-enemy)}.faction--ally{background:var(--srpg-color-faction-ally)}.hp-wrap{margin-bottom:var(--srpg-space-2)}.hp{height:var(--srpg-space-3);border-radius:var(--srpg-radius-sm);background:var(--srpg-color-hp-back);position:relative;overflow:hidden}.hp-fill{background:var(--srpg-color-hp-good);height:100%;transition:width var(--srpg-motion-normal)}.hp-fill--low{background:var(--srpg-color-hp-bad)}.hp-text{margin-top:var(--srpg-space-1);font-size:var(--srpg-text-xs);color:var(--srpg-color-text);font-weight:700;display:block}.stats{gap:var(--srpg-space-1) var(--srpg-space-2);margin:0 0 var(--srpg-space-2);grid-template-columns:repeat(4,1fr);display:grid}.stat{font-size:var(--srpg-text-sm);justify-content:space-between;display:flex}.stat dt{color:var(--srpg-color-text-muted)}.stat dd{margin:0;font-weight:700}.line{margin:var(--srpg-space-1) 0;font-size:var(--srpg-text-sm)}.items{margin:var(--srpg-space-1) 0;padding-left:var(--srpg-space-4);font-size:var(--srpg-text-sm)}.terrain{padding-top:var(--srpg-space-2);border-top:var(--srpg-border-thin) solid var(--srpg-color-border)}.help-table{border-collapse:collapse;width:100%;font-size:var(--srpg-text-sm)}.help-table th,.help-table td{padding:var(--srpg-space-1) var(--srpg-space-2);text-align:left;border-bottom:var(--srpg-border-thin) solid var(--srpg-color-border)}.help-table thead th{color:var(--srpg-color-text-muted)}.banner{z-index:var(--srpg-z-banner);pointer-events:none;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.banner-text{padding:var(--srpg-space-4) var(--srpg-space-7);border-radius:var(--srpg-radius-lg);background:color-mix(in srgb, var(--srpg-color-scrim) 75%, transparent);color:var(--srpg-color-white);font-size:var(--srpg-text-xl);animation:banner-in var(--srpg-motion-slow) ease-out;font-weight:700}@keyframes banner-in{0%{opacity:0;transform:translateY(-30%)}to{opacity:1;transform:translateY(0)}}.side-subtitle{margin:var(--srpg-space-2) 0;font-size:var(--srpg-text-sm)}.vis-line{align-items:center;gap:var(--srpg-space-2);margin-bottom:var(--srpg-space-3);font-size:var(--srpg-text-sm);color:var(--srpg-color-text);display:flex}.scene-steps{gap:var(--srpg-space-3);margin:0 0 var(--srpg-space-3);flex-direction:column;padding-inline-start:var(--srpg-space-5);display:flex}.scene-steps li{gap:var(--srpg-space-2);flex-direction:column;display:flex}.scene-step-text{overflow-wrap:anywhere}.scene-issues{margin:0 0 var(--srpg-space-3);color:var(--srpg-color-danger);padding-inline-start:var(--srpg-space-5)}.swatch{width:var(--srpg-size-swatch);height:var(--srpg-size-swatch);image-rendering:pixelated;flex:none}.side-title{margin:0 0 var(--srpg-space-2);font-size:var(--srpg-text-md)}.tool-row{gap:var(--srpg-space-2);margin-bottom:var(--srpg-space-2);flex-wrap:wrap;align-items:center;display:flex}.hint{margin:var(--srpg-space-2) 0 0;font-size:var(--srpg-text-sm);color:var(--srpg-color-text-muted)}.palette{gap:var(--srpg-space-2);margin-bottom:var(--srpg-space-2);flex-wrap:wrap;display:flex}.chip{align-items:center;gap:var(--srpg-space-2);min-height:var(--srpg-size-touch-target);padding:var(--srpg-space-1) var(--srpg-space-3);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface-raised);color:var(--srpg-color-text);font:inherit;font-size:var(--srpg-text-sm);cursor:pointer;display:inline-flex}.chip .unit-icon{width:var(--srpg-size-swatch);height:var(--srpg-size-swatch)}.chip:hover{border-color:var(--srpg-color-accent)}.chip[aria-pressed=true]{background:var(--srpg-color-accent);color:var(--srpg-color-accent-text);border-color:var(--srpg-color-accent)}.field{gap:var(--srpg-space-1);margin-bottom:var(--srpg-space-3);font-size:var(--srpg-text-sm);color:var(--srpg-color-text-muted);flex-direction:column;display:flex}.field input,.field select,.items select{min-height:var(--srpg-size-touch-target);padding:var(--srpg-space-1) var(--srpg-space-3);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit}.field input.num{width:var(--srpg-size-number-input)}fieldset{border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);margin:0 0 var(--srpg-space-3);padding:var(--srpg-space-2) var(--srpg-space-3)}legend{font-size:var(--srpg-text-sm);color:var(--srpg-color-text-muted);padding:0 var(--srpg-space-1)}.stat-grid{gap:var(--srpg-space-2);grid-template-columns:repeat(3,1fr);display:grid}.stat-grid legend{grid-column:1/-1}.stat-field{font-size:var(--srpg-text-sm);color:var(--srpg-color-text-muted);flex-direction:column;display:flex}.stat-field input{min-height:var(--srpg-size-touch-target);width:100%;padding:var(--srpg-space-1) var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit}.item-list{margin:0 0 var(--srpg-space-2);padding:0;list-style:none}.item-row{align-items:center;gap:var(--srpg-space-2);display:flex}.item-row .item-name{color:var(--srpg-color-text);font-size:var(--srpg-text-sm);flex:1}.vis{gap:var(--srpg-space-3);flex-wrap:wrap;display:flex}.vis label{font-size:var(--srpg-text-sm);color:var(--srpg-color-text);align-items:center;gap:var(--srpg-space-1);display:inline-flex}.inline-input{min-height:var(--srpg-size-touch-target);flex:1 1 var(--srpg-size-number-input);min-width:0;padding:var(--srpg-space-1) var(--srpg-space-3);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit}.equip{width:var(--srpg-size-swatch);justify-content:center;display:inline-flex}.check{align-items:center;gap:var(--srpg-space-2);margin-bottom:var(--srpg-space-2);font-size:var(--srpg-text-sm);color:var(--srpg-color-text);display:flex}.inline-field{align-items:center;gap:var(--srpg-space-2);margin-top:var(--srpg-space-2);font-size:var(--srpg-text-sm);color:var(--srpg-color-text);display:flex}.chapters{margin:0 0 var(--srpg-space-2);padding:0;list-style:none}.chapter{align-items:center;gap:var(--srpg-space-1);margin-bottom:var(--srpg-space-1);display:flex}.chapter-name{min-height:var(--srpg-size-touch-target);text-align:left;padding:var(--srpg-space-1) var(--srpg-space-3);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit;cursor:pointer;flex:1}.chapter-name[aria-current=true]{background:var(--srpg-color-accent);color:var(--srpg-color-accent-text);border-color:var(--srpg-color-accent)}.hot-unit{align-items:center;gap:var(--srpg-space-2);margin-bottom:var(--srpg-space-2);font-size:var(--srpg-text-sm);color:var(--srpg-color-text);flex-wrap:wrap;display:flex}.hot-name{flex:100%}.hot-unit .num,.inline-field .num{min-height:var(--srpg-size-touch-target);width:var(--srpg-size-number-input);padding:var(--srpg-space-1) var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit}.lib-tab[aria-selected=true]{background:var(--srpg-color-accent);color:var(--srpg-color-accent-text);border-color:var(--srpg-color-accent)}.lib-body{gap:var(--srpg-space-4);flex-wrap:wrap;display:flex}.lib-list{flex:1 1 var(--srpg-size-library-pane);min-width:0}.lib-items{margin:0 0 var(--srpg-space-3);gap:var(--srpg-space-1);flex-direction:column;max-height:50dvh;padding:0;list-style:none;display:flex;overflow:auto}.lib-row{justify-content:flex-start;width:100%}.lib-add{gap:var(--srpg-space-2);flex-wrap:wrap;display:flex}.lib-add input{min-height:var(--srpg-size-touch-target);padding:var(--srpg-space-1) var(--srpg-space-3);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit;flex:100%}.lib-form{flex:2 1 calc(var(--srpg-size-library-pane) * 2);min-width:0;max-height:62dvh;padding-right:var(--srpg-space-2);overflow:auto}.two{gap:var(--srpg-space-3);grid-template-columns:1fr 1fr;display:grid}.rank-grid{gap:var(--srpg-space-2);grid-template-columns:repeat(3,1fr);display:grid}.rank-grid legend{grid-column:1/-1}.stat-field select{min-height:var(--srpg-size-touch-target);padding:var(--srpg-space-1) var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit}.version-list{gap:var(--srpg-space-2);padding:0;list-style:none;display:grid}.version-list li{align-items:center;gap:var(--srpg-space-2);flex-wrap:wrap;display:flex}.version-list span{flex:auto}.user-code{font-size:var(--srpg-text-lg)}.tutorial{right:var(--srpg-space-4);bottom:var(--srpg-space-6);z-index:var(--srpg-z-banner);width:min(100% - var(--srpg-space-6), var(--srpg-size-panel-width));padding:var(--srpg-space-4);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-left:var(--srpg-border-focus) solid var(--srpg-color-accent);border-radius:var(--srpg-radius-lg);background:var(--srpg-color-surface);color:var(--srpg-color-text);box-shadow:var(--srpg-shadow-lg);position:fixed}.tutorial-count{margin:0 0 var(--srpg-space-1);font-size:var(--srpg-text-xs);letter-spacing:var(--srpg-tracking-wide);text-transform:uppercase;color:var(--srpg-color-text-muted);font-weight:600}.tutorial-title{margin:0 0 var(--srpg-space-2);font-size:var(--srpg-text-lg)}.tutorial-text{font-size:var(--srpg-text-sm);line-height:var(--srpg-leading-normal);margin:0}.tutorial-keys{margin:var(--srpg-space-2) 0 0;font-size:var(--srpg-text-xs);color:var(--srpg-color-text-muted)}.tutorial-keys kbd{padding:0 var(--srpg-space-1);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-sm);font-family:var(--srpg-font-mono)}.tutorial-actions{justify-content:flex-end;gap:var(--srpg-space-2);margin-top:var(--srpg-space-3);display:flex}.rule{align-items:center;gap:var(--srpg-space-1) var(--srpg-space-3);margin-bottom:var(--srpg-space-3);flex-wrap:wrap;display:flex}.rule-label{font-size:var(--srpg-text-sm);color:var(--srpg-color-text)}.rule .hint{flex-basis:100%;margin:0}.rule--off{opacity:.6}.choice{align-items:center;gap:var(--srpg-space-2);font-size:var(--srpg-text-sm);color:var(--srpg-color-text);display:inline-flex}.choice .num,.terrain-table .num{min-height:var(--srpg-size-touch-target);width:var(--srpg-size-number-input);padding:var(--srpg-space-1) var(--srpg-space-2);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit}.formula{align-items:center;gap:var(--srpg-space-2);margin-bottom:var(--srpg-space-3);flex-wrap:wrap;display:flex}.formula-label{font-size:var(--srpg-text-sm);color:var(--srpg-color-text);flex-basis:100%}.formula-input{flex:1 1 var(--srpg-size-number-input);min-width:0;min-height:var(--srpg-size-touch-target);padding:var(--srpg-space-1) var(--srpg-space-3);border:var(--srpg-border-thin) solid var(--srpg-color-border);border-radius:var(--srpg-radius-md);background:var(--srpg-color-surface);color:var(--srpg-color-text);font:inherit;font-family:var(--srpg-font-mono)}.formula-note{flex-basis:100%;margin:0}.advanced{margin:var(--srpg-space-3) 0}.advanced summary{cursor:pointer;margin-bottom:var(--srpg-space-2);font-weight:700}.terrain-table{border-collapse:collapse;width:100%;font-size:var(--srpg-text-sm);margin-bottom:var(--srpg-space-3)}.terrain-table caption{text-align:left;color:var(--srpg-color-text-muted);padding-bottom:var(--srpg-space-2)}.terrain-table th,.terrain-table td{border:var(--srpg-border-thin) solid var(--srpg-color-border);padding:var(--srpg-space-1) var(--srpg-space-2);text-align:left}.terrain-table .cell{white-space:nowrap}.terrain-table .blocked{font-size:var(--srpg-text-sm);color:var(--srpg-color-text-muted);display:block}.studio-bar{border-bottom:var(--srpg-border-thin) solid var(--srpg-color-border);background:var(--srpg-color-bg);display:grid}.bar-row{align-items:center;gap:var(--srpg-space-2);padding:var(--srpg-space-2) var(--srpg-space-4);flex-wrap:wrap;display:flex}.bar-row--title{gap:var(--srpg-space-4);padding-block:var(--srpg-space-2) 0}.studio-bar .brand{align-items:center;gap:var(--srpg-space-2);font-family:var(--srpg-font-display);font-size:var(--srpg-text-md);letter-spacing:var(--srpg-tracking-tight);color:var(--srpg-color-text);text-decoration:none;display:inline-flex}.studio-bar .brand b{font-weight:700}.studio-bar .brand-tag{font-family:var(--srpg-font-sans);font-size:var(--srpg-text-xs);letter-spacing:var(--srpg-tracking-wide);text-transform:uppercase;padding:0 var(--srpg-space-2);border-radius:var(--srpg-radius-pill);background:var(--srpg-color-accent);color:var(--srpg-color-accent-text);font-weight:600}.studio-bar .project{font-size:var(--srpg-text-sm);color:var(--srpg-color-text-muted)}.studio-bar .project:before{content:"/";margin-right:var(--srpg-space-3);opacity:.4}.studio-bar .tools .srpg-button{padding-inline:var(--srpg-space-3);color:var(--srpg-color-text-muted)}.studio-bar .tools .srpg-button:hover:not(:disabled){color:var(--srpg-color-text)}.studio-bar .tools .srpg-button[aria-pressed=true]{color:var(--srpg-color-accent);background:var(--srpg-color-surface);border-color:var(--srpg-color-border)}.studio-bar .group{align-items:center;gap:var(--srpg-space-1);display:inline-flex}.studio-bar .group+.group{padding-left:var(--srpg-space-3);position:relative}.studio-bar .group+.group:before{content:"";left:0;top:var(--srpg-space-2);bottom:var(--srpg-space-2);width:var(--srpg-border-thin);background:var(--srpg-color-border);position:absolute}.studio-bar .group--end{margin-left:auto;padding-left:0}.studio-bar .group--end:before{display:none}.studio-bar .tools .play{color:var(--srpg-color-accent-text);padding-inline:var(--srpg-space-4);margin-left:var(--srpg-space-2)}.studio-bar .tools .play:hover:not(:disabled){color:var(--srpg-color-accent-text)}.mode-note{color:var(--srpg-color-text-muted);font-size:var(--srpg-text-sm)}@font-face{font-family:DM Sans;src:url(./dm-sans-CwMReqGs.woff2)format("woff2");font-weight:400 700;font-display:swap}@font-face{font-family:Space Grotesk;src:url(./space-grotesk-DPT1xrvW.woff2)format("woff2");font-weight:400 700;font-display:swap}.studio{background:var(--srpg-color-bg);grid-template-rows:auto 1fr auto;height:100dvh;display:grid}.studio.studio--play{grid-template-rows:auto auto 1fr}.studio .stage{background-color:var(--srpg-color-bg);background-image:linear-gradient(color-mix(in srgb, var(--srpg-color-border) 45%, transparent) var(--srpg-size-dot), transparent var(--srpg-size-dot)), linear-gradient(90deg, color-mix(in srgb, var(--srpg-color-border) 45%, transparent) var(--srpg-size-dot), transparent var(--srpg-size-dot));background-size:var(--srpg-size-dot-grid) var(--srpg-size-dot-grid)}.studio .main{grid-template-columns:var(--srpg-size-panel-width) 1fr}.studio .side{border-left:0;border-right:var(--srpg-border-thin) solid var(--srpg-color-border);background:var(--srpg-color-surface);order:-1;gap:0;padding:0}.studio .side>.panel,.studio .side>section{padding:var(--srpg-space-4);border:0;border-bottom:var(--srpg-border-thin) solid var(--srpg-color-border);box-shadow:none;background:0 0;border-radius:0;margin:0}.studio .panel+.panel{margin-top:0}.studio .side-title{align-items:center;gap:var(--srpg-space-2);margin:0 0 var(--srpg-space-3);font-family:var(--srpg-font-sans);font-size:var(--srpg-text-xs);letter-spacing:var(--srpg-tracking-wide);text-transform:uppercase;color:var(--srpg-color-text-muted);font-weight:600;display:flex}.studio [aria-label=Tools]>.tool-row[aria-label=Tools]{gap:var(--srpg-space-1);grid-template-columns:repeat(3,1fr);display:grid}.studio .tool-row[aria-label=Tools] .srpg-button{padding-inline:var(--srpg-space-2)}.studio .side .srpg-button{background:0 0;border-color:#0000}.studio .side .srpg-button:hover:not(:disabled){background:var(--srpg-color-surface-raised);border-color:#0000}.studio .side .srpg-button[aria-pressed=true],.studio .side .srpg-button[aria-pressed=true]:hover{background:var(--srpg-color-accent);color:var(--srpg-color-accent-text);border-color:var(--srpg-color-accent)}.studio .side .srpg-button--primary,.studio .side .srpg-button--primary:hover:not(:disabled){background:var(--srpg-color-accent);border-color:var(--srpg-color-accent);color:var(--srpg-color-accent-text)}.studio .side .srpg-button--danger{background:var(--srpg-color-danger);border-color:var(--srpg-color-danger);color:var(--srpg-color-danger-text)}.studio .palette{gap:var(--srpg-space-1);grid-template-columns:1fr 1fr;display:grid}.studio .chip{width:100%;min-height:var(--srpg-size-touch-target);padding:var(--srpg-space-1) var(--srpg-space-2);transition:border-color var(--srpg-motion-fast);background:0 0;border-color:#0000;justify-content:flex-start}.studio .chip:hover{background:var(--srpg-color-surface-raised)}.studio .chip[aria-pressed=true],.studio .chip[aria-pressed=true]:hover{background:var(--srpg-color-surface-raised);color:var(--srpg-color-accent);border-color:var(--srpg-color-border);font-weight:600}.studio .side input:not([type=checkbox]):not([type=radio]),.studio .side select{background:var(--srpg-color-bg)}.studio .side fieldset{border-color:var(--srpg-color-border)}.studio .side legend{font-size:var(--srpg-text-xs);letter-spacing:var(--srpg-tracking-wide);text-transform:uppercase;font-weight:600}.studio-sub{align-items:center;gap:var(--srpg-space-2);padding:var(--srpg-space-1) var(--srpg-space-4);font-size:var(--srpg-text-xs);color:var(--srpg-color-text-muted);border-top:var(--srpg-border-thin) solid var(--srpg-color-border);background:var(--srpg-color-surface);display:flex}.studio-sub .dot{width:var(--srpg-space-2);height:var(--srpg-space-2);border-radius:var(--srpg-radius-pill);background:var(--srpg-color-accent)}.studio-sub .dot--problem{background:var(--srpg-color-danger)}.studio-sub .sep{opacity:.5}.studio-sub .save-problem{color:var(--srpg-color-danger)}.sample-list{gap:var(--srpg-space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sample-list li{justify-content:space-between;align-items:center;gap:var(--srpg-space-3);padding-bottom:var(--srpg-space-3);border-bottom:var(--srpg-border-thin) solid var(--srpg-color-border);flex-wrap:wrap;display:flex}.sample-list p{margin:var(--srpg-space-1) 0 0}
