.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}@layer tokens,base,layout,components,responsive;@layer tokens{:root{--spacer: .25rlh;--space-2xs: calc(var(--spacer) * 1);--space-xs: calc(var(--spacer) * 2);--space-sm: calc(var(--spacer) * 3);--space-md: calc(var(--spacer) * 4);--space-lg: calc(var(--spacer) * 5);--space-xl: calc(var(--spacer) * 6);--space-2xl: calc(var(--spacer) * 7);--space-3xl: calc(var(--spacer) * 8);--text-sm: .75rem;--text-md: .82rem;--text-lg: .95rem;--text-xl: 1rem;--color-paper: oklch(.985 .008 85);--color-paper-strong: oklch(.955 .012 85);--color-panel: oklch(.993 .004 85);--color-panel-muted: oklch(.973 .008 85);--color-ink: oklch(.26 .018 248);--color-ink-soft: oklch(.43 .012 248);--color-line: oklch(.86 .01 85);--color-line-strong: oklch(.77 .014 85);--color-accent: oklch(.56 .11 250);--color-accent-soft: oklch(.95 .03 250);--font-sans: "Familjen Grotesk", "Segoe UI", sans-serif;--font-serif: "Libre Caslon Display", "Iowan Old Style", serif;--font-mono: "Geist Mono", ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--radius-pill: 999px;--surface-glass: rgb(255 255 255 / .78);--surface-glass-strong: rgb(255 255 255 / .88);--surface-glass-heavy: rgb(255 255 255 / .92);--surface-overlay: rgb(255 255 255 / .52);--shadow-soft: 0 12px 24px rgb(53 44 32 / .07);--shadow-panel: 0 18px 40px rgb(53 44 32 / .05)}}@layer base{:root{box-sizing:border-box}*,:before,:after{box-sizing:inherit}html{color-scheme:light;background:var(--color-paper)}body{margin:0;color:var(--color-ink);font-family:var(--font-sans);text-rendering:optimizeLegibility}a,a:visited{color:inherit}h1,h2,h3,h4,pre{margin:0}code,textarea,input,button{font:inherit}}@layer layout{.stack>*+*,.stack>astro-island>*{margin-block-start:var(--space-md)}.page{width:min(1240px,calc(100vw - (var(--space-md) * 2)));margin-inline:auto;padding:var(--space-md) 0 var(--space-2xl)}.hero{padding:clamp(var(--space-lg),2.8vw,var(--space-3xl));border:1px solid var(--color-line);border-radius:var(--space-2xl);background:var(--color-panel);box-shadow:0 22px 60px #352c2012}.hero-copy{max-width:65ch}.hero-note{display:grid;gap:var(--space-sm);align-self:stretch;padding:var(--space-lg);border-radius:var(--space-lg);background:var(--color-panel-muted);font-size:var(--text-sm)}.hero-note strong{font-family:var(--font-sans);font-size:var(--text-xl);letter-spacing:0;text-transform:none;color:var(--color-ink)}.hero h1{font-family:var(--font-serif);font-size:calc(var(--text-xl) * 2);font-weight:400;line-height:.92;letter-spacing:-.03em}.hero p{margin:0;max-width:62ch;line-height:1.6;color:var(--color-ink-soft);font-size:var(--text-md)}.gamebook-viewer{container-type:inline-size;display:grid;grid-template-columns:minmax(20rem,24rem) minmax(0,1fr);gap:var(--space-lg);align-items:start}.gamebook-controls,.gamebook-canvas{padding:var(--space-lg)}.gamebook-controls{position:sticky;top:var(--space-md)}.gamebook-controls-grid{display:grid;gap:var(--space-lg)}.gamebook-controls-grid section,.gamebook-canvas,.gamebook-viewer-head>div,.gamebook-error-block,.gamebook-modal-section{display:flow-root}.gamebook-controls-grid section+section{padding-top:var(--space-lg);border-top:1px solid var(--color-line)}.gamebook-preset-row{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:end}.gamebook-preset-picker{flex:1 1 16rem}.gamebook-viewer-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-line)}.gamebook-summary-row,.gamebook-path-list{display:flex;flex-wrap:wrap;gap:var(--space-md)}.gamebook-viewer-head-actions{display:grid;gap:var(--space-xs);justify-items:end}.gamebook-summary-row{align-self:flex-start}.gamebook-flow{height:clamp(30rem,74vh,58rem)}.gamebook-flow-empty{display:grid;place-items:center;min-height:16rem;padding:var(--space-lg);text-align:center;color:var(--color-ink-soft)}.gamebook-flow-loading{position:absolute;inset:0;display:grid;place-items:center;background:var(--surface-overlay);z-index:5;font-family:var(--font-mono);font-size:var(--text-md)}.gamebook-modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:var(--space-md);background:#1e181252;backdrop-filter:blur(6px)}.gamebook-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}}@layer components{code{font-family:var(--font-mono);font-size:var(--text-md);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-sm);background:var(--surface-overlay);color:var(--color-ink-soft)}.back-link{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-line);border-radius:var(--radius-pill);background:#ffffff94;text-decoration:none;color:var(--color-ink-soft);transition:border-color .14s ease,color .14s ease,background-color .14s ease}.back-link:hover,.back-link:focus-visible{color:var(--color-ink);border-color:var(--color-line-strong);background:#ffffffd1}.hero-kicker,.hero-note,.gamebook-field-label-text,.gamebook-field-label span:first-child,.gamebook-path-label,.gamebook-modal-kicker,.gamebook-node__eyebrow{color:var(--color-ink-soft);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.hero-kicker{font-size:var(--text-sm)}.gamebook-panel{border:1px solid var(--color-line);border-radius:var(--space-xl);background:linear-gradient(180deg,var(--surface-glass-heavy),var(--surface-glass));box-shadow:var(--shadow-panel)}.gamebook-section-title{font-family:var(--font-sans);font-size:var(--text-xl);font-weight:600;letter-spacing:.02em;text-wrap:balance}.gamebook-section-copy{max-width:58ch;color:var(--color-ink-soft);font-size:var(--text-lg);line-height:1.6;text-wrap:pretty}.gamebook-mini-example{border:1px solid var(--color-line);border-radius:var(--space-md);padding:var(--space-md);background:var(--color-panel-muted);color:var(--color-ink-soft);font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.5;white-space:pre-wrap}.gamebook-field-label{display:block;width:100%}.gamebook-field-label-text,.gamebook-field-label span:first-child{font-size:var(--text-sm)}.gamebook-field-label-text{display:block;margin-bottom:var(--space-xs)}.gamebook-field-hint{display:block;margin-top:var(--space-2xs);font-size:var(--text-sm);color:var(--color-ink-soft)}.gamebook-textarea,.gamebook-select,.gamebook-button,.gamebook-modal-close{border:1px solid var(--color-line);color:inherit}.gamebook-button,.gamebook-modal-close{cursor:pointer}.gamebook-textarea,.gamebook-select,.gamebook-button{background:var(--surface-glass-strong);box-shadow:inset 0 1px #ffffffd9}.gamebook-textarea{display:block;width:100%;min-height:20rem;resize:vertical;border-radius:var(--space-md);padding:var(--space-md);font-family:var(--font-mono);font-size:var(--text-md);line-height:1.7;tab-size:2}.gamebook-textarea--paths{min-height:14rem}.gamebook-select,.gamebook-button,.gamebook-modal-close,.gamebook-pill,.gamebook-path-pill,.gamebook-node__badge{border-radius:var(--radius-pill)}.gamebook-select,.gamebook-button{min-height:2.8rem}.gamebook-select{width:100%;padding:var(--space-sm) var(--space-md)}.gamebook-button{padding:var(--space-sm) var(--space-md);font-weight:600}.gamebook-button:disabled{cursor:wait;opacity:.68}.gamebook-button:hover,.gamebook-select:hover{border-color:var(--color-line-strong)}.gamebook-textarea:focus-visible,.gamebook-select:focus-visible,.gamebook-button:focus-visible{border-color:color-mix(in oklch,var(--color-accent) 45%,white);outline:3px solid color-mix(in oklch,var(--color-accent) 18%,transparent);outline-offset:2px;box-shadow:0 0 0 .35rem color-mix(in oklch,var(--color-accent) 12%,transparent)}.gamebook-viewer-head p{max-width:54ch;color:var(--color-ink-soft);line-height:1.6;text-wrap:pretty}.gamebook-viewer-head kbd{border:1px solid var(--color-line);border-radius:var(--space-xs);padding:var(--space-2xs) var(--space-xs);background:var(--color-panel-muted);font-family:var(--font-mono);font-size:var(--text-sm)}.gamebook-pill,.gamebook-path-pill{display:inline-flex;align-items:center;gap:var(--space-xs);min-height:2.1rem;border:1px solid var(--color-line);padding:var(--space-xs) var(--space-sm);background:var(--color-panel-muted);font-size:var(--text-md)}.gamebook-pill--neutral{background:var(--color-panel-muted)}.gamebook-pill--accent{border-color:color-mix(in oklch,var(--color-accent) 22%,white);background:color-mix(in oklch,var(--color-accent) 10%,white)}.gamebook-pill--soft{border-color:color-mix(in oklch,var(--color-line-strong) 85%,white);background:var(--surface-glass-heavy)}.gamebook-pill--warning{border-color:color-mix(in oklch,oklch(.63 .18 24) 22%,white);background:#fff4f3}.gamebook-path-pill{display:grid;grid-template-columns:auto auto minmax(0,auto) minmax(12rem,1fr);align-items:center;max-width:100%}.gamebook-path-label{font-size:var(--text-sm);letter-spacing:.06em}.gamebook-path-pill code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-md);font-weight:600}.gamebook-swatch{width:var(--space-sm);height:var(--space-sm);border-radius:var(--space-2xs);flex:none;box-shadow:inset 0 0 0 1px #ffffff8c}.gamebook-path-status{color:var(--color-ink-soft)}.gamebook-error-block{border:1px solid color-mix(in oklch,oklch(.63 .18 24) 28%,white);border-radius:var(--space-md);padding:var(--space-md);color:#6d2f2d;background:oklch(.97 .016 25)}.gamebook-error-block h3{margin:0;font-size:var(--text-lg)}.gamebook-error-list{margin:0;padding-left:var(--space-md);line-height:1.5}.gamebook-export-status{margin:0;max-width:28ch;color:var(--color-ink-soft);font-size:var(--text-sm);line-height:1.5;text-align:right}.gamebook-flow-shell{overflow:hidden;border:1px solid var(--color-line);border-radius:var(--space-lg);background:linear-gradient(180deg,var(--surface-glass-strong),var(--color-panel-muted))}.gamebook-legend-note{max-width:70ch;color:var(--color-ink-soft);font-size:var(--text-sm);line-height:1.5;text-wrap:pretty}.gamebook-node{position:relative;min-width:220px;border:1px solid var( --node-stroke, color-mix(in oklch, var(--color-line-strong) 80%, white) );border-radius:var(--node-radius, 18px);padding:var(--space-md);color:var(--color-ink);background:var(--node-fill, rgb(255 255 255 / .97));box-shadow:0 14px 30px #352c2012;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.gamebook-node:hover{transform:translateY(-1px);box-shadow:0 18px 34px #352c201a}.gamebook-node:focus-visible{outline:3px solid color-mix(in oklch,var(--color-accent) 22%,transparent);outline-offset:3px}.gamebook-node__eyebrow,.gamebook-node__count,.gamebook-node__badge{font-family:var(--font-mono)}.gamebook-node__eyebrow{margin-bottom:var(--space-xs);font-size:var(--text-sm)}.gamebook-node__title{display:grid;gap:var(--space-2xs);font-family:var(--font-sans);font-size:var(--text-lg);font-weight:500;line-height:1.42}.gamebook-node__title-line{display:block}.gamebook-node__count{position:absolute;top:var(--space-md);right:var(--space-md);color:var(--color-accent);font-size:var(--text-sm);font-weight:600}.gamebook-node__badge{position:absolute;right:var(--space-sm);bottom:var(--space-sm);display:inline-flex;align-items:center;justify-content:center;min-width:var(--space-xl);min-height:var(--space-xl);padding:0 var(--space-xs);font-size:var(--text-sm)}.gamebook-node__badge--more{color:var(--color-accent);background:color-mix(in oklch,var(--color-accent) 12%,white)}.gamebook-node__badge--ending{color:#fff;background:var(--color-accent)}.gamebook-handle{opacity:0;width:1px;height:1px;min-width:1px;min-height:1px;border:0;background:transparent}.gamebook-modal-card{width:min(42rem,100%);max-height:min(85vh,48rem);overflow:auto;border:1px solid var(--color-line);border-radius:var(--space-xl);padding:var(--space-lg);background:color-mix(in oklch,var(--color-paper) 85%,white);box-shadow:0 28px 70px #0f0c0a29}.gamebook-modal-kicker{font-size:var(--text-sm)}.gamebook-modal-title{margin:var(--space-sm) 0 0;font-family:var(--font-sans);font-size:clamp(calc(var(--text-xl) * 1.35),3vw,calc(var(--text-xl) * 1.8));font-weight:400;line-height:1.15}.gamebook-modal-close{flex:none;padding:var(--space-xs) var(--space-sm);background:#ffffffdb}.gamebook-modal-copy,.gamebook-modal-list{margin:0;line-height:1.55}.gamebook-modal-list{padding-left:var(--space-lg)}.gamebook-modal-list code{font-size:var(--text-md)}.gamebook-flow .react-flow__attribution{display:none}.gamebook-flow .react-flow__controls,.gamebook-flow .react-flow__minimap{overflow:hidden;border:1px solid var(--color-line);border-radius:var(--space-sm);background:var(--surface-glass-strong);box-shadow:var(--shadow-soft)}.gamebook-flow .react-flow__panel{margin:var(--space-md)}.gamebook-flow .react-flow__edge-textbg{fill:var(--surface-glass-heavy)}.gamebook-flow .react-flow__edge-text{font-family:var(--font-mono);font-size:calc(var(--text-sm) * .92)}.gamebook-flow .react-flow__background path{stroke:#60626c14}}@layer responsive{@media (max-width: 980px){.gamebook-viewer{grid-template-columns:1fr}.gamebook-controls{position:static}.gamebook-flow{height:62vh}}@media (max-width: 840px){.page{width:min(100vw - var(--space-md),1240px);padding-top:var(--space-sm)}.hero{grid-template-columns:1fr;gap:var(--space-md);padding:var(--space-lg);border-radius:var(--space-lg)}.hero h1{font-size:clamp(calc(var(--text-xl) * 2.3),12vw,calc(var(--text-xl) * 3.6))}}@container (max-width: 760px){.gamebook-viewer-head{align-items:flex-start}.gamebook-viewer-head-actions{width:100%;justify-items:start}.gamebook-summary-row{width:100%}.gamebook-pill,.gamebook-path-pill{max-width:100%}.gamebook-path-pill{grid-template-columns:auto auto minmax(0,1fr)}.gamebook-path-status{grid-column:1 / -1}.gamebook-canvas,.gamebook-controls{padding:var(--space-md)}}}
