@import"https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700;900&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--surface-0);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;min-height:100vh;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E")}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);line-height:1.2;letter-spacing:.02em;color:var(--text-primary)}p{color:var(--text-secondary);line-height:1.6}a{color:var(--accent);text-decoration:none;transition:var(--transition-base)}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--surface-1)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background-color:var(--accent-dim);color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hint{color:var(--text-muted);font-weight:400;text-transform:none;letter-spacing:0}.required{color:var(--color-error)}input,select,textarea{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);padding:.65rem .875rem;transition:var(--transition-base);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background-color:var(--surface-3)}input::placeholder,textarea::placeholder{color:var(--text-muted)}select option{background-color:var(--surface-2)}button{cursor:pointer;font-family:var(--font-body)}.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))}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000000bf;display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .15s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:480px;margin:var(--space-4);animation:slideUp .15s ease-out;box-shadow:var(--shadow-xl);position:relative;overflow:hidden}.modal:before{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.modal__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle)}.modal__header h2{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--text-primary);letter-spacing:.04em}.modal__body{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.form-group input,.form-group select,.form-group textarea{background-color:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);padding:.65rem var(--space-4);resize:vertical;transition:var(--transition-base)}.modal__actions{display:flex;justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-2)}.sidebar{width:var(--sidebar-width);height:100vh;background-color:var(--surface-1);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;flex-shrink:0;overflow-x:hidden;overflow-y:auto;position:relative}.sidebar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(201,168,76,.03) 0%,transparent 40%);pointer-events:none}.sidebar-header{padding:var(--space-6) var(--space-5) var(--space-5);border-bottom:1px solid var(--border-subtle)}.sidebar-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.project-selector{padding:var(--space-4) var(--space-4) var(--space-3);position:relative;border-bottom:1px solid var(--border-subtle)}.project-selector__label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-2);padding:0 var(--space-1)}.project-selector__btn{width:100%;background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-3) var(--space-3);text-align:left;transition:var(--transition-base)}.project-selector__btn:hover{border-color:var(--border-strong);color:var(--text-primary);background-color:var(--surface-3)}.project-selector__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.project-selector__chevron{font-size:.55rem;color:var(--text-muted);flex-shrink:0;margin-left:var(--space-2);transition:var(--transition-base)}.project-menu{position:absolute;top:calc(100% - var(--space-1));left:var(--space-4);right:var(--space-4);background-color:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-lg);z-index:50;overflow:hidden;box-shadow:var(--shadow-lg);animation:menuSlideDown .12s ease-out}@keyframes menuSlideDown{0%{transform:translateY(-4px);opacity:0}to{transform:translateY(0);opacity:1}}.project-menu__empty{color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-3) var(--space-4)}.project-menu__item{background:none;border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;display:flex;flex-direction:column;font-family:var(--font-body);gap:var(--space-1);padding:var(--space-3) var(--space-4);text-align:left;transition:var(--transition-base);width:100%}.project-menu__item:hover{background-color:var(--surface-4);color:var(--text-primary)}.project-menu__item--active{background-color:var(--accent-dim);color:var(--accent)}.project-menu__item-name{font-size:var(--text-sm);font-weight:600}.project-menu__item-genre{font-size:var(--text-xs);color:var(--text-muted)}.project-menu__create{background:none;border:none;color:var(--accent);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;padding:var(--space-3) var(--space-4);text-align:left;transition:var(--transition-base);width:100%}.project-menu__create:hover{background-color:var(--accent-dim)}.sidebar-nav{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4) var(--space-3);flex-shrink:0;flex:1}.nav-link{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--text-muted);text-decoration:none;font-size:var(--text-sm);font-weight:500;letter-spacing:.01em;transition:var(--transition-base);position:relative}.nav-link:hover{background-color:var(--surface-2);color:var(--text-primary)}.nav-link--active{background-color:var(--surface-2);color:var(--accent);font-weight:600}.nav-link--active:before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:2px;background-color:var(--accent);border-radius:var(--radius-full)}.sidebar-user{margin-top:auto;padding:var(--space-4) var(--space-4);border-top:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.sidebar-user__info{flex:1;overflow:hidden}.sidebar-user__name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user__email{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.sidebar-user__logout{background:none;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-size:var(--text-base);padding:var(--space-2) var(--space-2);transition:var(--transition-base);flex-shrink:0;line-height:1}.sidebar-user__logout:hover{border-color:var(--color-error);color:var(--color-error)}.sidebar-presence{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle)}.sidebar-presence__label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2)}.sidebar-presence__users{display:flex;flex-wrap:wrap;gap:var(--space-2)}.presence-dot{width:28px;height:28px;border-radius:50%;background-color:var(--accent-dim);border:1px solid var(--accent-border);color:var(--accent);font-size:var(--text-xs);font-weight:700;display:flex;align-items:center;justify-content:center;cursor:default}.project-menu__invite{background:none;border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-3) var(--space-4);text-align:left;transition:var(--transition-base);width:100%}.project-menu__invite:hover{background-color:var(--surface-4);color:var(--text-primary)}.sidebar-logo{display:flex;align-items:center;gap:var(--space-2);overflow:hidden}.sidebar-logo__mark{flex-shrink:0}.sidebar-title{font-family:var(--font-display);font-size:.72rem;font-weight:700;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-layout{display:flex;height:100vh;overflow:hidden;background-color:var(--surface-0)}.main-content{flex:1;padding:var(--space-8);overflow-y:auto;height:100vh}.page h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--text-primary);letter-spacing:.04em;margin-bottom:var(--space-2)}.page p{color:var(--text-secondary);font-size:var(--text-base)}.landing{background-color:var(--surface-0);color:var(--text-primary);font-family:var(--font-body);min-height:100vh;overflow-x:hidden}.landing-section__inner{max-width:1100px;margin:0 auto;padding:0 var(--space-8)}.landing-nav{position:sticky;top:0;z-index:100;background-color:#09080ad9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}.landing-nav__inner{max-width:1100px;margin:0 auto;padding:var(--space-4) var(--space-8);display:flex;justify-content:space-between;align-items:center}.landing-nav__logo{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.landing-nav__links{display:flex;align-items:center;gap:var(--space-6)}.landing-nav__link{color:var(--text-muted);font-size:var(--text-sm);font-weight:500;text-decoration:none;transition:var(--transition-base)}.landing-nav__link:hover{color:var(--text-primary)}.landing-nav__cta{background-color:var(--accent);border-radius:var(--radius-md);color:var(--text-inverse);font-size:var(--text-sm);font-weight:700;padding:var(--space-2) var(--space-4);text-decoration:none;transition:var(--transition-base);letter-spacing:.02em}.landing-nav__cta:hover{background-color:var(--accent-hover);transform:translateY(-1px)}.landing-hero{padding:var(--space-12) 0 0;position:relative;overflow:hidden}.landing-hero:before{content:"";position:absolute;top:-200px;left:50%;transform:translate(-50%);width:800px;height:800px;background:radial-gradient(ellipse at center,rgba(201,168,76,.07) 0%,transparent 65%);pointer-events:none}.landing-hero__inner{max-width:1100px;margin:0 auto;padding:0 var(--space-8);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-6)}.landing-hero__badge{background-color:var(--accent-dim);border:1px solid var(--accent-border);border-radius:var(--radius-full);color:var(--accent);font-size:var(--text-xs);font-weight:700;letter-spacing:.1em;padding:var(--space-1) var(--space-4);text-transform:uppercase}.landing-hero__headline{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:900;color:var(--text-primary);letter-spacing:.02em;line-height:1.1}.landing-hero__accent{color:var(--accent)}.landing-hero__subheadline{max-width:620px;font-size:var(--text-lg);color:var(--text-secondary);line-height:1.6}.landing-hero__actions{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap;justify-content:center}.landing-hero__preview{width:100%;max-width:900px;background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-xl) var(--radius-xl) 0 0;overflow:hidden;margin-top:var(--space-4);box-shadow:0 -4px 60px #c9a84c0f,var(--shadow-xl)}.landing-preview__bar{background-color:var(--surface-3);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--border-subtle)}.landing-preview__dot{width:10px;height:10px;border-radius:50%;background-color:var(--border-strong)}.landing-preview__url{margin-left:var(--space-3);font-size:var(--text-xs);color:var(--text-muted);background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:2px var(--space-3)}.landing-preview__content{display:flex;height:380px}.landing-preview__sidebar{width:180px;flex-shrink:0;background-color:var(--surface-1);border-right:1px solid var(--border-subtle);padding:var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.landing-preview__logo{font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;padding:var(--space-2) var(--space-2);margin-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.landing-preview__nav-item{font-size:var(--text-xs);color:var(--text-muted);padding:var(--space-2) var(--space-2);border-radius:var(--radius-sm);transition:var(--transition-base)}.landing-preview__nav-item--active{background-color:var(--accent-dim);color:var(--accent);font-weight:600}.landing-preview__main{flex:1;background-color:var(--surface-0);position:relative;overflow:hidden}.landing-preview__canvas{position:relative;width:100%;height:100%}.landing-preview__node{position:absolute;background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:600;color:var(--text-primary);padding:var(--space-2) var(--space-3);white-space:nowrap}.landing-preview__node--1{top:40px;left:50%;transform:translate(-50%);border-color:var(--accent-border)}.landing-preview__node--2{top:130px;left:30%}.landing-preview__node--3{top:130px;left:58%}.landing-preview__node--4{top:220px;left:25%}.landing-preview__node--5{top:220px;left:55%}.landing-preview__edge{position:absolute;width:1px;background-color:var(--border-default);transform-origin:top center}.landing-preview__edge--1{top:70px;left:calc(30% + 60px);height:60px;transform:rotate(-20deg);width:80px;height:1px;top:85px;left:40%}.landing-preview__edge--2{width:80px;height:1px;top:85px;left:52%}.landing-problem{padding:var(--space-12) 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);background-color:var(--surface-1)}.landing-problem__text{font-family:var(--font-display);font-size:clamp(1.1rem,2.5vw,1.5rem);color:var(--text-secondary);line-height:1.6;text-align:center;letter-spacing:.01em;max-width:750px;margin:0 auto}.landing-problem__highlight{color:var(--accent);font-weight:700}.landing-section__header{text-align:center;margin-bottom:var(--space-10)}.landing-section__title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.25rem);font-weight:700;color:var(--text-primary);letter-spacing:.03em;margin-bottom:var(--space-3)}.landing-section__subtitle{font-size:var(--text-lg);color:var(--text-muted);max-width:560px;margin:0 auto;line-height:1.6}.landing-features{padding:var(--space-12) 0}.landing-features__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-5)}.landing-feature-card{background-color:var(--surface-1);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3);transition:var(--transition-slow);position:relative;overflow:hidden}.landing-feature-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at top left,rgba(201,168,76,.04) 0%,transparent 60%);opacity:0;transition:var(--transition-slow)}.landing-feature-card:hover{border-color:var(--border-default);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.landing-feature-card:hover:before{opacity:1}.landing-feature-card__icon{font-size:1.75rem;display:block}.landing-feature-card__title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--text-primary);letter-spacing:.03em}.landing-feature-card__description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6}.landing-pricing{padding:var(--space-12) 0;background-color:var(--surface-1);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.landing-pricing__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-6);max-width:700px;margin:0 auto}.landing-pricing-card{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-5);position:relative;transition:var(--transition-base)}.landing-pricing-card--highlighted{border-color:var(--accent-border);background-color:var(--surface-3)}.landing-pricing-card--highlighted:before{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}.landing-pricing-card__badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background-color:var(--accent);color:var(--text-inverse);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);text-transform:uppercase;white-space:nowrap}.landing-pricing-card__name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--text-primary);letter-spacing:.04em}.landing-pricing-card__price{display:flex;align-items:baseline;gap:var(--space-1)}.landing-pricing-card__amount{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:900;color:var(--text-primary)}.landing-pricing-card__period,.landing-pricing-card__description{font-size:var(--text-sm);color:var(--text-muted)}.landing-pricing-card__features{list-style:none;display:flex;flex-direction:column;gap:var(--space-3);flex:1}.landing-pricing-card__feature{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-secondary)}.landing-pricing-card__check{color:var(--color-success);font-weight:700;flex-shrink:0}.landing-cta{padding:var(--space-12) 0;position:relative;overflow:hidden}.landing-cta:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:400px;background:radial-gradient(ellipse at center,rgba(201,168,76,.06) 0%,transparent 70%);pointer-events:none}.landing-cta__inner{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}.landing-cta__title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.5rem);font-weight:700;color:var(--text-primary);letter-spacing:.03em}.landing-cta__subtitle{font-size:var(--text-lg);color:var(--text-muted);max-width:480px}.landing-footer{border-top:1px solid var(--border-subtle);padding:var(--space-8) 0}.landing-footer__inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--space-4)}.landing-footer__logo{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.landing-footer__copy{font-size:var(--text-xs);color:var(--text-muted)}.landing-footer__links{display:flex;gap:var(--space-5)}.landing-footer__link{font-size:var(--text-xs);color:var(--text-muted);text-decoration:none;transition:var(--transition-base)}.landing-footer__link:hover{color:var(--text-primary)}.landing-btn{border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);font-size:var(--text-base);font-weight:700;padding:.65rem 1.5rem;transition:var(--transition-base);border:1px solid transparent;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;letter-spacing:.02em}.landing-btn--primary{background-color:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.landing-btn--primary:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 20px #c9a84c4d;color:var(--text-inverse)}.landing-btn--outline{background:none;border-color:var(--border-strong);color:var(--text-secondary)}.landing-btn--outline:hover{border-color:var(--accent-border);color:var(--accent)}.landing-btn--ghost{background:none;border-color:transparent;color:var(--text-secondary)}.landing-btn--ghost:hover{color:var(--text-primary)}.landing-btn--lg{font-size:var(--text-base);padding:.8rem 2rem}.landing-btn--full{width:100%}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--surface-0);padding:var(--space-8);position:relative;overflow:hidden}.auth-page:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(ellipse at center,rgba(201,168,76,.06) 0%,transparent 70%);pointer-events:none}.auth-card{background-color:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);width:100%;max-width:420px;display:flex;flex-direction:column;gap:var(--space-6);position:relative;box-shadow:var(--shadow-xl);animation:cardEnter .3s ease-out}.auth-card:before{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}.auth-card__header{text-align:center;display:flex;flex-direction:column;gap:var(--space-2)}.auth-card__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--accent);letter-spacing:.1em;text-transform:uppercase}.auth-card__subtitle{font-size:var(--text-sm);color:var(--text-muted);letter-spacing:.02em}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.form-group input{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);padding:.75rem var(--space-4);transition:var(--transition-base)}.form-group input:focus{border-color:var(--accent);background-color:var(--surface-3);box-shadow:0 0 0 3px #c9a84c1a}.auth-error{background-color:#e05c5c14;border:1px solid rgba(224,92,92,.25);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--text-sm);padding:var(--space-3) var(--space-4)}.auth-submit{background-color:var(--accent);border:none;border-radius:var(--radius-md);color:var(--text-inverse);cursor:pointer;font-family:var(--font-body);font-size:var(--text-base);font-weight:700;letter-spacing:.03em;margin-top:var(--space-2);padding:.8rem;transition:var(--transition-base);width:100%;position:relative;overflow:hidden}.auth-submit:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 100%)}.auth-submit:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 16px #c9a84c4d}.auth-submit:active{transform:translateY(0)}.auth-submit:disabled{background-color:var(--surface-3);color:var(--text-muted);cursor:not-allowed;transform:none;box-shadow:none}.auth-card__footer{text-align:center;font-size:var(--text-sm);color:var(--text-muted)}.auth-link{color:var(--accent);text-decoration:none;font-weight:600;transition:var(--transition-base)}.auth-link:hover{color:var(--accent-hover)}.invite-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--surface-0);padding:var(--space-8);position:relative}.invite-page:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(ellipse at center,rgba(201,168,76,.05) 0%,transparent 70%);pointer-events:none}.invite-card{background-color:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-xl);padding:var(--space-10) var(--space-8);width:100%;max-width:440px;display:flex;flex-direction:column;gap:var(--space-6);position:relative;box-shadow:var(--shadow-xl);animation:cardEnter .3s ease-out}@keyframes cardEnter{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.invite-card:before{content:"";position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}.invite-card__header{text-align:center}.invite-card__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-1)}.invite-card__subtitle{font-size:var(--text-sm);color:var(--text-muted)}.invite-status{color:var(--text-muted);font-size:var(--text-sm);text-align:center}.invite-error{display:flex;flex-direction:column;gap:var(--space-3);text-align:center}.invite-error__title{font-family:var(--font-display);font-size:var(--text-base);color:var(--color-error);letter-spacing:.03em}.invite-error__message{font-size:var(--text-sm);color:var(--text-muted)}.invite-details{display:flex;flex-direction:column;gap:var(--space-4)}.invite-details__from{font-size:var(--text-sm);color:var(--text-secondary);text-align:center}.invite-details__from span{color:var(--text-primary);font-weight:600}.invite-details__project{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-5);text-align:center;display:flex;flex-direction:column;gap:var(--space-2)}.invite-details__project-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--text-primary);letter-spacing:.03em}.invite-details__genre{font-size:var(--text-xs);color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.invite-details__expires{font-size:var(--text-xs);color:var(--text-muted);text-align:center}.invite-btn{border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);font-size:var(--text-base);font-weight:700;padding:.8rem;transition:var(--transition-base);border:1px solid transparent;width:100%;letter-spacing:.02em}.invite-btn--primary{background-color:var(--accent);color:var(--text-inverse)}.invite-btn--primary:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 16px #c9a84c4d}.invite-btn--primary:disabled{background-color:var(--surface-3);color:var(--text-muted);cursor:not-allowed;transform:none}.invite-btn--secondary{background:none;border-color:var(--border-default);color:var(--text-secondary)}.invite-btn--secondary:hover{border-color:var(--border-strong);color:var(--text-primary)}.scene-node{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);min-width:180px;max-width:240px;transition:var(--transition-base);box-shadow:var(--shadow-sm)}.scene-node--selected{border-color:var(--accent);box-shadow:0 0 0 2px #c9a84c33,var(--shadow-md)}.scene-node__body{padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.scene-node__label{color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600}.scene-node__preview{color:var(--text-muted);font-size:var(--text-xs);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-node__handle{background-color:var(--accent)!important;width:10px!important;height:10px!important;border:2px solid var(--surface-0)!important}.node-editor-panel{position:absolute;top:0;right:0;bottom:0;width:280px;background-color:var(--surface-1);border-left:1px solid var(--border-subtle);z-index:10;display:flex;flex-direction:column;animation:slideIn .15s ease-out;box-shadow:var(--shadow-lg)}.node-editor-panel__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.node-editor-panel__header h3{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);letter-spacing:.04em}.node-editor-panel__body{flex:1;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-5)}.node-editor-panel .form-group{display:flex;flex-direction:column;gap:var(--space-2)}.node-editor-panel label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.node-editor-panel input,.node-editor-panel textarea{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);resize:vertical;transition:var(--transition-base)}.node-editor-panel input:focus,.node-editor-panel textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c9a84c14}.node-editor-panel__meta{font-size:var(--text-xs);color:var(--text-muted);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.story-architect{display:flex;height:100vh;margin:-2rem;overflow:hidden}.story-architect__sidebar{width:240px;flex-shrink:0;background-color:var(--surface-1);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);overflow-y:auto}.story-architect__sidebar-header h2{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--text-primary);letter-spacing:.06em;text-transform:uppercase}.story-architect__sidebar-header p{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1)}.create-graph-form{display:flex;flex-direction:column;gap:var(--space-2)}.create-graph-form input{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.create-graph-form input:focus{outline:none;border-color:var(--accent)}.create-graph-form__actions{display:flex;gap:var(--space-2)}.graph-list{display:flex;flex-direction:column;gap:var(--space-1)}.graph-list__item{background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);padding:var(--space-2) var(--space-3);text-align:left;transition:var(--transition-base);display:flex;flex-direction:column;gap:var(--space-1)}.graph-list__item:hover{background-color:var(--surface-2);color:var(--text-primary);border-color:var(--border-default)}.graph-list__item--active{border-color:var(--accent-border);background-color:var(--accent-dim);color:var(--accent)}.graph-list__name{font-size:var(--text-sm);font-weight:600}.graph-list__desc{font-size:var(--text-xs);color:var(--text-muted)}.story-architect__canvas{flex:1;position:relative;background-color:var(--surface-0)}.canvas-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:var(--text-sm)}.canvas-toolbar{position:absolute;top:var(--space-4);left:var(--space-4);right:var(--space-4);z-index:10;display:flex;justify-content:space-between;align-items:center;background-color:#110f14d9;border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-md)}.canvas-toolbar__title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);letter-spacing:.04em}.canvas-toolbar__actions{display:flex;gap:var(--space-3)}.entry-card{background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3);transition:var(--transition-base)}.entry-card:hover{border-color:var(--border-default);background-color:var(--surface-3)}.entry-card__type{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.entry-card__name{font-size:var(--text-md);font-weight:600;color:var(--text-primary)}.entry-card__link{color:var(--text-primary);text-decoration:none;font-size:var(--text-md);font-weight:600;transition:var(--transition-base)}.entry-card__link:hover{color:var(--accent)}.entry-card__summary{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.entry-card__tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.entry-card__tag{background-color:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-full);color:var(--text-muted);font-size:var(--text-xs);padding:.2rem .6rem}.entry-card__delete{align-self:flex-end;background:none;border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-xs);padding:.3rem .75rem;transition:var(--transition-base)}.entry-card__delete:hover{border-color:var(--color-error);color:var(--color-error)}.create-entry-form{background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.create-entry-form__title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);letter-spacing:.04em}.form-group input,.form-group select,.form-group textarea{background-color:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:.6rem .75rem;resize:vertical;transition:var(--transition-base)}.form-submit{background-color:var(--accent);border:none;border-radius:var(--radius-md);color:var(--text-inverse);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;padding:.65rem 1rem;transition:var(--transition-base);letter-spacing:.02em}.form-submit:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #c9a84c40}.form-submit:disabled{background-color:var(--surface-3);color:var(--text-muted);cursor:not-allowed;transform:none;box-shadow:none}.world-bible__header{margin-bottom:var(--space-6)}.world-bible__header h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--text-primary);letter-spacing:.04em;margin-bottom:var(--space-1)}.world-bible__header p{color:var(--text-muted);font-size:var(--text-sm)}.world-bible__body{display:flex;gap:var(--space-8);align-items:flex-start}.world-bible__sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-4)}.filter-group{display:flex;flex-direction:column;gap:var(--space-1)}.filter-group__label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:var(--space-1);padding:0 var(--space-2)}.filter-btn{background:none;border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);text-align:left;transition:var(--transition-base)}.filter-btn:hover{background-color:var(--surface-2);color:var(--text-primary)}.filter-btn--active{background-color:var(--accent-dim);border-color:var(--accent-border);color:var(--accent);font-weight:600}.world-bible__entries{flex:1}.entries-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.entry-detail{max-width:720px}.entry-detail__topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-8)}.back-link{color:var(--text-muted);font-size:var(--text-sm);text-decoration:none;transition:var(--transition-base);display:flex;align-items:center;gap:var(--space-2)}.back-link:hover{color:var(--accent)}.entry-detail__actions{display:flex;gap:var(--space-3)}.entry-view__header{margin-bottom:var(--space-5)}.entry-view__type{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-2);display:block}.entry-view__name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);letter-spacing:.03em}.entry-view__summary{color:var(--text-secondary);font-size:var(--text-base);line-height:1.6;margin-bottom:var(--space-4)}.entry-view__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-6)}.entry-view__meta{display:flex;gap:var(--space-6);font-size:var(--text-xs);color:var(--text-muted);border-top:1px solid var(--border-subtle);padding-top:var(--space-4);margin-top:var(--space-6)}.entry-edit-form{display:flex;flex-direction:column;gap:var(--space-5)}.entry-edit-form .form-group{display:flex;flex-direction:column;gap:var(--space-2)}.entry-edit-form label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.entry-edit-form input,.entry-edit-form select,.entry-edit-form textarea{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);padding:.65rem .875rem;resize:vertical;transition:var(--transition-base)}.entry-edit-form input:focus,.entry-edit-form select:focus,.entry-edit-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c9a84c14}.alignment-selector{display:flex;flex-direction:column;gap:var(--space-3)}.alignment-selector__label{font-size:var(--text-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.alignment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.alignment-cell{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;padding:var(--space-2) var(--space-1);text-align:center;transition:var(--transition-base)}.alignment-cell:hover{border-color:var(--border-strong);color:var(--text-primary);background-color:var(--surface-3)}.alignment-cell--active{background-color:var(--accent-dim);border-color:var(--accent-border);color:var(--accent);font-weight:700}.alignment-selector__current{font-size:var(--text-xs);color:var(--text-muted)}.alignment-selector__current span{color:var(--accent);font-weight:600}.tag-input{display:flex;flex-direction:column;gap:var(--space-2)}.tag-input__label{font-size:var(--text-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.tag-input__tags{display:flex;flex-wrap:wrap;gap:var(--space-2);background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-2);min-height:42px;align-items:center;transition:var(--transition-base)}.tag-input__tags:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #c9a84c14}.tag-input__tag{background-color:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-full);color:var(--accent);font-size:var(--text-xs);font-weight:500;padding:.2rem .5rem .2rem .75rem;display:flex;align-items:center;gap:var(--space-1)}.tag-input__remove{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;line-height:1;padding:0;transition:var(--transition-base)}.tag-input__remove:hover{color:var(--color-error)}.tag-input__input{background:none;border:none;color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);outline:none;flex:1;min-width:140px;padding:.1rem var(--space-1)}.tag-input__input::placeholder{color:var(--text-muted)}.arc-tracker{display:flex;flex-direction:column;gap:var(--space-3)}.arc-tracker__header{display:flex;justify-content:space-between;align-items:center}.arc-tracker__label{font-size:var(--text-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.arc-tracker__add{background:none;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);transition:var(--transition-base)}.arc-tracker__add:hover{border-color:var(--accent-border);color:var(--accent)}.arc-tracker__empty{color:var(--text-muted);font-size:var(--text-sm)}.arc-timeline{display:flex;flex-direction:column}.arc-stage{display:flex;gap:var(--space-3)}.arc-stage__connector{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:16px;padding-top:.65rem}.arc-stage__dot{width:10px;height:10px;border-radius:50%;background-color:var(--accent);flex-shrink:0}.arc-stage__line{width:2px;flex:1;background-color:var(--border-default);margin-top:var(--space-1);min-height:24px}.arc-stage__content{flex:1;margin-bottom:var(--space-3)}.arc-stage__summary{display:flex;justify-content:space-between;align-items:center;background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;transition:var(--transition-base)}.arc-stage__summary:hover{border-color:var(--border-default)}.arc-stage__meta{display:flex;align-items:center;gap:var(--space-3)}.arc-stage__act{font-size:var(--text-xs);font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.arc-stage__title{font-size:var(--text-sm);color:var(--text-primary);font-weight:500}.arc-stage__toggle{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--text-xs)}.arc-stage__edit{background-color:var(--surface-1);border:1px solid var(--border-subtle);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.arc-stage__edit .form-group{display:flex;flex-direction:column;gap:var(--space-2)}.arc-stage__edit label{font-size:var(--text-xs);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.arc-stage__edit input,.arc-stage__edit textarea{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);resize:vertical;transition:var(--transition-base)}.arc-stage__edit input:focus,.arc-stage__edit textarea:focus{outline:none;border-color:var(--accent)}.arc-stage__remove{align-self:flex-start;background:none;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-xs);padding:var(--space-1) var(--space-3);transition:var(--transition-base)}.arc-stage__remove:hover{border-color:var(--color-error);color:var(--color-error)}.character-engine{display:flex;height:100vh;margin:-2rem;overflow:hidden}.character-engine__sidebar{width:240px;flex-shrink:0;background-color:var(--surface-1);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);overflow-y:auto}.character-engine__sidebar-header h2{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--text-primary);letter-spacing:.06em;text-transform:uppercase}.character-engine__sidebar-header p{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1)}.character-list{display:flex;flex-direction:column;gap:var(--space-1)}.character-list__item{background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);padding:var(--space-2) var(--space-3);text-align:left;transition:var(--transition-base);display:flex;flex-direction:column;gap:var(--space-1)}.character-list__item:hover{background-color:var(--surface-2);border-color:var(--border-default)}.character-list__item--active{border-color:var(--accent-border);background-color:var(--accent-dim)}.character-list__name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary)}.character-list__alignment{font-size:var(--text-xs);color:var(--accent);text-transform:capitalize}.character-engine__main{flex:1;overflow-y:auto;padding:var(--space-8)}.character-engine__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-sm);text-align:center}.character-profile__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle)}.character-profile__name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);letter-spacing:.03em}.character-profile__summary{color:var(--text-secondary);font-size:var(--text-sm);margin-top:var(--space-1)}.character-profile__body{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);margin-top:var(--space-6)}.character-profile__col{display:flex;flex-direction:column;gap:var(--space-6)}.form-group textarea{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-3) var(--space-3);resize:vertical;transition:var(--transition-base)}.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c9a84c14}.save-success{color:var(--color-success);font-size:var(--text-sm);margin-bottom:var(--space-2)}.timeline-canvas-wrapper{position:relative;flex:1;overflow:hidden;display:flex;flex-direction:column}.timeline-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15}.timeline-canvas-scroll{overflow-x:auto;overflow-y:auto;flex:1;padding:var(--space-4) 0}.timeline-canvas{display:flex;flex-direction:column;min-height:100%;position:relative}.timeline-axis{position:relative;height:40px;flex-shrink:0}.timeline-axis__marker{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%)}.timeline-axis__label{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;margin-bottom:2px;font-family:var(--font-body)}.timeline-axis__tick{width:1px;height:8px;background-color:var(--border-default)}.timeline-layer{display:flex;border-top:1px solid var(--border-subtle);flex-shrink:0}.timeline-layer__label{flex-shrink:0;display:flex;align-items:center;padding:0 var(--space-4);font-size:var(--text-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;border-right:1px solid var(--border-subtle);background-color:var(--surface-1);position:sticky;left:0;z-index:5}.timeline-layer__track{position:relative;flex-shrink:0}.timeline-layer__line{position:absolute;top:50%;left:0;right:0;height:1px;background-color:var(--border-subtle);transform:translateY(-50%)}.timeline-event{position:absolute;top:50%;transform:translate(-50%,-50%);background-color:var(--surface-2);border:1px solid var(--accent-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);cursor:pointer;min-width:100px;max-width:150px;transition:var(--transition-base);z-index:2;box-shadow:var(--shadow-sm)}.timeline-event:hover{background-color:var(--surface-3);transform:translate(-50%,-53%);box-shadow:var(--shadow-md)}.timeline-event--selected{background-color:var(--surface-3);z-index:10}.timeline-event__dot{width:8px;height:8px;border-radius:50%;margin:0 auto var(--space-1)}.timeline-event__title{font-size:var(--text-xs);font-weight:600;color:var(--text-primary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.timeline-event__year{font-size:var(--text-xs);color:var(--text-muted);text-align:center;margin-top:2px}.event-popover{position:absolute;bottom:var(--space-8);left:50%;transform:translate(-50%);width:300px;background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-lg);z-index:20;box-shadow:var(--shadow-xl);animation:popIn .15s ease-out}@keyframes popIn{0%{transform:translate(-50%) scale(.95);opacity:0}to{transform:translate(-50%) scale(1);opacity:1}}.event-popover__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.event-popover__header h4{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);letter-spacing:.03em}.event-popover__body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.event-popover .form-group{display:flex;flex-direction:column;gap:var(--space-2)}.event-popover label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.event-popover input,.event-popover textarea{background-color:var(--surface-1);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);resize:vertical;transition:var(--transition-base)}.event-popover input:focus,.event-popover textarea:focus{outline:none;border-color:var(--accent)}.event-popover__actions{display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle)}.add-event-form{position:absolute;top:0;right:0;bottom:0;width:300px;background-color:var(--surface-1);border-left:1px solid var(--border-subtle);z-index:20;display:flex;flex-direction:column;animation:slideIn .15s ease-out;overflow-y:auto;box-shadow:var(--shadow-lg)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.add-event-form__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.add-event-form__header h3{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);letter-spacing:.04em}.add-event-form form{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.form-group input,.form-group select,.form-group textarea{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);resize:vertical;transition:var(--transition-base)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #c9a84c14}.color-presets{display:flex;gap:var(--space-2);flex-wrap:wrap}.color-swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:var(--transition-base)}.color-swatch:hover{transform:scale(1.15)}.color-swatch--active{border-color:var(--text-primary);transform:scale(1.15)}.timeline-page{display:flex;height:100vh;margin:-2rem;overflow:hidden}.timeline-sidebar{width:220px;flex-shrink:0;background-color:var(--surface-1);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);overflow-y:auto}.timeline-sidebar__header h2{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--text-primary);letter-spacing:.06em;text-transform:uppercase}.timeline-sidebar__header p{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1)}.create-timeline-form{display:flex;flex-direction:column;gap:var(--space-2)}.create-timeline-form input{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);transition:var(--transition-base)}.create-timeline-form input:focus{outline:none;border-color:var(--accent)}.create-timeline-form__actions{display:flex;gap:var(--space-2)}.timeline-list{display:flex;flex-direction:column;gap:var(--space-1)}.timeline-list__item{background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:500;padding:var(--space-2) var(--space-3);text-align:left;transition:var(--transition-base)}.timeline-list__item:hover{background-color:var(--surface-2);color:var(--text-primary);border-color:var(--border-default)}.timeline-list__item--active{border-color:var(--accent-border);background-color:var(--accent-dim);color:var(--accent)}.timeline-main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;background-color:var(--surface-0)}.timeline-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:var(--text-sm)}.timeline-toolbar{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-6);border-bottom:1px solid var(--border-subtle);flex-shrink:0;background-color:var(--surface-1)}.timeline-toolbar__title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;color:var(--text-primary);letter-spacing:.04em}.timeline-legend{display:flex;gap:var(--space-6);padding:var(--space-2) var(--space-6);border-bottom:1px solid var(--border-subtle);flex-shrink:0;background-color:var(--surface-1)}.timeline-legend__item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted)}.timeline-legend__dot{width:8px;height:8px;border-radius:50%}.rich-text-editor{border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;transition:var(--transition-base)}.rich-text-editor:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #c9a84c14}.rich-text-editor__toolbar{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background-color:var(--surface-2);border-bottom:1px solid var(--border-subtle)}.toolbar-btn{background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);padding:.2rem .5rem;transition:var(--transition-base);min-width:28px}.toolbar-btn:hover{background-color:var(--surface-3);color:var(--text-primary)}.toolbar-btn--active{background-color:var(--surface-3);border-color:var(--accent-border);color:var(--accent)}.toolbar-divider{width:1px;height:16px;background-color:var(--border-default);margin:0 var(--space-1)}.rich-text-editor__content{background-color:var(--surface-1);min-height:160px;padding:var(--space-3) var(--space-4)}.rich-text-editor__content .tiptap{color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;outline:none;min-height:140px}.rich-text-editor__content .tiptap p{margin-bottom:var(--space-2)}.rich-text-editor__content .tiptap strong{color:var(--text-primary);font-weight:700}.rich-text-editor__content .tiptap em{color:var(--text-secondary)}.rich-text-editor__content .tiptap blockquote{border-left:2px solid var(--accent);margin:var(--space-2) 0;padding-left:var(--space-4);color:var(--text-secondary);font-style:italic}.rich-text-editor__content .tiptap ul{padding-left:var(--space-6);margin-bottom:var(--space-2)}.rich-text-editor__content .tiptap li{margin-bottom:var(--space-1)}.dialogue-line{background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);cursor:pointer;padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);transition:var(--transition-base)}.dialogue-line:hover{border-color:var(--border-default);background-color:var(--surface-3)}.dialogue-line--selected{border-color:var(--accent-border);background-color:var(--accent-dim)}.dialogue-line__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-2)}.dialogue-line__speaker{font-size:var(--text-xs);font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.dialogue-line__scene{font-size:var(--text-xs);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dialogue-line__preview{font-size:var(--text-xs);color:var(--text-secondary);font-style:italic;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dialogue-line__tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.dialogue-line__tag{border:1px solid var(--border-default);border-radius:var(--radius-full);color:var(--text-muted);font-size:var(--text-xs);padding:1px .5rem}.dialogue-workshop{display:flex;height:100vh;margin:-2rem;overflow:hidden}.dialogue-workshop__sidebar{width:280px;flex-shrink:0;background-color:var(--surface-1);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);overflow-y:auto}.dialogue-workshop__sidebar-header h2{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--text-primary);letter-spacing:.06em;text-transform:uppercase}.dialogue-workshop__sidebar-header p{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1)}.export-buttons{display:flex;gap:var(--space-2)}.btn--export{flex:1;background:none;border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;padding:var(--space-2) var(--space-2);transition:var(--transition-base);text-align:center}.btn--export:hover{border-color:var(--accent-border);color:var(--accent);background-color:var(--accent-dim)}.filter-input{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);transition:var(--transition-base);width:100%}.filter-input:focus{outline:none;border-color:var(--accent)}.filter-input::placeholder{color:var(--text-muted)}.create-line-form{display:flex;flex-direction:column;gap:var(--space-2)}.create-line-form input{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);transition:var(--transition-base)}.create-line-form input:focus{outline:none;border-color:var(--accent)}.create-line-form__actions{display:flex;gap:var(--space-2)}.dialogue-list{display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto}.dialogue-workshop__editor{flex:1;overflow-y:auto;display:flex;flex-direction:column;background-color:var(--surface-0)}.dialogue-workshop__empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:var(--text-sm)}.dialogue-editor{padding:var(--space-8);display:flex;flex-direction:column;gap:var(--space-6);max-width:800px}.dialogue-editor__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.dialogue-editor__meta{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.dialogue-editor__speaker{background:none;border:none;border-bottom:1px solid var(--border-subtle);color:var(--accent);font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:.04em;padding:var(--space-1) 0;outline:none;transition:var(--transition-base);width:100%}.dialogue-editor__speaker:focus{border-bottom-color:var(--accent)}.dialogue-editor__scene{background:none;border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-muted);font-family:var(--font-body);font-size:var(--text-sm);padding:var(--space-1) 0;outline:none;transition:var(--transition-base);width:100%}.dialogue-editor__scene:focus{border-bottom-color:var(--border-default)}.dialogue-editor__actions{display:flex;gap:var(--space-3);flex-shrink:0}.dialogue-editor__tones{display:flex;flex-direction:column;gap:var(--space-3)}.tone-presets{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tone-preset{background:none;border:1px solid var(--border-default);border-radius:var(--radius-full);color:var(--text-muted);cursor:pointer;font-family:var(--font-body);font-size:var(--text-xs);padding:.2rem .75rem;transition:var(--transition-base)}.tone-preset:hover{border-color:var(--border-strong);color:var(--text-primary)}.tone-preset--active{border-color:var(--accent-border);color:var(--accent);background-color:var(--accent-dim)}.dialogue-editor__versions{border-top:1px solid var(--border-subtle);padding-top:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.versions__label{font-size:var(--text-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.version-entry{display:flex;flex-direction:column;gap:2px}.version-entry__date{font-size:var(--text-xs);color:var(--text-muted)}.version-entry__preview{font-size:var(--text-xs);color:var(--text-muted);font-style:italic}.export-page{max-width:900px}.export-page__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-10)}.export-page__header h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--text-primary);letter-spacing:.04em;margin-bottom:var(--space-1)}.export-page__header p{color:var(--text-muted);font-size:var(--text-sm)}.export-section{margin-bottom:var(--space-10)}.export-section__title{font-size:var(--text-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-4)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4)}.summary-card{background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;align-items:center;gap:var(--space-4);transition:var(--transition-base)}.summary-card:hover{border-color:var(--border-default);background-color:var(--surface-3)}.summary-card__count{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:900;line-height:1;flex-shrink:0;min-width:2rem;text-align:center}.summary-card__label{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1)}.summary-card__desc{font-size:var(--text-xs);color:var(--text-muted);line-height:1.4}.recent-list{display:flex;flex-direction:column;gap:var(--space-2)}.recent-entry{display:flex;align-items:center;gap:var(--space-4);background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);transition:var(--transition-base)}.recent-entry:hover{border-color:var(--border-default)}.recent-entry__type{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;width:80px;flex-shrink:0}.recent-entry__name{font-size:var(--text-sm);color:var(--text-primary);flex:1;font-weight:500}.recent-entry__date{font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0}.export-options{display:flex;flex-direction:column;gap:var(--space-3)}.export-option{display:flex;justify-content:space-between;align-items:center;background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);gap:var(--space-8);transition:var(--transition-base)}.export-option:hover{border-color:var(--border-default)}.export-option__label{font-size:var(--text-base);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1)}.export-option__desc{font-size:var(--text-sm);color:var(--text-muted);line-height:1.5}.status-text{color:var(--text-muted);font-size:var(--text-sm)}.status-text--error{color:var(--color-error)}.billing-page{max-width:960px}.billing-page__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-10)}.billing-page__header h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--text-primary);letter-spacing:.04em;margin-bottom:var(--space-1)}.billing-page__header p{color:var(--text-muted);font-size:var(--text-sm)}.billing-current-badge{background-color:var(--accent-dim);border:1px solid var(--accent-border);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-5);text-align:center;display:flex;flex-direction:column;gap:var(--space-1)}.billing-current-badge__label{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.billing-current-badge__tier{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--accent);letter-spacing:.04em}.billing-section{margin-bottom:var(--space-10)}.billing-section__title{font-size:var(--text-xs);font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-5)}.usage-grid{display:flex;flex-direction:column;gap:var(--space-4);background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-6)}.usage-bar{display:flex;flex-direction:column;gap:var(--space-2)}.usage-bar__header{display:flex;justify-content:space-between;align-items:center}.usage-bar__label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.usage-bar__count{font-size:var(--text-sm);font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}.usage-bar__count--warning{color:var(--color-warning)}.usage-bar__count--danger{color:var(--color-error)}.usage-bar__track{height:6px;background-color:var(--surface-3);border-radius:var(--radius-full);overflow:hidden}.usage-bar__fill{height:100%;background-color:var(--accent);border-radius:var(--radius-full);transition:width .4s ease}.usage-bar__fill--warning{background-color:var(--color-warning)}.usage-bar__fill--danger{background-color:var(--color-error)}.usage-bar__fill--unlimited{background-color:var(--color-success);opacity:.4}.billing-tiers{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.billing-tier-card{background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);position:relative;transition:var(--transition-base)}.billing-tier-card:hover{border-color:var(--border-default)}.billing-tier-card--featured{border-color:var(--accent-border);background-color:var(--surface-3)}.billing-tier-card--current{border-color:var(--accent-border)}.billing-tier-card__badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background-color:var(--accent);color:var(--text-inverse);font-size:var(--text-xs);font-weight:700;letter-spacing:.06em;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);text-transform:uppercase;white-space:nowrap}.billing-tier-card__badge--current{background-color:var(--surface-4);color:var(--accent);border:1px solid var(--accent-border)}.billing-tier-card__header{display:flex;flex-direction:column;gap:var(--space-2)}.billing-tier-card__name{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--text-primary);letter-spacing:.04em}.billing-tier-card__price{display:flex;align-items:baseline;gap:var(--space-1)}.billing-tier-card__amount{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:900;color:var(--text-primary)}.billing-tier-card__period{font-size:var(--text-sm);color:var(--text-muted)}.billing-tier-card__features{list-style:none;display:flex;flex-direction:column;gap:var(--space-2);flex:1}.billing-tier-card__feature{display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary);line-height:1.4}.billing-tier-card__check{color:var(--color-success);font-weight:700;flex-shrink:0;margin-top:1px}.billing-tier-btn{border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;padding:var(--space-2) var(--space-3);transition:var(--transition-base);border:1px solid transparent;width:100%;letter-spacing:.02em}.billing-tier-btn--upgrade{background-color:var(--accent);color:var(--text-inverse)}.billing-tier-btn--upgrade:hover{background-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #c9a84c40}.billing-tier-btn--current{background:none;border-color:var(--border-default);color:var(--text-muted);cursor:default}.billing-tier-btn--downgrade{background:none;border-color:var(--border-default);color:var(--text-secondary)}.billing-tier-btn--downgrade:hover{border-color:var(--border-strong);color:var(--text-primary)}.billing-tier-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.billing-notice{font-size:var(--text-sm);color:var(--text-muted);text-align:center;padding:var(--space-4);background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}:root{--surface-0: #09080A;--surface-1: #110f14;--surface-2: #1a1720;--surface-3: #221f2a;--surface-4: #2a2733;--border-subtle: #1f1d28;--border-default: #2a2735;--border-strong: #3a3548;--text-primary: #ede8f5;--text-secondary: #9a92b0;--text-muted: #5a5470;--text-inverse: #09080A;--accent: #c9a84c;--accent-hover: #d4b86a;--accent-dim: #1f1a08;--accent-border: #3a2e10;--color-success: #5dbf7a;--color-error: #e05c5c;--color-warning: #d4924a;--color-info: #5b9bd4;--type-character: #c9a84c;--type-faction: #5b9bd4;--type-location: #5dbf7a;--type-item: #b05bd4;--type-event: #d4924a;--font-display: "Cinzel", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--text-xs: .7rem;--text-sm: .8rem;--text-base: .9rem;--text-md: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 32px rgba(0,0,0,.5);--shadow-xl: 0 16px 48px rgba(0,0,0,.6);--transition-fast: all .1s ease;--transition-base: all .15s ease;--transition-slow: all .25s ease;--sidebar-width: 240px}.btn{border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;padding:.5rem 1.1rem;transition:var(--transition-base);border:1px solid transparent;letter-spacing:.02em;display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap}.btn--primary{background-color:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.btn--primary:hover{background-color:var(--accent-hover);border-color:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 12px #c9a84c40}.btn--primary:active{transform:translateY(0)}.btn--primary:disabled{background-color:var(--surface-3);border-color:var(--border-default);color:var(--text-muted);cursor:not-allowed;transform:none;box-shadow:none}.btn--secondary{background:none;border-color:var(--border-default);color:var(--text-secondary)}.btn--secondary:hover{border-color:var(--border-strong);color:var(--text-primary);background-color:var(--surface-2)}.btn--danger{background:none;border-color:var(--border-default);color:var(--text-muted)}.btn--danger:hover{border-color:var(--color-error);color:var(--color-error)}.btn--ghost{background:none;border-color:transparent;color:var(--text-muted)}.btn--ghost:hover{background-color:var(--surface-2);color:var(--text-primary)}.btn--full{width:100%;justify-content:center}.btn--sm{font-size:var(--text-xs);padding:.3rem .75rem}.btn--lg{font-size:var(--text-base);padding:.65rem 1.5rem}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:var(--text-xs);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em}.form-group input,.form-group select,.form-group textarea{background-color:var(--surface-2);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);padding:.65rem .875rem;resize:vertical;transition:var(--transition-base);width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);background-color:var(--surface-3);box-shadow:0 0 0 3px #c9a84c14}.form-error{color:var(--color-error);font-size:var(--text-sm)}.save-success{color:var(--color-success);font-size:var(--text-sm)}.card{background-color:var(--surface-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);transition:var(--transition-base)}.card:hover{border-color:var(--border-default)}.card--interactive{cursor:pointer}.card--interactive:hover{border-color:var(--border-strong);background-color:var(--surface-3)}.type-badge{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.type-badge--character{color:var(--type-character)}.type-badge--faction{color:var(--type-faction)}.type-badge--location{color:var(--type-location)}.type-badge--item{color:var(--type-item)}.type-badge--event{color:var(--type-event)}.tag{background-color:var(--surface-3);border:1px solid var(--border-default);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--text-xs);padding:.2rem .65rem;display:inline-block}.page-header{margin-bottom:var(--space-8)}.page-header h2{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--text-primary);letter-spacing:.04em;margin-bottom:var(--space-1)}.page-header p{color:var(--text-muted);font-size:var(--text-sm)}.divider{height:1px;background-color:var(--border-subtle);margin:var(--space-6) 0}.close-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--text-base);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:var(--transition-base);line-height:1}.close-btn:hover{color:var(--text-primary);background-color:var(--surface-3)}
