.ag-toolbar { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:10px 14px; background:#2a1c34; border-bottom:1px solid #52395f; }
.ag-toolbar>span:first-child { margin-right:auto; }
.ag-viewport { position:relative; flex:1; min-height:0; overflow:hidden; touch-action:none; background:radial-gradient(#503760 1px,transparent 1px) 0 0/20px 20px,#160f20; }
.ag-world { position:absolute; left:0; top:0; transform-origin:0 0; width:0; height:0; }
.ag-world>svg { position:absolute; left:0; top:0; pointer-events:none; overflow:visible; }
.aw-page .ag-node { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:8px; position:absolute; width:240px; height:108px; padding:15px; border:1px solid var(--node-color); border-left:5px solid var(--node-color); border-radius:12px; background:#30203d; box-shadow:0 7px 24px #08050c55; touch-action:none; cursor:grab; text-align:left; }
.aw-page .ag-node.selected { outline:3px solid #d4b4fb; outline-offset:3px; }
.ag-node small { color:#cfb3e5; font-size:10px; font-weight:650; letter-spacing:.1em; }
.ag-node strong { color:#f6eaff; font-size:15px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; max-width:100%; }
.ag-node span { color:#c3abd6; font-size:11px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; max-width:100%; }
.al-rule-row { display:grid; grid-template-columns:1fr 95px 1fr 32px; gap:7px; align-items:end; padding-bottom:10px; }
.al-rule-row button { padding:6px; }
.story-writing { width:100%; max-width:900px; margin:0 auto; }
.story-writing textarea { min-height:230px; font-size:15px; line-height:1.9; }
.story-choice { border-left:3px solid #ab72db; }
.story-play { max-width:760px; margin:25px auto; border:1px solid #80599e; border-radius:18px; padding:35px; background:radial-gradient(ellipse at top right,#59327266,transparent 75%),#21152e; box-shadow:0 20px 50px #08030d55; }
.story-play h2 { font-size:28px; line-height:1.35; }
.story-play .story-prose { white-space:pre-wrap; font:17px/1.9 Georgia,serif; color:#e6d7ef; margin:25px 0; }
.story-play>button { width:100%; justify-content:flex-start; margin:6px 0; padding:15px; text-align:left; }
.story-play .story-speaker { color:#d8acf8; font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
@media(max-width:600px) { .al-rule-row { grid-template-columns:1fr 80px; } .story-play { padding:22px; margin:0; } }
