:root{--void:#070811;--void-2:#0a0c18;--panel:#0f1122;--panel-2:#15182b;--line:#bec6eb1a;--line-2:#bec6eb33;--text:#a9adc6;--text-strong:#eceef8;--text-title:#f4f5fb;--text-dim:#6b6f8e;--text-narrative:#e4e6f4;--primary:#ebcb86;--primary-2:#f7dea4;--primary-ink:#1a1407;--primary-soft-bg:#ebcb861a;--primary-soft-bg-hover:#ebcb862e;--primary-soft-border:#ebcb864d;--primary-line:#ebcb8666;--accent:#9da4f2;--accent-soft-bg:#9da4f21f;--accent-soft-border:#9da4f247;--accent-ring:#9da4f2;--state-origin:#ebcb86;--state-cleared:#6fd3a0;--state-accessible:#9da4f2;--state-locked:#4a4a58;--state-low:#e98c8c;--state-progress:#9da4f2;--shadow-sm:0 1px 3px #00000080;--shadow-card:0 2px 8px #0006;--shadow-md:0 4px 12px #00000073;--shadow-lg:0 10px 28px #0000008c;--shadow-float:0 30px 70px #0009;--glow-gold:0 0 28px #ebcb8652;--glow-gold-strong:0 0 18px #ebcb868c;--glow-accent:0 0 12px #9da4f280;--glow-cleared:0 0 14px #6fd3a066;--space-2xs:.25rem;--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:6rem;--radius-sm:8px;--radius-md:12px;--radius-lg:14px;--radius-pill:999px;--space-bg:radial-gradient(120% 80% at 50% 0%, #161434d9, transparent 62%), radial-gradient(90% 60% at 80% 100%, #12153099, transparent 55%), var(--void);--scrim-soft:linear-gradient(#0000004d, #0000009e);--text-shadow-strong:0 1px 3px #000000b3;--map-edge-color:#bec6eb4d;--starfield:radial-gradient(1px 1px at 24px 32px, #ffffffb3, transparent), radial-gradient(1px 1px at 88px 120px, #fff6, transparent), radial-gradient(1.4px 1.4px at 160px 60px, #ebcb8680, transparent), radial-gradient(1px 1px at 210px 180px, #ffffff80, transparent), radial-gradient(1px 1px at 300px 90px, #9da4f280, transparent);--font-ui:var(--font-grotesk,"Space Grotesk"), var(--font-zen,"Zen Kaku Gothic New"), -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;--font-sans-jp:var(--font-zen,"Zen Kaku Gothic New"), "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Noto Sans JP", Meiryo, sans-serif;--font-narrative:var(--font-shippori,"Shippori Mincho"), "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif JP", serif;--fs-display:2.5rem;--fs-h1:1.5rem;--fs-h2:1.125rem;--fs-body:1rem;--fs-sm:.875rem;--fs-xs:.75rem;--fs-2xs:.6875rem;--lh-tight:1.2;--lh-body:1.75;--lh-narrative:1.95;--tracking-label:.18em;--tracking-eyebrow:.28em;--focus-ring:0 0 0 3px #9da4f280;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}
.tw-app{background:var(--void);color:var(--text);font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.tw-app ::selection{background:var(--primary-soft-bg)}.tw-space-bg{background:var(--space-bg)}.tw-starfield{position:relative}.tw-starfield:before{content:"";pointer-events:none;background-image:var(--starfield);opacity:.55;background-size:340px 240px;position:absolute;inset:0}.tw-eyebrow{font:500 var(--fs-xs)/1 var(--font-ui);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--accent)}.tw-display{font:600 var(--fs-display)/var(--lh-tight) var(--font-ui);letter-spacing:-.01em;color:var(--text-title);margin:0}.tw-h1{font:600 var(--fs-h1)/1.3 var(--font-ui);color:var(--text-title);margin:0}.tw-h2{font:600 var(--fs-h2)/1.3 var(--font-ui);color:var(--text-strong);margin:0}.tw-body{font:400 var(--fs-body)/var(--lh-body) var(--font-sans-jp);color:var(--text);margin:0}.tw-muted{color:var(--text-dim)}.tw-label{font:500 var(--fs-xs)/1 var(--font-ui);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-dim)}.tw-narration{padding:2px 0 2px var(--space-md);border-left:2px solid var(--primary-line);font:400 var(--fs-body)/var(--lh-narrative) var(--font-narrative);letter-spacing:.02em;color:var(--text-narrative);margin:0}.tw-btn{justify-content:center;align-items:center;gap:var(--space-xs);font:500 var(--fs-sm)/1 var(--font-sans-jp);padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:1px solid #0000;text-decoration:none;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.tw-btn:active{transform:translateY(1px)}.tw-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.tw-btn--primary{color:var(--primary-ink);background:linear-gradient(180deg, var(--primary-2), var(--primary));box-shadow:0 6px 18px #ebcb8640,inset 0 1px #ffffff80}.tw-btn--primary:hover{filter:brightness(1.04)}.tw-btn--ghost{color:var(--text-strong);border-color:var(--line-2);background:0 0}.tw-btn--ghost:hover{border-color:var(--text-dim);background:#ffffff08}.tw-btn--accent{color:var(--accent);background:var(--accent-soft-bg);border-color:var(--accent-soft-border);font-size:var(--fs-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm)}.tw-btn--accent:hover{background:#9da4f22e}.tw-btn--sm{font-size:var(--fs-xs);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.tw-btn--icon{border-radius:var(--radius-md);width:44px;height:44px;padding:0;font-size:1.05rem}.tw-tag{align-items:center;gap:var(--space-2xs);font:500 var(--fs-xs)/1 var(--font-sans-jp);border-radius:var(--radius-pill);border:1px solid #0000;padding:7px 13px;display:inline-flex}.tw-tag--primary{color:var(--primary);background:var(--primary-soft-bg);border-color:var(--primary-soft-border)}.tw-tag--accent{color:var(--accent);background:var(--accent-soft-bg);border-color:var(--accent-soft-border)}.tw-status{align-items:center;gap:var(--space-xs);font:500 var(--fs-xs)/1 var(--font-sans-jp);display:inline-flex}.tw-status__dot{border-radius:50%;flex:0 0 6px;width:6px;height:6px}.tw-status--progress{color:var(--state-progress)}.tw-status--progress .tw-status__dot{background:var(--state-progress);box-shadow:var(--glow-accent)}.tw-status--cleared{color:var(--state-cleared)}.tw-status--cleared .tw-status__dot{background:var(--state-cleared);box-shadow:var(--glow-cleared)}.tw-status--low{color:var(--state-low)}.tw-status--low .tw-status__dot{background:var(--state-low)}.tw-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.tw-card__media{background:linear-gradient(135deg,#1a1838,#0c0c1e);justify-content:center;align-items:center;height:96px;display:flex;position:relative}.tw-card__body{padding:var(--space-md) var(--space-lg)}.tw-card__title{margin:0 0 var(--space-2xs);font:600 var(--fs-h2)/1.3 var(--font-ui);color:var(--text-strong)}.tw-card__text{margin:0 0 var(--space-md);font:400 var(--fs-sm)/1.6 var(--font-sans-jp);color:var(--text)}.tw-card__actions{gap:var(--space-xs);flex-wrap:wrap;display:flex}.tw-field{align-items:center;gap:var(--space-sm);background:var(--void-2);border:1px solid var(--line-2);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);display:flex}.tw-field:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.tw-input{min-width:0;font:400 var(--fs-sm)/1.4 var(--font-sans-jp);color:var(--text-strong);background:0 0;border:none;outline:none;flex:1}.tw-input::placeholder{color:var(--text-dim)}.tw-search-row{gap:var(--space-xs);align-items:stretch;display:flex}.tw-gauge__head{margin-bottom:var(--space-xs);justify-content:space-between;align-items:baseline;display:flex}.tw-gauge__num{font:600 1.625rem/1 var(--font-ui);color:var(--text-strong)}.tw-gauge__num small{font:400 var(--fs-sm)/1 var(--font-ui);color:var(--text-dim)}.tw-gauge__track{border-radius:var(--radius-pill);background:#ffffff12;height:8px;overflow:hidden}.tw-gauge__fill{border-radius:var(--radius-pill);background:linear-gradient(90deg, var(--primary), var(--primary-2));height:100%;box-shadow:0 0 12px #ebcb8680}.tw-gauge--low .tw-gauge__num{color:var(--state-low)}.tw-gauge--low .tw-gauge__fill{background:linear-gradient(90deg, #c0463c, var(--state-low));box-shadow:0 0 12px #e98c8c80}.tw-thread{gap:var(--space-md);flex-direction:column;display:flex}.tw-msg{max-width:82%}.tw-msg--them{align-self:flex-start}.tw-msg--player{align-self:flex-end}.tw-msg__who{align-items:center;gap:var(--space-xs);margin-bottom:5px;display:flex}.tw-msg__avatar{width:22px;height:22px;font:500 var(--fs-2xs)/1 var(--font-ui);color:hsl(var(--char-h,235) 77% 78%);background:hsla(var(--char-h,235), 60%, 65%, .25);border:1px solid hsla(var(--char-h,235), 60%, 65%, .5);border-radius:50%;flex:0 0 22px;justify-content:center;align-items:center;display:flex}.tw-msg__name{font:500 var(--fs-xs)/1 var(--font-sans-jp);color:hsl(var(--char-h,235) 77% 78%)}.tw-bubble{padding:var(--space-sm) var(--space-md);font:400 var(--fs-sm)/1.7 var(--font-sans-jp);color:var(--text-strong)}.tw-bubble--them{background:hsla(var(--char-h,235), 60%, 65%, .12);border:1px solid hsla(var(--char-h,235), 60%, 65%, .28);border-left:3px solid hsl(var(--char-h,235) 77% 72%);border-radius:var(--radius-sm) var(--radius-lg) var(--radius-lg) var(--radius-lg)}.tw-bubble--player{background:var(--primary-soft-bg);border:1px solid var(--primary-soft-border);border-radius:var(--radius-lg) var(--radius-sm) var(--radius-lg) var(--radius-lg)}.tw-scene{border:1px solid var(--primary-soft-border);border-radius:var(--radius-md);background:var(--panel);overflow:hidden}.tw-scene__img{width:100%;display:block}.tw-scene__cap{padding:var(--space-xs) var(--space-md);font:400 var(--fs-xs)/1.4 var(--font-ui);color:var(--text-dim);text-align:center}.tw-composer{gap:var(--space-xs);align-items:flex-end;display:flex}.tw-composer__box{background:var(--void-2);border:1px solid var(--line-2);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font:400 var(--fs-sm)/1.5 var(--font-sans-jp);color:var(--text-strong);flex:1}.tw-composer__box:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.tw-node{border:2px solid var(--line-2);color:var(--text-dim);background:#ffffff0a;border-radius:50%;justify-content:center;align-items:center;display:flex}.tw-node--origin{border-color:var(--state-origin);color:var(--primary-2);box-shadow:var(--glow-gold-strong);background:#ebcb8624}.tw-node--cleared{border-color:var(--state-cleared);color:var(--state-cleared);box-shadow:var(--glow-cleared);background:#6fd3a024}.tw-node--accessible{border-color:var(--state-accessible);color:var(--state-accessible);background:#9da4f224}.tw-node--locked{border-color:var(--line-2);color:var(--text-dim)}.tw-map-edge{stroke:var(--map-edge-color);stroke-width:1.4px;fill:none}.tw-divider{background:linear-gradient(90deg, transparent, var(--line-2), transparent);height:1px;margin:var(--space-3xl) 0 var(--space-2xl);border:0}@keyframes tw-twinkle{0%,to{opacity:.55;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}.tw-star{color:var(--primary-2);text-shadow:var(--glow-gold)}.tw-star--twinkle{animation:3.4s ease-in-out infinite tw-twinkle;display:inline-block}@media (prefers-reduced-motion:reduce){.tw-star--twinkle{animation:none}}
:root{--navbar-height:3.5rem;--navbar-offset:3.5rem}html{box-sizing:border-box}*,:before,:after{box-sizing:inherit}body{padding-top:var(--navbar-height);min-height:100vh}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(58% 48% at 12% -5%,#1f186261,#0000 70%),radial-gradient(52% 42% at 102% 18%,#191e5747,#0000 70%),radial-gradient(70% 60% at 50% 112%,#3b1c4a42,#0000 72%);position:fixed;inset:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-container{width:100%;max-width:768px;padding:0 var(--space-sm);margin:0 auto}@media (min-width:769px){.app-container{padding:0 var(--space-lg)}}.app-main{padding:var(--space-lg) 0 var(--space-2xl)}.page-heading{margin-bottom:var(--space-lg)}.page-heading .tw-display,.page-heading .tw-h1{margin-bottom:var(--space-2xs)}.page-lead{color:var(--text);margin:0}.page-section{margin-top:var(--space-xl)}.page-bottom{margin-top:var(--space-lg)}.section-title{margin:var(--space-xl) 0 var(--space-md)}.stack{gap:var(--space-md);flex-direction:column;display:flex}.stack-sm{gap:var(--space-sm);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.row-end{align-items:center;gap:var(--space-sm);flex-wrap:wrap;justify-content:flex-end;display:flex}.action-row{align-items:center;gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;display:flex}.grid-auto{gap:var(--space-md);grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));display:grid}.app-navbar{z-index:30;justify-content:space-between;align-items:center;gap:var(--space-md);height:var(--navbar-height);padding:0 var(--space-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);box-shadow:var(--shadow-card);background:#0a0c18d1;transition:transform .3s;display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(0)}.app-navbar--hidden{transform:translateY(-100%)}.navbar-brand-link{align-items:center;gap:var(--space-xs);font:600 var(--fs-h2)/1 var(--font-ui);color:var(--text-strong);display:inline-flex}.navbar-brand-link:hover{text-decoration:none}.navbar-brand-star{background:var(--primary-2);clip-path:polygon(50% 0%,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0% 50%,40% 40%);width:1em;height:1em;filter:drop-shadow(0 0 4px var(--primary-2));display:inline-block}.navbar-menu{align-items:center;gap:var(--space-xs);display:flex}.navbar-burger{border:1px solid var(--line-2);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--accent);cursor:pointer;background:0 0;justify-content:center;align-items:center;display:none}@media (max-width:768px){.navbar-burger{display:inline-flex}.navbar-menu{top:var(--navbar-height);align-items:stretch;gap:var(--space-2xs);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);background:#0a0c18f5;flex-direction:column;position:absolute;left:0;right:0}.navbar-menu:not(.tw-is-open){display:none}}.navbar-item{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font:500 var(--fs-sm)/1 var(--font-sans-jp);color:var(--text);align-items:center;display:inline-flex}.navbar-item:hover{color:var(--text-strong);background:#ffffff0a;text-decoration:none}.navbar-item.tw-nav-active{color:var(--text-strong);box-shadow:inset 0 -2px 0 var(--primary)}.navbar-burger-icon{background:currentColor;border-radius:1px;width:18px;height:2px;display:block;box-shadow:0 -6px,0 6px}.app-footer{border-top:1px solid var(--line);padding:var(--space-lg) 0;margin-top:var(--space-2xl)}.app-footer-nav{gap:var(--space-xs) var(--space-lg);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.app-footer-link{font-size:var(--fs-sm);color:var(--text-dim)}.app-footer-link:hover{color:var(--text)}.app-footer-copy{font-size:var(--fs-xs);color:var(--text-dim)}.breadcrumb-nav{top:var(--navbar-offset);z-index:20;align-items:center;gap:var(--space-2xs);margin-bottom:var(--space-sm);padding:var(--space-2xs) 0;font-size:var(--fs-sm);background:var(--void);transition:top .3s;display:flex;position:sticky}.breadcrumb-nav .sep{color:var(--text-dim)}.breadcrumb-nav a{color:var(--accent);opacity:.85}.breadcrumb-nav a:hover{opacity:1}.breadcrumb-nav .current{color:var(--text)}.home-hero{margin-bottom:var(--space-2xl);padding:var(--space-2xl) var(--space-lg);border-radius:var(--radius-lg);border:1px solid var(--primary-soft-border);background:var(--space-bg);box-shadow:var(--shadow-lg), inset 0 0 70px #09071dd9;text-align:center;position:relative;overflow:hidden}.home-hero-body{z-index:1;position:relative}.home-hero-eyebrow{margin:0 0 var(--space-sm)}.home-hero-title{margin:0 0 var(--space-sm);font:600 clamp(1.9rem, 6vw, var(--fs-display))/1.15 var(--font-ui);letter-spacing:-.01em;color:var(--text-title);text-shadow:0 0 24px #ebcb8659}.home-hero-star{background:var(--primary-2);clip-path:polygon(50% 0%,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0% 50%,40% 40%);width:.85em;height:.85em;filter:drop-shadow(0 0 6px var(--primary-2));vertical-align:middle;margin-right:.25em;display:inline-block}.home-hero-tagline{margin:0 0 var(--space-sm);color:var(--text-strong);font-size:clamp(1rem,3.2vw,1.3rem)}.home-hero-lead{max-width:34rem;color:var(--text);margin:0 auto}.home-hero-actions{justify-content:center;gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.lp-section{margin-top:var(--space-2xl)}.lp-lead{max-width:46rem;color:var(--text)}.lp-grid{gap:var(--space-md);margin-top:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));display:grid}.lp-card-en{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.lp-steps{gap:var(--space-md);margin:var(--space-md) 0 0;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));padding:0;list-style:none;display:grid}.lp-step{align-items:flex-start;gap:var(--space-sm);display:flex}.lp-step-num{font:700 1.6rem/1 var(--font-ui);color:var(--text-dim)}.lp-pricing-head{align-items:baseline;gap:var(--space-xs);margin-top:var(--space-md);display:flex}.lp-pricing-amount{font:700 2.4rem/1 var(--font-ui);color:var(--text-title)}.lp-pricing-unit{font-size:var(--fs-body);color:var(--text)}.lp-faq{gap:var(--space-sm);margin-top:var(--space-md);flex-direction:column;display:flex}.lp-faq-item>summary{cursor:pointer;color:var(--text-strong);font-weight:600}.lp-faq-item>p{margin-top:var(--space-2xs)}.lp-cta{margin-top:var(--space-2xl);text-align:center}.constellation-search{margin-bottom:var(--space-sm)}.constellation-search-status{margin-bottom:var(--space-md);font-size:var(--fs-sm);color:var(--text-dim)}.constellation-grid{gap:var(--space-md);margin-bottom:var(--space-lg);grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));display:grid}.constellation-tile{cursor:pointer;flex-direction:column;transition:transform .15s,border-color .15s,box-shadow .15s;display:flex}.constellation-tile:hover{border-color:var(--accent-soft-border);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.constellation-tile-visual{aspect-ratio:16/10;background:var(--space-bg);justify-content:center;align-items:center;display:flex;overflow:hidden}.constellation-tile-visual img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.constellation-tile:hover .constellation-tile-visual img{transform:scale(1.04)}.constellation-tile-placeholder{background:var(--primary-2);clip-path:polygon(50% 0%,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0% 50%,40% 40%);width:2.2rem;height:2.2rem;filter:drop-shadow(0 0 6px var(--primary-2));display:block}.constellation-tile-body{padding:var(--space-sm)}.constellation-tile-name{margin:0 0 var(--space-2xs)}.constellation-tile-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.constellation-pager{justify-content:center;align-items:center;gap:var(--space-md);margin-top:var(--space-lg);display:flex}.constellation-pager-status{font-size:var(--fs-sm);color:var(--text-dim)}.star-hit-section{margin-bottom:var(--space-lg)}.star-hit-heading{margin:0 0 var(--space-sm);font-size:var(--fs-h2);color:var(--text-strong)}.star-hit-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.star-hit{cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s;display:block}.star-hit:hover{border-color:var(--accent-soft-border);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.star-hit-body{padding:var(--space-sm)}.star-hit-meta{margin:0 0 var(--space-2xs);align-items:center;gap:var(--space-xs);font-size:var(--fs-xs);color:var(--text-dim);display:flex}.star-hit-locked{color:var(--state-locked)}.star-hit-title{margin:0 0 var(--space-2xs);font-size:var(--fs-body);color:var(--text-title)}.star-hit-outline{margin:0 0 var(--space-2xs);font-size:var(--fs-sm);color:var(--text);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.star-hit-matches{gap:var(--space-2xs);flex-wrap:wrap;margin:0;display:flex}.star-map-legend{align-items:center;gap:var(--space-md);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.star-map-legend-item{align-items:center;gap:var(--space-2xs);font-size:var(--fs-xs);color:var(--text);display:inline-flex}.star-map-legend-swatch{border-radius:50%;flex:0 0 10px;width:10px;height:10px}.state-origin .star-map-legend-swatch{background:var(--state-origin)}.state-cleared .star-map-legend-swatch{background:var(--state-cleared)}.state-accessible .star-map-legend-swatch{background:var(--state-accessible)}.state-locked .star-map-legend-swatch{background:var(--state-locked)}.star-map-search{margin-bottom:var(--space-sm)}.star-map-container{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--space-bg);max-height:70vh;position:relative;overflow:auto}.star-map-canvas-outer{position:relative}.star-map-canvas{transform-origin:0 0;position:relative}.star-map-backdrop{z-index:0;filter:blur(7px)saturate(.85);opacity:.3;pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:0}.star-map-backdrop:after{content:"";background:var(--scrim-soft);position:absolute;inset:0}.star-map-edges{z-index:1;pointer-events:none;position:absolute;top:0;left:0}.star-map-hint{margin-top:var(--space-sm);color:var(--text-dim);font-size:var(--fs-sm)}.star-map-nav{margin-top:var(--space-md)}.star-node-wrap{z-index:2;align-items:center;gap:var(--space-2xs);cursor:pointer;background:0 0;border:none;flex-direction:column;width:116px;padding:0;display:flex;position:absolute;transform:translate(-50%,-50%)}.star-node-wrap .tw-node{width:48px;height:48px;font-size:var(--fs-sm);transition:transform .12s;position:relative;overflow:hidden}.star-node-visual{opacity:.42;pointer-events:none;background-position:top;background-size:cover;border-radius:50%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#fff 38%,#0000 76%);mask-image:radial-gradient(circle,#fff 38%,#0000 76%)}.tw-node--locked .star-node-visual{opacity:.18;filter:grayscale(.8)}.star-node-wrap:hover .tw-node{transform:scale(1.08)}.star-node-wrap:focus-visible{outline:none}.star-node-wrap:focus-visible .tw-node{box-shadow:var(--focus-ring)}.star-node-label{font:500 var(--fs-xs)/1.2 var(--font-sans-jp);color:var(--text-strong);text-align:center;text-shadow:var(--text-shadow-strong);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-width:116px;display:-webkit-box;overflow:hidden}.star-node-wrap.tw-node-matched .star-node-label{color:var(--primary-2)}.star-node-wrap.tw-node-dimmed{opacity:.35}.star-node-wrap.tw-node-twinkle .tw-node{animation:3.2s ease-in-out infinite tw-twinkle}@media (prefers-reduced-motion:reduce){.star-node-wrap.tw-node-twinkle .tw-node{animation:none}}.star-visual-image{margin-bottom:var(--space-lg);border-radius:var(--radius-md);border:1px solid var(--primary-soft-border);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.star-visual-image img{object-fit:cover;width:100%;max-height:320px;display:block}.constellation-visual-image{margin-bottom:var(--space-md);border-radius:var(--radius-md);overflow:hidden}.constellation-visual-image img{object-fit:cover;width:100%;max-height:200px;display:block}.intervention-status{gap:var(--space-md);flex-direction:column;display:flex}.intervention-gauge-label{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.intervention-status-meta{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.intervention-meta-chip{align-items:center;gap:var(--space-2xs);font-size:var(--fs-sm);color:var(--text-strong);display:inline-flex}.intervention-meta-key{font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.intervention-status-mode{font-size:var(--fs-sm);color:var(--text-strong)}.intervention-status-label{font-size:var(--fs-sm);color:var(--text-dim)}.intervention-status-label--progress{color:var(--state-progress)}.intervention-status-label--cleared{color:var(--state-cleared)}.intervention-status-label--low{color:var(--state-low)}.intervention-status-end{margin-left:auto}.intervention-header-end{margin-top:var(--space-sm);justify-content:flex-end;display:flex}.intervention-mode-list{gap:var(--space-xs);margin-bottom:var(--space-md);flex-direction:column;display:flex}.intervention-mode-option{gap:var(--space-2xs);padding:var(--space-sm);border:1px solid var(--line-2);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;display:flex}.intervention-mode-option.tw-option-selected{border-color:var(--accent);background:var(--accent-soft-bg)}.intervention-mode-option input[type=radio]{display:none}.intervention-mode-label{color:var(--text-strong);font-weight:600}.intervention-mode-desc{font-size:var(--fs-sm);color:var(--text-dim)}.intervention-character-select,.intervention-context{margin-bottom:var(--space-md)}.intervention-context summary{cursor:pointer;font-size:var(--fs-sm);color:var(--text);padding:var(--space-xs) 0}.intervention-context-body{margin-top:var(--space-sm)}.box-section+.box-section{margin-top:var(--space-md)}.box-section .tw-h2{margin-bottom:var(--space-2xs)}.turn-group{gap:var(--space-sm);flex-direction:column;display:flex}.turn-response{gap:var(--space-sm);flex-direction:column;align-items:flex-start;display:flex}img.tw-msg__avatar{object-fit:cover}.tw-msg__who.is-button{cursor:pointer;background:0 0;border:none;padding:0}.turn-scene-image{margin-top:var(--space-sm);max-width:480px}.turn-scene-gallery{margin-top:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.turn-controls{margin-top:var(--space-lg)}.intervention-terminal{gap:var(--space-sm);flex-direction:column;display:flex}.intervention-terminal-message{color:var(--text-strong);margin:0}.intervention-terminal-actions{margin-top:0}.refill-panel{margin-top:var(--space-lg);gap:var(--space-sm);flex-direction:column;display:flex}.refill-panel-lead{font-size:var(--fs-sm)}.refill-panel-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.turn-input{gap:var(--space-sm);flex-direction:column;display:flex}.turn-composer{padding:var(--space-sm);border:1px solid var(--line-2);border-radius:var(--radius-md);background:var(--void-2);transition:border-color .2s,box-shadow .2s}.turn-composer:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.turn-composer.is-pending{opacity:.75}.turn-input-textarea{resize:vertical;width:100%;min-height:3rem;font:400 var(--fs-sm)/1.7 var(--font-sans-jp);color:var(--text-strong);background:0 0;border:none;outline:none;padding:0}.turn-input-textarea::placeholder{color:var(--text-dim)}.turn-toolbar{justify-content:space-between;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);display:flex}.turn-toolbar-tools{align-items:center;gap:var(--space-2xs);display:flex}.turn-tool-icon{align-items:center;display:inline-flex}.turn-end-controls{margin-top:var(--space-sm)}.turn-input-error{margin-top:var(--space-2xs);color:var(--state-low);font-size:var(--fs-sm)}.streaming-preview{margin-bottom:var(--space-sm);padding:2px 0 2px var(--space-md);border-left:2px solid var(--primary-line);font:400 var(--fs-body)/var(--lh-narrative) var(--font-narrative);color:var(--text-narrative)}.streaming-preview:after{content:"▍";color:var(--accent);margin-left:.1rem;animation:1s steps(2,start) infinite streaming-caret}@keyframes streaming-caret{to{opacity:0}}.scene-image-frame{cursor:zoom-in;background:0 0;border:none;width:100%;padding:0;display:block}.scene-image-caption{margin-top:var(--space-2xs);text-align:center;font-size:var(--fs-xs);color:var(--text-dim)}.scene-image-generate{margin-top:var(--space-sm);gap:var(--space-xs);flex-direction:column;align-items:flex-end;display:flex}.scene-image-pending{cursor:progress;justify-content:center;align-items:center;min-height:180px;animation:1.6s ease-in-out infinite scene-image-pulse;display:flex}.scene-image-pending-label{color:var(--text-dim);font-size:var(--fs-sm)}.scene-image-summon{width:26px;height:26px;color:var(--text-dim);cursor:pointer;opacity:.55;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:color .2s,opacity .2s,background .2s;display:inline-flex}.scene-image-summon:hover:not(:disabled){color:var(--accent);opacity:1;background:var(--accent-soft-bg,#9da4f21a)}.scene-image-summon:focus-visible{color:var(--accent);opacity:1;box-shadow:var(--focus-ring);outline:none}.scene-image-summon:disabled{cursor:progress;opacity:.9}.scene-image-summon.is-pending{color:var(--accent);animation:1.4s ease-in-out infinite scene-image-pulse}.scene-image-summon-error{color:var(--danger,#d97b7b);font-size:var(--fs-xs);text-align:right;margin:0}.scene-image-summon-pending{height:2px;margin-top:var(--space-2xs);background:linear-gradient(90deg, transparent, var(--accent-soft-border,#9da4f259), transparent);border-radius:var(--radius-pill);opacity:.65;background-size:200% 100%;align-self:stretch;animation:1.8s linear infinite scene-image-summon-shimmer}@keyframes scene-image-summon-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.turn-tool-icon-btn{border:1px solid var(--line-2);border-radius:var(--radius-md);width:34px;height:34px;color:var(--text-dim);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.turn-tool-icon-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent);background:var(--accent-soft-bg,#9da4f214)}.turn-tool-icon-btn:focus-visible{color:var(--accent);box-shadow:var(--focus-ring);outline:none}.turn-tool-icon-btn:disabled{cursor:progress;opacity:.6}.turn-tool-icon-btn.is-pending{animation:1.4s ease-in-out infinite scene-image-pulse}@keyframes scene-image-pulse{0%,to{opacity:.55}50%{opacity:1}}.scene-lightbox{z-index:50;padding:var(--space-lg);cursor:zoom-out;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.scene-lightbox-content{align-items:center;gap:var(--space-sm);flex-direction:column;display:flex}.scene-lightbox-content img{border-radius:var(--radius-md);max-width:100%;max-height:80vh;box-shadow:var(--shadow-float);display:block}.scene-lightbox-caption{color:var(--text);font-size:var(--fs-xs)}.character-list{gap:var(--space-sm);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.character-card{--char-h:235;align-items:center;gap:var(--space-2xs);width:72px;padding:var(--space-sm) var(--space-xs) var(--space-xs);border:1px solid var(--line-2);border-radius:var(--radius-md);cursor:pointer;text-align:center;background:0 0;flex-direction:column;transition:border-color .15s,transform .15s;display:flex}.character-card:hover{border-color:hsl(var(--char-h,235) 60% 65%);transform:translateY(-2px)}.character-icon-img,.character-icon-placeholder{object-fit:cover;border:2px solid hsl(var(--char-h,235) 60% 65%);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.character-icon-placeholder{font:600 1.1rem/1 var(--font-ui);color:var(--text-strong);background:hsla(var(--char-h,235), 50%, 50%, .3)}.character-card-name{font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;max-width:64px;color:var(--text);overflow:hidden}.speaker-tag{align-items:center;gap:var(--space-2xs);cursor:default;background:0 0;border:none;padding:0;display:inline-flex}.speaker-tag--clickable{cursor:pointer}.speaker-icon,.speaker-icon--placeholder{object-fit:cover;border:1px solid hsla(var(--char-h,235), 60%, 65%, .5);width:22px;height:22px;font:500 var(--fs-2xs)/1 var(--font-ui);color:hsl(var(--char-h,235) 77% 78%);background:hsla(var(--char-h,235), 60%, 65%, .25);border-radius:50%;flex:0 0 22px;justify-content:center;align-items:center;display:inline-flex}.speaker-name{font:500 var(--fs-xs)/1 var(--font-sans-jp);color:hsl(var(--char-h,235) 77% 78%)}.tw-modal{z-index:50;padding:var(--space-lg);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.tw-modal-backdrop{background:#000000b3;position:absolute;inset:0}.tw-modal-card{background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius-lg);width:100%;max-width:32rem;max-height:86vh;box-shadow:var(--shadow-float);overflow:auto}.tw-modal-card--wide{max-width:48rem}.tw-modal-head{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--line);display:flex}.tw-modal-head .tw-h2{margin:0}.tw-modal-body{padding:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex}.tw-modal-foot{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-top:1px solid var(--line);justify-content:space-between;display:flex}.tw-modal-close{width:28px;height:28px;color:var(--text-dim);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.tw-modal-close:hover{color:var(--text)}.character-modal-visual{border-radius:var(--radius-md);border:1px solid hsla(var(--char-h,235), 60%, 65%, .5);margin:0;overflow:hidden}.character-modal-visual img{object-fit:cover;width:100%;max-height:360px;display:block}.character-modal-icon-large{justify-content:center;margin:0;display:flex}.character-modal-icon-large img{object-fit:cover;border:3px solid hsl(var(--char-h,235) 60% 65%);border-radius:50%;width:120px;height:120px}.character-icon-wrap{width:44px;height:44px;display:block}.character-modal-persona{white-space:pre-wrap;font-size:var(--fs-sm);color:var(--text)}.character-modal-counter{text-align:center;font-size:var(--fs-sm);color:var(--text-dim);flex:1}.suggest-list{gap:var(--space-sm);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.suggest-item{text-align:left;white-space:normal;justify-content:flex-start;width:100%;height:auto}.wallet-stats{gap:var(--space-md);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.wallet-stat{min-width:9rem;padding:var(--space-md);border-radius:var(--radius-md);background:var(--primary-soft-bg);border:1px solid var(--primary-soft-border);flex:1}.wallet-stat-label{font-size:var(--fs-xs);color:var(--text-dim)}.wallet-stat-value{font:600 var(--fs-h1)/1 var(--font-ui);color:var(--text-strong)}.pack-list{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.pack-card{justify-content:space-between;align-items:center;gap:var(--space-md);transition:transform .15s,border-color .15s;display:flex}.pack-card:hover{border-color:var(--primary-soft-border);transform:translateY(-2px)}.pack-card-info{gap:var(--space-2xs);flex-direction:column;display:flex}.item-list{gap:var(--space-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.skill-item-header{justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.echo-favorite-item{justify-content:space-between;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.echo-favorite-main{flex:16rem}.echo-favorite-star{color:var(--text-strong);font-weight:600}.echo-meta{align-items:center;gap:var(--space-sm);color:var(--text-dim);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.intervention-list{gap:var(--space-2xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.intervention-list-item{align-items:flex-start;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);border:1px solid #0000;transition:background .15s,border-color .15s;display:flex}.intervention-list-item:hover{background:var(--panel-2);border-color:var(--line)}.intervention-thumbnail{border-radius:var(--radius-sm);flex-shrink:0;width:56px;height:56px;overflow:hidden}.intervention-thumbnail img{object-fit:cover;width:100%;height:100%}.intervention-list-main{align-items:center;gap:var(--space-2xs);flex-wrap:wrap;flex:1;min-width:0;display:flex}.intervention-filter{align-items:flex-end;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);flex-wrap:wrap;display:flex}.intervention-filter .tw-field{align-items:stretch;gap:var(--space-2xs);background:0 0;border:none;flex-direction:column;padding:0}.intervention-filter .tw-field .tw-input,.intervention-filter .tw-field .tw-select{background:var(--void-2);border:1px solid var(--line-2);border-radius:var(--radius-md)}.intervention-filter .tw-field .tw-input{padding:var(--space-sm) var(--space-md)}.intervention-manage{gap:var(--space-sm);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.intervention-manage-row{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.intervention-label-input{width:10rem}.intervention-share-row{align-items:center;gap:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid var(--line-2);flex-wrap:wrap;display:flex}.intervention-share-url{font-size:var(--fs-xs);color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:20rem;overflow:hidden}.tw-tag .tw-modal-close{margin-left:var(--space-2xs);width:16px;height:16px}.help-item{margin-bottom:var(--space-md)}.help-item summary{cursor:pointer;font-size:var(--fs-sm);color:var(--text);padding:var(--space-xs) 0}.help-item-body{margin-top:var(--space-sm);padding:var(--space-md);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel)}.help-toc{margin:0 0 var(--space-md);padding-left:var(--space-lg);gap:var(--space-2xs);font-size:var(--fs-sm);color:var(--text);flex-direction:column;display:flex}.help-row{align-items:flex-start;gap:var(--space-sm);display:flex}.help-row__label{flex:0 0 6rem}.help-row__body{min-width:0;font-size:var(--fs-sm);color:var(--text);flex:1}.rename-form{align-items:center;gap:var(--space-2xs);flex-wrap:wrap;display:inline-flex}.rename-button{opacity:.6;padding:var(--space-2xs) var(--space-xs)}.rename-button:hover{opacity:1}.rename-input{width:12rem}.favorite-echo-control{align-items:center;gap:var(--space-2xs);flex-wrap:wrap;display:flex}.button-error,.login-required-action{margin-top:var(--space-sm);color:var(--state-low);font-size:var(--fs-sm)}.settings-lead{margin-bottom:var(--space-sm);color:var(--text-dim);font-size:var(--fs-sm)}.settings-options{gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.settings-option-notes{margin:0 0 var(--space-sm);padding-left:var(--space-lg);gap:var(--space-2xs);font-size:var(--fs-sm);color:var(--text-dim);flex-direction:column;display:flex}.settings-saved-note{margin-top:var(--space-sm);color:var(--text-dim);font-size:var(--fs-sm)}.tw-select{background:var(--void-2);border:1px solid var(--line-2);border-radius:var(--radius-md);display:block;position:relative}.tw-select select{width:100%;padding:var(--space-sm) var(--space-md);font:400 var(--fs-sm)/1.4 var(--font-sans-jp);color:var(--text-strong);appearance:none;background:0 0;border:none;outline:none}.tw-select:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.tw-textarea{resize:vertical;background:var(--void-2);border:1px solid var(--line-2);border-radius:var(--radius-md);width:100%;min-height:3rem;padding:var(--space-sm) var(--space-md);font:400 var(--fs-sm)/1.6 var(--font-sans-jp);color:var(--text-strong)}.tw-textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.tw-textarea::placeholder{color:var(--text-dim)}.tw-field-label{margin-bottom:var(--space-2xs);display:block}.tw-btn--loading{pointer-events:none;position:relative;color:#0000!important}.tw-btn--loading:after{content:"";width:1em;height:1em;color:var(--primary-ink);border:2px solid;border-top-color:#0000;border-radius:50%;animation:.6s linear infinite tw-spin;position:absolute}.tw-btn--ghost.tw-btn--loading:after,.tw-btn--accent.tw-btn--loading:after{color:var(--text-strong)}@keyframes tw-spin{to{transform:rotate(360deg)}}.tw-btn:disabled,.tw-btn[disabled]{opacity:.55;cursor:not-allowed}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tw-flex-grow{flex:1}.text-dim{color:var(--text-dim)}.text-strong{color:var(--text-strong)}.text-center{text-align:center}.meta-text{font-size:var(--fs-sm);color:var(--text-dim)}.effect-list{margin:0;padding:0;list-style:none}.meta-text-xs{font-size:var(--fs-xs);color:var(--text-dim)}.notice{padding:var(--space-md);border:1px solid var(--line-2);border-radius:var(--radius-md);background:var(--panel);color:var(--text)}.notice--accent{border-color:var(--accent-soft-border);background:var(--accent-soft-bg)}.notice--low{color:var(--text-strong);background:#e98c8c1a;border-color:#e98c8c66}
