:root{color-scheme:dark;--c-bg: #0d0d10;--c-bg-raised: #131317;--c-surface-1: #17171c;--c-surface-2: #1d1d23;--c-surface-3: #25252c;--c-surface-hover: #2b2b33;--c-overlay: rgba(6, 6, 8, .72);--c-scrim: rgba(0, 0, 0, .55);--c-line: rgba(255, 255, 255, .07);--c-line-strong: rgba(255, 255, 255, .13);--c-line-focus: rgba(255, 255, 255, .28);--c-text: #f3f1ee;--c-text-2: #b3afa8;--c-text-3: #7d7a75;--c-text-inverse: #141210;--c-accent: #f0b46c;--c-accent-strong: #f6c587;--c-accent-press: #dc9f57;--c-accent-soft: rgba(240, 180, 108, .12);--c-accent-line: rgba(240, 180, 108, .36);--c-on-accent: #1d1409;--c-success: #6fd3a0;--c-success-soft: rgba(111, 211, 160, .12);--c-warning: #f2c75c;--c-warning-soft: rgba(242, 199, 92, .12);--c-danger: #f27a7f;--c-danger-strong: #e2585e;--c-danger-soft: rgba(242, 122, 127, .12);--c-info: #82b8f5;--c-info-soft: rgba(130, 184, 245, .12);--c-patreon: #ff5c4d;--font-sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Meiryo UI", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", Consolas, monospace;--fs-11: .6875rem;--fs-12: .75rem;--fs-13: .8125rem;--fs-14: .875rem;--fs-15: .9375rem;--fs-16: 1rem;--fs-18: 1.125rem;--fs-20: 1.25rem;--fs-24: 1.5rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.25;--lh-normal: 1.5;--lh-relaxed: 1.75;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--sp-16: 64px;--r-xs: 4px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 6px 18px -6px rgba(0, 0, 0, .55), 0 1px 2px rgba(0, 0, 0, .35);--shadow-3: 0 18px 48px -12px rgba(0, 0, 0, .7), 0 2px 6px rgba(0, 0, 0, .35);--ring: 0 0 0 2px var(--c-bg), 0 0 0 4px var(--c-accent);--control-h: 40px;--control-h-sm: 32px;--control-h-lg: 48px;--touch-min: 44px;--dur-instant: 80ms;--dur-fast: .14s;--dur-base: .22s;--dur-slow: .32s;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.3, 1.35, .5, 1);--z-view: 1;--z-nav: 20;--z-dock: 30;--z-popover: 60;--z-toast: 80;--z-loader: 90;--z-tooltip: 100;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--rail-w: 232px;--bottom-nav-h: 60px;--view-max: 1120px}[data-density=compact]{--control-h: 34px;--control-h-sm: 28px}@media(prefers-reduced-motion:reduce){:root{--dur-instant: 1ms;--dur-fast: 1ms;--dur-base: 1ms;--dur-slow: 1ms}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--c-bg)}body{min-height:100%;height:100%;overflow:hidden;font-family:var(--font-sans);font-size:var(--fs-14);line-height:var(--lh-normal);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}img{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}button{background:none;border:0;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}a{color:var(--c-accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{font-weight:var(--fw-semibold);line-height:var(--lh-tight);letter-spacing:.01em}dialog{color:inherit}[hidden],.hidden{display:none!important}.icon,.material-symbols-outlined{font-family:Material Symbols Outlined;font-weight:400;font-style:normal;font-size:20px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;flex-shrink:0;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 20;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}.icon-fill{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 20}:focus{outline:none}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:var(--r-sm)}*{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#ffffff24;border:2px solid transparent;border-radius:8px;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}::selection{background:var(--c-accent-soft);color:var(--c-text)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-2{color:var(--c-text-2)}.text-3{color:var(--c-text-3)}.mono{font-family:var(--font-mono);font-size:.95em;letter-spacing:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.eyebrow{font-size:var(--fs-11);font-weight:var(--fw-semibold);letter-spacing:.12em;text-transform:uppercase;color:var(--c-text-3)}@keyframes enter-rise{0%{opacity:0;transform:translate3d(0,8px,0)}}@keyframes enter-fade{0%{opacity:0}}@keyframes exit-fade{to{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}.spinner,.spinner:after{animation-duration:1.6s!important;animation-iteration-count:infinite!important}}.btn{--btn-bg: var(--c-surface-3);--btn-bg-hover: var(--c-surface-hover);--btn-fg: var(--c-text);--btn-line: transparent;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--control-h);padding:0 var(--sp-4);font-size:var(--fs-14);font-weight:var(--fw-semibold);line-height:1;white-space:nowrap;color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-line);border-radius:var(--r-md);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out),opacity var(--dur-fast) var(--ease-out);-webkit-user-select:none;user-select:none}.btn .icon{font-size:18px}@media(hover:hover){.btn:hover:not(:disabled){background:var(--btn-bg-hover)}}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.42}.btn--primary{--btn-bg: var(--c-accent);--btn-bg-hover: var(--c-accent-strong);--btn-fg: var(--c-on-accent)}.btn--primary:active:not(:disabled){--btn-bg: var(--c-accent-press)}.btn--ghost{--btn-bg: transparent;--btn-bg-hover: var(--c-surface-2);--btn-fg: var(--c-text-2)}.btn--outline{--btn-bg: transparent;--btn-bg-hover: var(--c-surface-2);--btn-line: var(--c-line-strong)}.btn--danger{--btn-bg: var(--c-danger-soft);--btn-bg-hover: rgba(242, 122, 127, .2);--btn-fg: var(--c-danger)}.btn--danger-solid{--btn-bg: var(--c-danger-strong);--btn-bg-hover: var(--c-danger);--btn-fg: #fff}.btn--patreon{--btn-bg: var(--c-patreon);--btn-bg-hover: #ff7366;--btn-fg: #fff}.btn--sm{min-height:var(--control-h-sm);padding:0 var(--sp-3);font-size:var(--fs-13);border-radius:var(--r-sm)}.btn--lg{min-height:var(--control-h-lg);padding:0 var(--sp-5);font-size:var(--fs-15)}.btn--block{width:100%}.btn[aria-busy=true]{color:transparent;pointer-events:none}.btn[aria-busy=true]:after{content:"";position:absolute;inset:0;margin:auto;width:16px;height:16px;border:2px solid var(--btn-fg);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.btn[aria-busy=true]>*{visibility:hidden}.icon-btn{position:relative;display:inline-grid;place-items:center;width:var(--control-h);height:var(--control-h);color:var(--c-text-2);border-radius:var(--r-md);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.icon-btn:before{content:"";position:absolute;inset:50% auto auto 50%;width:max(100%,var(--touch-min));height:max(100%,var(--touch-min));transform:translate(-50%,-50%)}@media(hover:hover){.icon-btn:hover:not(:disabled){color:var(--c-text);background:var(--c-surface-2)}}.icon-btn:active:not(:disabled){transform:scale(.92)}.icon-btn[aria-pressed=true]{color:var(--c-accent);background:var(--c-accent-soft)}.icon-btn:disabled{opacity:.38}.icon-btn--sm{width:var(--control-h-sm);height:var(--control-h-sm);border-radius:var(--r-sm)}.icon-btn--sm .icon{font-size:18px}.field{display:grid;gap:6px;min-width:0}.field-label{font-size:var(--fs-13);font-weight:var(--fw-medium);color:var(--c-text-2)}.field-hint{font-size:var(--fs-12);color:var(--c-text-3)}.field-error{display:flex;align-items:center;gap:6px;min-height:0;font-size:var(--fs-12);color:var(--c-danger)}.field-error:empty{display:none}.field-error:before{content:"error";font-family:Material Symbols Outlined;font-size:16px}.input,.select,.textarea{width:100%;min-height:var(--control-h);padding:0 var(--sp-3);font-size:var(--fs-15);color:var(--c-text);background:var(--c-surface-1);border:1px solid var(--c-line-strong);border-radius:var(--r-md);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}@media(pointer:coarse){.input,.select,.textarea{font-size:var(--fs-16)}}.textarea{padding:var(--sp-3);min-height:112px;line-height:var(--lh-normal);resize:vertical}.input::placeholder,.textarea::placeholder{color:var(--c-text-3)}@media(hover:hover){.input:hover:not(:disabled):not(:focus),.select:hover:not(:disabled):not(:focus),.textarea:hover:not(:disabled):not(:focus){border-color:var(--c-line-focus)}}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--c-danger);box-shadow:0 0 0 3px var(--c-danger-soft)}.input:disabled,.select:disabled,.textarea:disabled{opacity:.5}.input:read-only{color:var(--c-text-2);background:transparent;border-style:dashed;box-shadow:none}.select{appearance:none;padding-right:36px;background-image:linear-gradient(45deg,transparent 50%,var(--c-text-2) 50%),linear-gradient(135deg,var(--c-text-2) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer}.select option{background:var(--c-surface-2);color:var(--c-text)}.input-group{display:flex;gap:var(--sp-2)}.input-group>.input{flex:1}.input--search{padding-left:36px;background-image:none}.search{position:relative;display:flex;align-items:center;min-width:0}.search>.icon{position:absolute;left:10px;color:var(--c-text-3);pointer-events:none}.check{display:inline-flex;align-items:flex-start;gap:var(--sp-3);cursor:pointer;font-size:var(--fs-13);color:var(--c-text-2);line-height:var(--lh-normal)}.check input,.checkbox{appearance:none;flex-shrink:0;width:20px;height:20px;margin-top:1px;display:grid;place-items:center;background:var(--c-surface-1);border:1.5px solid var(--c-line-focus);border-radius:var(--r-xs);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.check input:after,.checkbox:after{content:"";width:10px;height:6px;border:2px solid var(--c-on-accent);border-top:0;border-right:0;transform:translateY(-1px) rotate(-45deg) scale(0);transition:transform var(--dur-fast) var(--ease-spring)}.check input:checked,.checkbox:checked{background:var(--c-accent);border-color:var(--c-accent)}.check input:checked:after,.checkbox:checked:after{transform:translateY(-1px) rotate(-45deg) scale(1)}.checkbox:indeterminate{background:var(--c-accent);border-color:var(--c-accent)}.checkbox:indeterminate:after{width:10px;height:0;border-left:0;transform:none}.check input[aria-invalid=true]{border-color:var(--c-danger)}.radio{appearance:none;width:20px;height:20px;border:1.5px solid var(--c-line-focus);border-radius:50%;display:grid;place-items:center}.radio:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--c-accent);transform:scale(0);transition:transform var(--dur-fast) var(--ease-spring)}.radio:checked{border-color:var(--c-accent)}.radio:checked:after{transform:scale(1)}.switch{appearance:none;position:relative;flex-shrink:0;width:44px;height:26px;background:var(--c-surface-3);border:1px solid var(--c-line-strong);border-radius:var(--r-pill);cursor:pointer;transition:background-color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:var(--c-text-2);border-radius:50%;box-shadow:var(--shadow-1);transition:transform var(--dur-base) var(--ease-spring),background-color var(--dur-base) var(--ease-out)}.switch:checked{background:var(--c-accent);border-color:var(--c-accent)}.switch:checked:after{transform:translate(18px);background:var(--c-on-accent)}.switch:active:after{width:24px}.switch:checked:active:after{transform:translate(14px)}.switch:disabled{opacity:.4;cursor:default}.range{--fill: 50%;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer;touch-action:pan-y}.range::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--c-accent) 0 var(--fill),var(--c-surface-3) var(--fill) 100%)}.range::-moz-range-track{height:4px;border-radius:4px;background:var(--c-surface-3)}.range::-moz-range-progress{height:4px;border-radius:4px;background:var(--c-accent)}.range::-webkit-slider-thumb{appearance:none;width:18px;height:18px;margin-top:-7px;border-radius:50%;background:var(--c-text);box-shadow:0 0 0 4px #00000040,var(--shadow-1);transition:transform var(--dur-fast) var(--ease-spring)}.range::-moz-range-thumb{width:18px;height:18px;border:0;border-radius:50%;background:var(--c-text);transition:transform var(--dur-fast) var(--ease-spring)}.range:active::-webkit-slider-thumb{transform:scale(1.2)}.range:active::-moz-range-thumb{transform:scale(1.2)}.range:focus-visible{outline:none}.range:focus-visible::-webkit-slider-thumb{box-shadow:var(--ring)}.segmented{display:inline-flex;position:relative;padding:3px;gap:2px;background:var(--c-surface-1);border:1px solid var(--c-line);border-radius:var(--r-md)}.segmented--block{display:flex}.segmented>button{position:relative;z-index:1;flex:1;min-height:calc(var(--control-h) - 8px);padding:0 var(--sp-4);display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-13);font-weight:var(--fw-semibold);color:var(--c-text-3);border-radius:calc(var(--r-md) - 3px);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out)}@media(hover:hover){.segmented>button:hover:not([aria-selected=true]){color:var(--c-text-2)}}.segmented>button[aria-selected=true]{color:var(--c-text);background:var(--c-surface-3);box-shadow:var(--shadow-1)}.segmented>button .icon{font-size:18px}.tabs{display:flex;gap:var(--sp-1);overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--c-line)}.tabs::-webkit-scrollbar{display:none}@media(max-width:639px){.tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);scroll-padding-inline:28px}}.tabs>button{position:relative;flex-shrink:0;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 var(--sp-3);font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--c-text-3);transition:color var(--dur-fast) var(--ease-out)}.tabs>button:after{content:"";position:absolute;left:var(--sp-3);right:var(--sp-3);bottom:-1px;height:2px;border-radius:2px;background:var(--c-accent);transform:scaleX(0);transition:transform var(--dur-base) var(--ease-out)}@media(hover:hover){.tabs>button:hover{color:var(--c-text-2)}}.tabs>button[aria-selected=true]{color:var(--c-text)}.tabs>button[aria-selected=true]:after{transform:scaleX(1)}.tabs>button .icon{font-size:18px}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:var(--fs-11);font-weight:var(--fw-semibold);letter-spacing:.02em;white-space:nowrap;color:var(--c-text-2);background:var(--c-surface-3);border-radius:var(--r-pill)}.badge .icon{font-size:14px}.badge--accent{color:var(--c-accent);background:var(--c-accent-soft)}.badge--success{color:var(--c-success);background:var(--c-success-soft)}.badge--warning{color:var(--c-warning);background:var(--c-warning-soft)}.badge--danger{color:var(--c-danger);background:var(--c-danger-soft)}.badge--info{color:var(--c-info);background:var(--c-info-soft)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--c-text-3);flex-shrink:0}.status-dot--success{background:var(--c-success);box-shadow:0 0 0 3px var(--c-success-soft)}.status-dot--warning{background:var(--c-warning)}.status-dot--danger{background:var(--c-danger)}.alert{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-13);line-height:var(--lh-normal);color:var(--c-text-2);background:var(--c-surface-2);border-radius:var(--r-md);animation:enter-rise var(--dur-base) var(--ease-out)}.alert>.icon{font-size:18px;margin-top:1px}.alert--error{color:var(--c-danger);background:var(--c-danger-soft)}.alert--info{color:var(--c-info);background:var(--c-info-soft)}.alert--success{color:var(--c-success);background:var(--c-success-soft)}.alert--warning{color:var(--c-warning);background:var(--c-warning-soft)}.list{display:flex;flex-direction:column;list-style:none}.list-row{display:flex;align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-3) 0;border-bottom:1px solid var(--c-line)}.list-row:last-child{border-bottom:0}.list-row-main{flex:1;min-width:0;display:grid;gap:2px}.list-row-title{font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--c-text)}.list-row-meta{font-size:var(--fs-12);color:var(--c-text-3)}.list-row-lead{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-md);background:var(--c-surface-2);color:var(--c-text-2);flex-shrink:0}.table-wrap{overflow-x:auto;border:1px solid var(--c-line);border-radius:var(--r-lg);background:var(--c-bg-raised)}.table{width:100%;border-collapse:collapse;font-size:var(--fs-13)}.table th{position:sticky;top:0;z-index:1;height:38px;padding:0 var(--sp-3);font-size:var(--fs-12);font-weight:var(--fw-medium);text-align:left;white-space:nowrap;color:var(--c-text-3);background:var(--c-bg-raised);border-bottom:1px solid var(--c-line)}.table td{height:48px;padding:var(--sp-2) var(--sp-3);vertical-align:middle;border-bottom:1px solid var(--c-line)}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background-color var(--dur-fast) var(--ease-out)}.table tbody tr[data-interactive]{cursor:pointer}@media(hover:hover){.table tbody tr[data-interactive]:hover{background:var(--c-surface-1)}}.table tbody tr[aria-selected=true]{background:var(--c-accent-soft)}.table .col-check{width:44px;padding-right:0}.table .col-actions{width:1%;text-align:right;white-space:nowrap}.table .num{text-align:right;font-variant-numeric:tabular-nums}.th-sort{display:inline-flex;align-items:center;gap:2px;height:100%;color:inherit;font-weight:inherit}.th-sort .icon{font-size:16px;opacity:0;transition:opacity var(--dur-fast),transform var(--dur-base) var(--ease-out)}.th-sort[data-dir]{color:var(--c-text)}.th-sort[data-dir] .icon{opacity:1}.th-sort[data-dir=desc] .icon{transform:rotate(180deg)}@media(hover:hover){.th-sort:hover .icon{opacity:.6}}.pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding-top:var(--sp-3);font-size:var(--fs-12);color:var(--c-text-3);font-variant-numeric:tabular-nums}.pagination-controls{display:flex;align-items:center;gap:var(--sp-1)}.state{display:grid;justify-items:center;gap:var(--sp-3);padding:var(--sp-10) var(--sp-6);text-align:center;color:var(--c-text-2);animation:enter-fade var(--dur-slow) var(--ease-out)}.state>.icon{display:grid;place-items:center;width:48px;height:48px;font-size:24px;color:var(--c-text-3);background:var(--c-surface-2);border-radius:50%}.state--error>.icon{color:var(--c-danger);background:var(--c-danger-soft)}.state-title{font-size:var(--fs-15);font-weight:var(--fw-semibold);color:var(--c-text)}.state-text{max-width:36ch;font-size:var(--fs-13);color:var(--c-text-3)}.state--compact{padding:var(--sp-6) var(--sp-4)}.skeleton{position:relative;overflow:hidden;background:var(--c-surface-2);border-radius:var(--r-sm)}.skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);animation:shimmer 1.4s var(--ease-in-out) infinite}.skeleton-line{height:12px;border-radius:var(--r-xs)}.spinner{width:20px;height:20px;border:2px solid var(--c-line-strong);border-top-color:var(--c-accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}.spinner--lg{width:32px;height:32px;border-width:3px}.progress{position:relative;height:4px;overflow:hidden;background:var(--c-surface-3);border-radius:4px}.progress-fill{position:absolute;inset:0;background:var(--c-accent);border-radius:inherit;transform-origin:left center;transform:scaleX(var(--value, 0));transition:transform var(--dur-slow) var(--ease-out)}.kbd{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;font-family:var(--font-mono);font-size:var(--fs-11);color:var(--c-text-2);background:var(--c-surface-2);border:1px solid var(--c-line-strong);border-bottom-width:2px;border-radius:var(--r-xs)}.tooltip{position:fixed;z-index:var(--z-tooltip);max-width:240px;padding:6px 10px;font-size:var(--fs-12);font-weight:var(--fw-medium);line-height:1.35;color:var(--c-text);background:#2c2c34;border:1px solid var(--c-line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow-2);pointer-events:none;opacity:0;transform:translateY(2px);transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.tooltip[data-open]{opacity:1;transform:none}.tooltip .kbd{margin-left:6px;height:18px;min-width:18px}.menu{position:fixed;z-index:var(--z-popover);min-width:200px;max-width:min(320px,calc(100vw - 16px));padding:6px;background:var(--c-surface-2);border:1px solid var(--c-line-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-3);transform-origin:var(--origin, top right);animation:menu-in var(--dur-base) var(--ease-out)}.menu[data-closing]{animation:menu-out var(--dur-fast) var(--ease-in) forwards}@keyframes menu-in{0%{opacity:0;transform:scale(.96) translateY(-4px)}}@keyframes menu-out{to{opacity:0;transform:scale(.98)}}.menu-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:40px;padding:0 var(--sp-3);font-size:var(--fs-14);text-align:left;color:var(--c-text);border-radius:var(--r-sm)}.menu-item .icon{color:var(--c-text-2)}.menu-item:focus-visible,.menu-item[data-active]{outline:none;background:var(--c-surface-hover)}@media(hover:hover){.menu-item:hover{background:var(--c-surface-hover)}}.menu-item--danger,.menu-item--danger .icon{color:var(--c-danger)}.menu-item:disabled{opacity:.4}.menu-item-hint{margin-left:auto}.menu-sep{height:1px;margin:6px 4px;background:var(--c-line)}.menu[data-sheet]{left:8px!important;right:8px;top:auto!important;bottom:calc(8px + var(--safe-bottom));max-width:none;padding:8px;border-radius:var(--r-xl);transform-origin:bottom center;animation:sheet-menu-in var(--dur-slow) var(--ease-out)}.menu[data-sheet] .menu-item{min-height:52px;font-size:var(--fs-15)}.menu[data-sheet][data-closing]{animation:sheet-menu-out var(--dur-base) var(--ease-in) forwards}@keyframes sheet-menu-in{0%{transform:translateY(110%)}}@keyframes sheet-menu-out{to{transform:translateY(110%)}}.menu-backdrop{position:fixed;inset:0;z-index:calc(var(--z-popover) - 1);background:var(--c-scrim);animation:enter-fade var(--dur-base) var(--ease-out)}.menu-backdrop[data-closing]{animation:exit-fade var(--dur-fast) var(--ease-in) forwards}.dialog{margin:auto;width:min(420px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;overflow:hidden;color:var(--c-text);background:var(--c-surface-1);border:1px solid var(--c-line-strong);border-radius:var(--r-xl);box-shadow:var(--shadow-3)}.dialog[open]{display:flex;flex-direction:column;animation:dialog-in var(--dur-slow) var(--ease-spring)}.dialog::backdrop{background:var(--c-overlay);animation:enter-fade var(--dur-base) var(--ease-out)}.dialog[data-closing]{animation:dialog-out var(--dur-fast) var(--ease-in) forwards}.dialog[data-closing]::backdrop{animation:exit-fade var(--dur-fast) var(--ease-in) forwards}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px) scale(.97)}}@keyframes dialog-out{to{opacity:0;transform:scale(.97)}}.dialog-body{display:grid;gap:var(--sp-3);padding:var(--sp-6) var(--sp-6) var(--sp-5);overflow-y:auto}.dialog-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--c-accent);background:var(--c-accent-soft)}.dialog[data-tone=danger] .dialog-icon{color:var(--c-danger);background:var(--c-danger-soft)}.dialog-title{font-size:var(--fs-18);font-weight:var(--fw-semibold)}.dialog-text{font-size:var(--fs-14);line-height:var(--lh-relaxed);color:var(--c-text-2);white-space:pre-line}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-4) var(--sp-6) var(--sp-6)}@media(max-width:480px){.dialog-actions{flex-direction:column-reverse}.dialog-actions>.btn{width:100%;min-height:var(--control-h-lg)}}.sheet{position:fixed;inset:0 0 0 auto;width:min(440px,100vw);max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;overflow:hidden;color:var(--c-text);background:var(--c-bg-raised);border:0;border-left:1px solid var(--c-line);box-shadow:var(--shadow-3)}.sheet[open]{display:flex;flex-direction:column;animation:sheet-in-right var(--dur-slow) var(--ease-out)}.sheet::backdrop{background:var(--c-overlay);animation:enter-fade var(--dur-base) var(--ease-out)}.sheet[data-closing]{animation:sheet-out-right var(--dur-base) var(--ease-in) forwards}.sheet[data-closing]::backdrop{animation:exit-fade var(--dur-base) var(--ease-in) forwards}@keyframes sheet-in-right{0%{transform:translate(100%)}}@keyframes sheet-out-right{to{transform:translate(100%)}}.sheet--wide{width:min(880px,100vw)}.sheet-header{display:flex;align-items:center;gap:var(--sp-2);min-height:60px;padding:calc(var(--sp-2) + var(--safe-top)) var(--sp-3) var(--sp-2) var(--sp-5);border-bottom:1px solid var(--c-line);flex-shrink:0}.sheet-title{flex:1;min-width:0;font-size:var(--fs-16);font-weight:var(--fw-semibold)}.sheet-handle{display:none}.sheet-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-5);padding-bottom:calc(var(--sp-5) + var(--safe-bottom))}.sheet-footer{display:flex;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5) calc(var(--sp-3) + var(--safe-bottom));border-top:1px solid var(--c-line);flex-shrink:0}@media(max-width:640px){.sheet,.sheet--wide{inset:auto 0 0;width:100vw;height:auto;max-height:calc(100dvh - 24px - var(--safe-top));border-left:0;border-top:1px solid var(--c-line-strong);border-radius:var(--r-xl) var(--r-xl) 0 0}.sheet--tall{height:calc(100dvh - 24px - var(--safe-top))}.sheet[open]{animation-name:sheet-in-up}.sheet[data-closing]{animation-name:sheet-out-down}.sheet[data-dragging]{animation:none;transition:none}.sheet-handle{display:block;position:absolute;top:6px;left:50%;width:36px;height:4px;margin-left:-18px;border-radius:4px;background:var(--c-line-focus)}.sheet-header{padding-top:var(--sp-4)}}@keyframes sheet-in-up{0%{transform:translateY(100%)}}@keyframes sheet-out-down{to{transform:translateY(100%)}}@media(max-height:500px)and (orientation:landscape){.sheet,.sheet--wide{inset:0 0 0 auto;width:min(560px,70vw);height:100dvh;max-height:100dvh;border-radius:0;border-top:0;border-left:1px solid var(--c-line);padding-right:var(--safe-right)}.sheet[open]{animation-name:sheet-in-right}.sheet[data-closing]{animation-name:sheet-out-right}.sheet-handle{display:none}.sheet-header{min-height:48px;padding-top:var(--sp-1);padding-bottom:var(--sp-1)}}.sheet:focus-visible,.dialog:focus-visible,.loader:focus-visible{outline:none}.section{display:grid;gap:var(--sp-3)}.section+.section{margin-top:var(--sp-8)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:32px}.section-title{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-13);font-weight:var(--fw-semibold);color:var(--c-text-2)}.section-title .icon{font-size:18px;color:var(--c-text-3)}.setting{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--sp-2) var(--sp-4);min-height:52px;padding:var(--sp-2) 0;border-bottom:1px solid var(--c-line)}.setting:last-child{border-bottom:0}.setting-label{font-size:var(--fs-14);color:var(--c-text)}.setting-hint{display:block;font-size:var(--fs-12);color:var(--c-text-3)}.setting--range{grid-template-columns:minmax(96px,.8fr) minmax(0,1.6fr) 76px}.setting--range>.setting-value,.setting--range>.setting-control{justify-self:end}.setting-value{min-width:3ch;font-size:var(--fs-13);font-variant-numeric:tabular-nums;text-align:right;color:var(--c-text-2)}.setting-control{display:flex;align-items:center;gap:var(--sp-2)}@media(max-width:400px){.setting--range{grid-template-columns:minmax(0,1fr) auto}.setting--range .range,.setting--range .setting-control{grid-column:1 / -1;grid-row:2}}.toast-region{position:fixed;z-index:var(--z-toast);left:50%;bottom:calc(var(--sp-4) + var(--safe-bottom) + var(--toast-offset, 0px));display:flex;flex-direction:column-reverse;align-items:center;gap:var(--sp-2);width:min(420px,calc(100vw - 24px));transform:translate(-50%);pointer-events:none}.sheet:has(.sheet-footer) .toast-region{--toast-offset: 72px}.toast{display:flex;align-items:center;gap:var(--sp-3);width:fit-content;max-width:100%;min-height:44px;padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);font-size:var(--fs-13);font-weight:var(--fw-medium);color:var(--c-text);background:#26262d;border:1px solid var(--c-line-strong);border-radius:var(--r-pill);box-shadow:var(--shadow-3);pointer-events:auto;animation:toast-in var(--dur-slow) var(--ease-spring)}.toast>.icon{font-size:18px}.toast-message{padding-right:var(--sp-2)}.toast[data-tone=success]>.icon{color:var(--c-success)}.toast[data-tone=error]>.icon{color:var(--c-danger)}.toast[data-tone=warning]>.icon{color:var(--c-warning)}.toast[data-tone=info]>.icon{color:var(--c-info)}.toast .btn{min-height:30px;border-radius:var(--r-pill)}.toast[data-closing]{animation:toast-out var(--dur-base) var(--ease-in) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(16px) scale(.96)}}@keyframes toast-out{to{opacity:0;transform:translateY(8px) scale(.98)}}.loader{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:var(--sp-6);background:var(--c-overlay);border:0}.loader[open]{display:grid;place-items:center;animation:enter-fade var(--dur-base) var(--ease-out)}.loader::backdrop{background:transparent}.loader[data-closing]{animation:exit-fade var(--dur-base) var(--ease-in) forwards}.loader-panel{display:grid;gap:var(--sp-3);width:min(360px,100%);padding:var(--sp-6);background:var(--c-surface-1);border:1px solid var(--c-line-strong);border-radius:var(--r-xl);box-shadow:var(--shadow-3);animation:dialog-in var(--dur-slow) var(--ease-spring)}.loader-head{display:flex;align-items:center;gap:var(--sp-3)}.loader-title{font-size:var(--fs-15);font-weight:var(--fw-semibold)}.loader-message{min-height:1.5em;font-size:var(--fs-12);color:var(--c-text-3)}.app{position:fixed;inset:0;height:100vh;height:100dvh;overflow:hidden}.view{position:absolute;inset:0}.view[data-entering]{animation:enter-fade var(--dur-slow) var(--ease-out)}.boot{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:var(--sp-6);background:var(--c-bg);transition:opacity var(--dur-slow) var(--ease-out)}.app:not([data-view=boot]) .boot{opacity:0;pointer-events:none}.boot .spinner{width:18px;height:18px}.brand-mark{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--r-md);color:var(--c-on-accent);background:var(--c-accent);flex-shrink:0}.brand-mark .icon{font-size:20px;font-variation-settings:"FILL" 1,"wght" 500,"GRAD" 0,"opsz" 20}.brand-mark--lg{width:48px;height:48px;border-radius:var(--r-lg)}.brand-mark--lg .icon{font-size:28px}.avatar{--hue: 32;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;font-size:var(--fs-13);font-weight:var(--fw-semibold);color:hsl(var(--hue) 70% 82%);background:hsl(var(--hue) 30% 24%);flex-shrink:0}.avatar--lg{width:56px;height:56px;font-size:var(--fs-20)}.shell{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);background:var(--c-bg)}.shell-nav{position:relative;z-index:var(--z-nav);display:flex;flex-direction:column;gap:var(--sp-2);padding:calc(var(--sp-4) + var(--safe-top)) var(--sp-3) calc(var(--sp-3) + var(--safe-bottom)) calc(var(--sp-3) + var(--safe-left));background:var(--c-bg-raised);border-right:1px solid var(--c-line)}.shell-brand{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) var(--sp-2) var(--sp-5);color:var(--c-text);text-decoration:none!important}.shell-brand-name{font-size:var(--fs-14);font-weight:var(--fw-semibold);letter-spacing:.02em}.shell-nav-items{display:flex;flex-direction:column;gap:2px;flex:1}.nav-item{position:relative;display:flex;align-items:center;gap:var(--sp-3);min-height:40px;padding:0 var(--sp-3);font-size:var(--fs-14);font-weight:var(--fw-medium);color:var(--c-text-2);border-radius:var(--r-md);text-decoration:none!important;transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}@media(hover:hover){.nav-item:hover{color:var(--c-text);background:var(--c-surface-1)}}.nav-item:active{transform:scale(.98)}.nav-item[aria-current=page]{color:var(--c-text);background:var(--c-surface-2)}.nav-item[aria-current=page] .icon{color:var(--c-accent);font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 20}.shell-user{display:flex;align-items:center;gap:var(--sp-3);width:100%;min-height:48px;padding:var(--sp-2);text-align:left;border-radius:var(--r-md);transition:background-color var(--dur-fast) var(--ease-out)}@media(hover:hover){.shell-user:hover{background:var(--c-surface-1)}}.shell-user-name{flex:1;font-size:var(--fs-13);font-weight:var(--fw-medium)}.shell-user>.icon{color:var(--c-text-3)}.shell-main{position:relative;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scroll-padding-top:var(--sp-6)}.shell-main:focus{outline:none}.shell-view{max-width:var(--view-max);margin:0 auto;padding:calc(var(--sp-8) + var(--safe-top)) calc(var(--sp-8) + var(--safe-right)) calc(var(--sp-12) + var(--safe-bottom)) var(--sp-8);animation:enter-rise var(--dur-slow) var(--ease-out)}.view-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);min-height:40px;margin-bottom:var(--sp-6)}.view-title{font-size:var(--fs-20);font-weight:var(--fw-semibold);letter-spacing:.01em}.view-actions{display:flex;align-items:center;gap:var(--sp-2)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3)}.toolbar-grow{flex:1 1 auto;min-width:0}.toolbar .search{min-width:min(100%,220px)}.select--auto{width:auto;min-width:132px}.select--inline{width:auto;min-width:160px}.button-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.chip-row{display:flex;flex-wrap:wrap;gap:6px}.panel{padding-top:var(--sp-5);border-top:1px solid var(--c-line)}.form-stack{display:grid;align-content:start;gap:var(--sp-4)}.form-stack>.section+.section{margin-top:var(--sp-4)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.link-btn{display:inline;padding:0;font-size:inherit;color:var(--c-text-2);text-decoration:underline;text-decoration-color:var(--c-line-focus);text-underline-offset:3px;transition:color var(--dur-fast)}@media(hover:hover){.link-btn:hover{color:var(--c-text)}}.inline-links{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);font-size:var(--fs-12)}.inline-links .link-btn{min-height:32px;text-decoration:none;color:var(--c-text-3)}.lang-select{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 var(--sp-2);font-size:var(--fs-12);color:var(--c-text-3);border-radius:var(--r-sm);transition:color var(--dur-fast),background-color var(--dur-fast)}.lang-select .icon{font-size:16px}.lang-select select{appearance:none;padding-right:4px;background:transparent;border:0;color:inherit;cursor:pointer}.lang-select select option{color:var(--c-text);background:var(--c-surface-2)}@media(hover:hover){.lang-select:hover{color:var(--c-text);background:var(--c-surface-1)}}.lang-select:focus-within{outline:2px solid var(--c-accent);outline-offset:2px}.lang-select select:focus-visible{outline:none}@media(max-width:1023px){.shell{grid-template-columns:80px minmax(0,1fr)}.shell-nav{align-items:center;padding-left:calc(var(--sp-2) + var(--safe-left));padding-right:var(--sp-2)}.shell-brand{padding:var(--sp-1) 0 var(--sp-4)}.shell-brand-name,.shell-user-name,.shell-user>.icon{display:none}.shell-nav-items{width:100%;gap:var(--sp-1)}.nav-item{flex-direction:column;justify-content:center;gap:2px;min-height:56px;padding:0;font-size:var(--fs-11)}.nav-item .icon{font-size:22px}.shell-user{justify-content:center;padding:var(--sp-2) 0}.shell-view{padding-left:var(--sp-6);padding-right:calc(var(--sp-6) + var(--safe-right))}}@media(max-width:639px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}.shell-main{grid-row:1}.shell-nav{grid-row:2;flex-direction:row;align-items:stretch;gap:0;min-height:calc(var(--bottom-nav-h) + var(--safe-bottom));padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);border-right:0;border-top:1px solid var(--c-line);background:#131317eb;backdrop-filter:saturate(140%) blur(16px);-webkit-backdrop-filter:saturate(140%) blur(16px)}.shell-brand,.shell-user{display:none}.shell-nav-items{flex-direction:row;gap:0}.nav-item{flex:1;min-height:var(--bottom-nav-h);border-radius:0;background:transparent!important}.nav-item[aria-current=page]:before{content:"";position:absolute;top:6px;left:50%;width:52px;height:30px;margin-left:-26px;border-radius:var(--r-pill);background:var(--c-accent-soft);animation:enter-fade var(--dur-base) var(--ease-out)}.nav-item .icon{position:relative;height:30px;display:grid;place-items:center}.nav-label{position:relative}.shell-view{padding:calc(var(--sp-5) + var(--safe-top)) calc(var(--sp-4) + var(--safe-right)) var(--sp-10) calc(var(--sp-4) + var(--safe-left))}.view-head{margin-bottom:var(--sp-4)}.form-row{grid-template-columns:1fr}:root:has(#portal-screen:not([hidden])) .toast-region{--toast-offset: var(--bottom-nav-h)}}.auth{display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,480px);overflow:hidden;background:#09090b}.auth-art{position:absolute;inset:0;overflow:hidden;pointer-events:none}.auth-glow{position:absolute;border-radius:50%;filter:blur(60px);opacity:.9;will-change:transform}.auth-glow--a{width:58vmax;height:58vmax;left:-14vmax;top:-18vmax;background:radial-gradient(circle,rgba(240,180,108,.42),transparent 62%);animation:auth-drift-a 26s var(--ease-in-out) infinite alternate}.auth-glow--b{width:48vmax;height:48vmax;left:18vmax;bottom:-26vmax;background:radial-gradient(circle,rgba(150,110,210,.36),transparent 64%);animation:auth-drift-b 32s var(--ease-in-out) infinite alternate}.auth-art:after{content:"auto_stories";position:absolute;left:6vw;bottom:-6vh;font-family:Material Symbols Outlined;font-size:min(54vh,40vw);line-height:1;color:#ffffff09;font-variation-settings:"FILL" 0,"wght" 200,"GRAD" 0,"opsz" 48;animation:auth-float 18s var(--ease-in-out) infinite alternate}@keyframes auth-float{to{transform:translate3d(0,-2vh,0) rotate(-2deg)}}.auth-grain{position:absolute;inset:0;opacity:.06;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}@keyframes auth-drift-a{to{transform:translate3d(8vmax,6vmax,0) scale(1.08)}}@keyframes auth-drift-b{to{transform:translate3d(-10vmax,-4vmax,0) scale(.94)}}@media(prefers-reduced-motion:reduce){.auth-glow,.auth-art:after{animation:none!important}}.auth-column{position:relative;grid-column:2;display:flex;flex-direction:column;gap:var(--sp-6);min-height:0;overflow-y:auto;padding:calc(var(--sp-10) + var(--safe-top)) calc(var(--sp-10) + var(--safe-right)) calc(var(--sp-6) + var(--safe-bottom)) var(--sp-10);background:#0d0d10db;border-left:1px solid var(--c-line);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);animation:enter-fade var(--dur-slow) var(--ease-out)}.auth-brand{display:flex;align-items:center;gap:var(--sp-3)}.auth-title{font-size:var(--fs-16);font-weight:var(--fw-semibold);letter-spacing:.02em}.auth-card{display:grid;gap:var(--sp-5);margin:auto 0;animation:enter-rise var(--dur-slow) var(--ease-out) 60ms both}.auth-panel{display:grid;gap:var(--sp-4)}.auth-panel:not([hidden]){animation:enter-rise var(--dur-base) var(--ease-out)}.auth-form{display:grid;gap:var(--sp-4)}.auth-divider{display:flex;align-items:center;gap:var(--sp-3);font-size:var(--fs-12);color:var(--c-text-3)}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--c-line)}.patreon-mark{width:18px;height:18px;flex-shrink:0}.auth-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--sp-3)}.shake{animation:shake-x .32s var(--ease-out)}@keyframes shake-x{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}@media(max-width:860px){.auth{grid-template-columns:minmax(0,1fr)}.auth-column{grid-column:1;width:100%;max-width:440px;margin:0 auto;padding:calc(var(--sp-8) + var(--safe-top)) calc(var(--sp-5) + var(--safe-right)) calc(var(--sp-4) + var(--safe-bottom)) calc(var(--sp-5) + var(--safe-left));background:transparent;border-left:0;backdrop-filter:none;-webkit-backdrop-filter:none}.auth-card{padding:var(--sp-5);background:#17171cd1;border:1px solid var(--c-line);border-radius:var(--r-xl);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.auth-footer{justify-content:center}}@media(max-height:560px)and (orientation:landscape){.auth-column{gap:var(--sp-3);padding-top:calc(var(--sp-4) + var(--safe-top))}}.library{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:var(--sp-3)}.library>.state{grid-column:1 / -1}.scenario{--hue: 32;position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--sp-4);width:100%;padding:var(--sp-3);padding-right:var(--sp-4);text-align:left;background:var(--c-bg-raised);border:1px solid var(--c-line);border-radius:var(--r-lg);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out),opacity var(--dur-base) var(--ease-out);animation:enter-rise var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 40ms)}@media(hover:hover){.scenario:hover:not(:disabled){background:var(--c-surface-1);border-color:var(--c-line-strong)}.scenario:hover:not(:disabled) .scenario-cta{color:var(--c-on-accent);background:var(--c-accent)}}.scenario:active:not(:disabled){transform:scale(.985)}.scenario:disabled{cursor:default}.scenario[data-state=locked],.scenario[data-state=pending]{opacity:.6}.scenario[data-state=busy]{border-color:var(--c-accent-line)}.library[data-busy] .scenario:not([data-state=busy]){opacity:.4}.scenario-cover{position:relative;display:grid;place-items:center;width:52px;aspect-ratio:13 / 19;overflow:hidden;font-size:var(--fs-20);font-weight:var(--fw-semibold);color:hsl(var(--hue) 70% 86%);background:linear-gradient(160deg,hsl(var(--hue) 45% 34%),hsl(calc(var(--hue) + 30) 35% 16%));border-radius:var(--r-sm);box-shadow:inset 0 0 0 1px #ffffff14}.scenario-body{display:grid;gap:6px;min-width:0}.scenario-title{font-size:var(--fs-15);font-weight:var(--fw-semibold);color:var(--c-text);line-height:var(--lh-tight)}.scenario-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--fs-12);color:var(--c-text-3)}.scenario-cta{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--c-text);background:var(--c-surface-2);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.scenario[data-state=busy] .scenario-cta .icon{display:none}.scenario[data-state=busy] .scenario-cta:after{content:"";width:16px;height:16px;border:2px solid var(--c-accent);border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.scenario--skeleton{pointer-events:none}.scenario--skeleton .scenario-cover{background:var(--c-surface-2)}.resume{--hue: 32;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-6);padding:var(--sp-4) var(--sp-5);overflow:hidden;background:radial-gradient(120% 140% at 0% 0%,hsl(var(--hue) 45% 22% / .9),transparent 60%),var(--c-bg-raised);border:1px solid var(--c-line-strong);border-radius:var(--r-lg);animation:enter-rise var(--dur-slow) var(--ease-out)}.resume-text{display:grid;gap:2px;min-width:0}.resume-title{font-size:var(--fs-16);font-weight:var(--fw-semibold)}.resume-meta{font-size:var(--fs-12);color:var(--c-text-2)}.drop-zone{position:fixed;inset:var(--sp-4);z-index:var(--z-popover);display:grid;place-content:center;justify-items:center;gap:var(--sp-3);font-size:var(--fs-15);color:var(--c-accent);background:#0d0d10db;border:2px dashed var(--c-accent-line);border-radius:var(--r-xl);pointer-events:none;animation:enter-fade var(--dur-base) var(--ease-out)}.drop-zone .icon{font-size:40px}@media(max-width:639px){.resume{grid-template-columns:minmax(0,1fr)}.resume .btn{width:100%}}.account-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--sp-10);align-items:start}.account-col{display:grid;gap:var(--sp-8)}.account-col>.section+.section{margin-top:0}.account-identity{display:flex;align-items:center;gap:var(--sp-4)}.account-identity-text{display:grid;gap:6px;min-width:0}.account-username{font-size:var(--fs-18);font-weight:var(--fw-semibold);overflow-wrap:anywhere}.membership{display:flex;align-items:flex-start;gap:var(--sp-3)}.membership .status-dot{margin-top:7px}.membership-text{display:grid;gap:2px;min-width:0}.membership-status{font-size:var(--fs-14);font-weight:var(--fw-medium)}.membership-detail{font-size:var(--fs-12);color:var(--c-text-3)}.membership-detail:empty{display:none}.link-list{display:grid}.link-row{display:flex;align-items:center;gap:var(--sp-3);min-height:48px;padding:0 var(--sp-1);font-size:var(--fs-14);text-align:left;color:var(--c-text);border-bottom:1px solid var(--c-line);transition:color var(--dur-fast)}.link-row:last-child{border-bottom:0}.link-row>span:nth-child(2){flex:1}.link-row>.icon{color:var(--c-text-3)}@media(hover:hover){.link-row:hover>.icon:last-child{color:var(--c-text);transform:translate(2px);transition:transform var(--dur-fast) var(--ease-out)}}.contact-feedback{font-size:var(--fs-13);color:var(--c-text-2)}.contact-feedback:empty{display:none}.contact-feedback[data-tone=error]{color:var(--c-danger)}.contact-feedback[data-tone=success]{color:var(--c-success)}.counter{justify-self:end;font-variant-numeric:tabular-nums}.legal-document{display:grid;gap:var(--sp-3);max-width:64ch;font-size:var(--fs-14);line-height:var(--lh-relaxed);color:var(--c-text-2)}.legal-document h3{margin-top:var(--sp-3);font-size:var(--fs-14);color:var(--c-text)}.legal-document strong{color:var(--c-text);font-weight:var(--fw-semibold)}.legal-updated{font-size:var(--fs-12);color:var(--c-text-3)}@media(max-width:959px){.account-grid{grid-template-columns:minmax(0,1fr);gap:var(--sp-8)}}.admin{--view-max: 1280px;max-width:var(--view-max)}.admin-tabs{margin:calc(var(--sp-2) * -1) 0 var(--sp-5)}.admin-panel{display:grid;gap:var(--sp-4);animation:enter-fade var(--dur-base) var(--ease-out)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--sp-3)}.stat{display:grid;gap:var(--sp-2);padding:var(--sp-4);text-align:left;background:var(--c-bg-raised);border:1px solid var(--c-line);border-radius:var(--r-lg);transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}@media(hover:hover){.stat:hover{background:var(--c-surface-1);border-color:var(--c-line-strong)}}.stat:active{transform:scale(.98)}.stat-label{font-size:var(--fs-12);color:var(--c-text-3)}.stat-value{font-size:var(--fs-24);font-weight:var(--fw-semibold);line-height:1;font-variant-numeric:tabular-nums}.stat-value--danger{color:var(--c-danger)}.stat-value--accent{color:var(--c-accent)}.stat-value.skeleton{width:48px;height:24px;color:transparent}.audit-list .list-row{min-height:48px}.bulk-bar{position:fixed;z-index:var(--z-dock);left:calc(50% + var(--bulk-offset, var(--rail-w)) / 2);bottom:calc(var(--sp-6) + var(--safe-bottom));display:flex;align-items:center;gap:var(--sp-2);width:max-content;max-width:calc(100vw - 24px);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);background:var(--c-surface-3);border:1px solid var(--c-line-strong);border-radius:var(--r-pill);box-shadow:var(--shadow-3);transform:translate(-50%);animation:bulk-in var(--dur-slow) var(--ease-spring)}@keyframes bulk-in{0%{opacity:0;transform:translate(-50%,16px)}}.bulk-bar .btn{border-radius:var(--r-pill)}.bulk-count{margin-right:var(--sp-2);font-size:var(--fs-13);font-weight:var(--fw-semibold);white-space:nowrap}@media(max-width:1023px){.bulk-bar{--bulk-offset: 80px}}@media(max-width:639px){.bulk-bar{--bulk-offset: 0px;bottom:calc(var(--bottom-nav-h) + var(--safe-bottom) + var(--sp-3))}}.data-view{min-height:120px}.cell-user{display:flex;align-items:center;gap:var(--sp-3);min-width:0}.cell-user .avatar{width:28px;height:28px;font-size:var(--fs-12)}.cell-title{font-weight:var(--fw-medium);color:var(--c-text)}.cell-sub{display:block;font-size:var(--fs-11);color:var(--c-text-3)}.cell-muted{color:var(--c-text-3);font-variant-numeric:tabular-nums;white-space:nowrap}.table .badge+.badge{margin-left:4px}.table tr.is-banned .cell-title{color:var(--c-text-3);text-decoration:line-through;text-decoration-color:var(--c-danger)}.row-skeleton td{height:48px}@media(max-width:760px){.table-wrap{border:0;background:transparent;overflow:visible}.table thead{display:none}.table,.table tbody{display:block}.table tbody tr{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:var(--sp-2);padding:var(--sp-3);background:var(--c-bg-raised);border:1px solid var(--c-line);border-radius:var(--r-md)}.table td{display:block;height:auto;padding:0;border:0;order:3;font-size:var(--fs-12)}.table td.col-check{order:0;width:auto}.table td.col-primary{order:1;flex:1 1 0;min-width:0;font-size:var(--fs-13)}.table td.col-actions{order:1;width:auto}.table tbody tr:after{content:"";order:2;flex-basis:100%;height:0}.table td[data-label]:before{content:attr(data-label);margin-right:6px;color:var(--c-text-3)}.table td:empty{display:none}}.issue-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-3)}.field--count{width:96px}.segmented>button[role=radio][aria-checked=true]{color:var(--c-text);background:var(--c-surface-3);box-shadow:var(--shadow-1)}.generated{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-3);padding:var(--sp-3);background:var(--c-success-soft);border:1px solid rgba(111,211,160,.25);border-radius:var(--r-md);animation:enter-rise var(--dur-base) var(--ease-out)}.generated-codes{display:flex;flex-wrap:wrap;gap:6px;flex:1}.generated-code{padding:4px 10px;font-family:var(--font-mono);font-size:var(--fs-13);letter-spacing:.04em;color:var(--c-text);background:var(--c-surface-2);border-radius:var(--r-sm);-webkit-user-select:all;user-select:all}.role-list{display:grid}.role-row{display:flex;align-items:center;gap:var(--sp-3);min-height:52px;border-bottom:1px solid var(--c-line)}.role-row:last-child{border-bottom:0}.role-row-text{flex:1;display:grid;gap:2px}.role-row-text strong{font-size:var(--fs-14);font-weight:var(--fw-medium)}.role-row-text small{font-size:var(--fs-12);color:var(--c-text-3)}.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--sp-2) var(--sp-4);font-size:var(--fs-13)}.kv dt{color:var(--c-text-3)}.kv dd{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.grant-row{display:flex;gap:var(--sp-2)}.grant-row .select{flex:1}.file-drop{display:flex;align-items:center;gap:var(--sp-3);min-height:56px;padding:var(--sp-3) var(--sp-4);font-size:var(--fs-13);color:var(--c-text-2);background:var(--c-surface-1);border:1px dashed var(--c-line-focus);border-radius:var(--r-md);cursor:pointer;transition:border-color var(--dur-fast),background-color var(--dur-fast)}.file-drop:focus-within{border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}@media(hover:hover){.file-drop:hover{border-color:var(--c-accent-line)}}.file-drop[data-dragover]{border-color:var(--c-accent);background:var(--c-accent-soft)}.file-drop[data-has-file]{color:var(--c-text);border-style:solid}.file-drop-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:900px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:639px){.issue-form>.field,.issue-form>.btn{width:100%}.issue-form .segmented{display:flex}.toolbar>.select--auto{flex:1}}.player{overflow:hidden;background:#000;--dock-size: 56px;--dock-gap: 12px}.player-ambient{position:absolute;inset:-8%;background-position:center;background-size:cover;filter:blur(56px) brightness(.34) saturate(1.15);opacity:0;transform:translateZ(0);transition:opacity .9s var(--ease-out);pointer-events:none}.player-ambient[data-ready]{opacity:1}.player-layout{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:var(--dock-gap);padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left)}.player[data-dock=side] .player-layout{flex-direction:row}.player[data-dock=bottom] .player-layout{flex-direction:column}.stage{--game-width: var(--stage-w, 390px);--game-height: var(--stage-h, 570px);--font-scale: 1;--dock-inset: 0px;position:relative;flex:none;width:var(--stage-w, 390px);height:var(--stage-h, 570px);overflow:hidden;background:#0a0a0c;box-shadow:0 24px 80px #0009;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;container:stage / size;contain:layout paint size}.player[data-dock=overlay] .stage{--dock-inset: calc(var(--dock-size) + 8px)}.stage img{-webkit-user-drag:none;pointer-events:none}.screen{position:absolute;inset:0;display:none}.screen.active{display:flex}.screen-fade-in{animation:enter-fade .42s var(--ease-out)}.screen-fade-out{display:flex!important;animation:exit-fade .32s var(--ease-in) forwards}.dock{position:relative;z-index:var(--z-dock);display:flex;gap:2px;padding:4px;background:#16161ab8;border:1px solid rgba(255,255,255,.08);border-radius:var(--r-xl);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out),visibility 0s linear 0s}.player[data-dock=side] .dock{flex-direction:column}.player[data-dock=bottom] .dock{flex-direction:row;width:min(var(--stage-w),520px);justify-content:space-between}.player[data-dock=overlay] .dock{position:absolute;left:50%;bottom:calc(var(--safe-bottom) + 6px);width:min(var(--stage-w) - 12px,520px);justify-content:space-between;translate:-50% 0}.player[data-dock-float] .dock{position:absolute;top:50%;left:calc(50% + var(--stage-w) / 2 + var(--dock-gap));translate:0 -50%}.dock-btn{position:relative;display:grid;place-items:center;align-content:center;gap:2px;min-width:48px;min-height:48px;padding:4px;color:#ffffffb8;border-radius:var(--r-lg);transition:background-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.player[data-dock=bottom] .dock-btn,.player[data-dock=overlay] .dock-btn{flex:1;min-height:var(--dock-size)}.dock-btn .icon{font-size:22px}.dock-label{font-size:10px;font-weight:var(--fw-medium);letter-spacing:.02em;white-space:nowrap}.player[data-dock=side] .dock-label{display:none}@media(hover:hover){.dock-btn:hover{color:#fff;background:#ffffff14}}.dock-btn:active{transform:scale(.9)}.dock-btn[aria-pressed=true],.dock-btn[aria-expanded=true]{color:var(--c-accent);background:var(--c-accent-soft)}.dock-btn[aria-pressed=true] .icon{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 20}.player[data-scene=title] .dock,.player[data-ui=hidden] .dock{opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--dur-base) var(--ease-in),visibility 0s linear var(--dur-base)}.player[data-dock=side][data-ui=hidden] .dock{transform:translate(8px)}.player[data-dock=bottom][data-ui=hidden] .dock{transform:translateY(8px)}.app[data-mode=testplay] [data-full-only]{display:none!important}.stage-icon-btn{position:relative;display:grid;place-items:center;width:40px;height:40px;color:#fff;background:#0a0a0c6b;border:1px solid rgba(255,255,255,.12);border-radius:50%;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background-color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out),opacity var(--dur-base) var(--ease-out)}.stage-icon-btn:before{content:"";position:absolute;inset:-4px}@media(hover:hover){.stage-icon-btn:hover{background:#0a0a0ca8}}.stage-icon-btn:active{transform:scale(.92)}.title-screen{--hue: 32;flex-direction:column;justify-content:flex-end;overflow:hidden;background:radial-gradient(120% 80% at 50% 0%,hsl(var(--hue) 40% 18%),transparent 70%),linear-gradient(180deg,#121216,#060607)}.title-backdrop{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.06);transition:opacity 1.2s var(--ease-out),transform 12s linear}.title-backdrop[data-ready]{opacity:1;transform:scale(1)}.title-screen:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#050507f0,#050507b3 38%,#0505071f 72%,#05050766);pointer-events:none}.title-top{position:absolute;z-index:2;top:12px;left:12px;right:12px;display:flex;justify-content:space-between}.title-top .stage-icon-btn:only-child{margin-left:auto}.title-content{position:relative;z-index:1;display:grid;gap:8px;padding:0 clamp(20px,calc(var(--game-width) * .08),48px) clamp(24px,calc(var(--game-height) * .07),64px)}.title-screen.active .title-content>*{animation:enter-rise .52s var(--ease-out) both}.title-screen.active .title-content>:nth-child(2){animation-delay:60ms}.title-screen.active .title-content>:nth-child(3){animation-delay:.11s}.title-screen.active .title-content>:nth-child(4){animation-delay:.17s}.title-author{font-size:var(--fs-11);font-weight:var(--fw-semibold);letter-spacing:.14em;text-transform:uppercase;color:#fff9}.title-author:empty,.title-description:empty{display:none}.title-name{font-size:clamp(22px,calc(var(--game-width) * .072),36px);font-weight:var(--fw-semibold);line-height:1.25;letter-spacing:.04em;color:#fff;text-wrap:balance}.title-description{max-width:40ch;font-size:var(--fs-13);line-height:var(--lh-normal);color:#ffffffa8;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.title-menu{display:grid;gap:6px;margin-top:clamp(12px,calc(var(--game-height) * .03),28px);max-width:320px}.title-action{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 16px;font-size:var(--fs-15);font-weight:var(--fw-medium);text-align:left;color:#ffffffdb;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:var(--r-md);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.title-action .icon{color:#fff9;transition:transform var(--dur-base) var(--ease-spring)}@media(hover:hover){.title-action:hover{background:#ffffff1f;border-color:#ffffff29;transform:translate(3px)}}.title-action:active{transform:scale(.98)}.title-action--primary{color:var(--c-on-accent);background:var(--c-accent);border-color:transparent;font-weight:var(--fw-semibold)}.title-action--primary .icon{color:var(--c-on-accent);font-variation-settings:"FILL" 1,"wght" 500,"GRAD" 0,"opsz" 20}@media(hover:hover){.title-action--primary:hover{background:var(--c-accent-strong);border-color:transparent}}@container (max-height: 420px){.title-description{display:none}.title-action{min-height:40px}}.game-screen{flex-direction:column;background:#000}.layer{position:absolute;inset:0}#bg-layer,#bg-layer-next{background-size:cover;background-position:center}#bg-layer-next{opacity:0;pointer-events:none}#character-layer{display:flex;align-items:flex-end;justify-content:center;pointer-events:none}#fade-overlay,#flash-overlay,#color-filter-overlay{position:absolute;inset:0;opacity:0;pointer-events:none}#fade-overlay{z-index:2;background:#000}#flash-overlay{z-index:2;background:transparent}#color-filter-overlay{z-index:1;background:transparent;transition:opacity .5s ease,background .5s ease}.char-slot{position:absolute;bottom:0;display:grid;align-items:end;transition:opacity .5s,transform .5s}.char-slot img{grid-area:1 / 1;max-height:calc(var(--game-height) * .8);height:auto;filter:drop-shadow(2px 4px 8px rgba(0,0,0,.6));transition:filter .3s ease,opacity .5s,transform .5s}#char-left{left:-17%}#char-center{left:50%;transform:translate(-50%)}#char-right{right:-17%}.char-slot.char-dimmed img{filter:brightness(.4) drop-shadow(2px 4px 8px rgba(0,0,0,.6))!important}.char-slot.char-large img{max-height:calc(var(--game-height) * .95);transform-origin:bottom center}.cg-overlay{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:#000}.cg-overlay img{max-width:100%;max-height:100%;object-fit:contain}#text-box{--textbox-alpha: .55;position:absolute;z-index:3;left:0;right:0;bottom:var(--dock-inset);height:calc(var(--game-height) * .29);padding:calc(var(--game-height) * .018) clamp(16px,calc(var(--game-width) * .055),36px) calc(var(--game-height) * .02);background:linear-gradient(180deg,#06060900,rgba(6,6,9,calc(var(--textbox-alpha) * .85)) 22%,rgba(6,6,9,var(--textbox-alpha)));cursor:pointer;transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}#speaker-name{min-height:calc(1em + 10px);margin-bottom:6px;font-size:clamp(13px,calc(var(--game-height) * .021),20px);font-weight:var(--fw-bold);letter-spacing:.06em;line-height:1;color:var(--c-accent);text-shadow:0 0 3px rgba(0,0,0,1),0 0 8px rgba(0,0,0,.8)}#speaker-name:not(:empty){display:inline-flex;align-items:center;padding:5px 14px 5px 10px;background:linear-gradient(90deg,rgba(0,0,0,.6),rgba(0,0,0,.18) 85%,transparent);border-left:2px solid currentColor;border-radius:2px 10px 10px 2px;animation:speaker-in .24s var(--ease-out)}@keyframes speaker-in{0%{opacity:0;transform:translate(-6px)}}#text-content{max-height:calc(var(--game-height) * .29 - 3.6em);overflow-y:auto;font-size:calc(clamp(15px,calc(var(--game-height) * .026),28px) * var(--font-scale, 1));line-height:1.8;color:#f6f4f0;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:0 0 2px rgba(0,0,0,1),0 0 6px rgba(0,0,0,.85),1px 1px 2px rgba(0,0,0,1);scrollbar-width:none}#text-content::-webkit-scrollbar{display:none}@container stage (max-height: 480px){#text-box{height:calc(var(--game-height) * .36);padding-top:8px}#speaker-name{margin-bottom:4px}#text-content{max-height:calc(var(--game-height) * .36 - 2.8em);line-height:1.6}}#text-content ruby{ruby-position:over}#text-content ruby rt{font-size:.55em;color:#ffffffc7}#text-content ruby rp,.bl-text ruby rp{display:none}#text-indicator{position:absolute;right:clamp(14px,calc(var(--game-width) * .05),28px);bottom:calc(var(--game-height) * .018);color:#ffffffd9;animation:indicator-bob 1.2s var(--ease-in-out) infinite}#text-indicator .icon{font-size:24px}@keyframes indicator-bob{0%,to{transform:translateY(0);opacity:.45}50%{transform:translateY(4px);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.player[data-ui=hidden] #text-box,.player[data-ui=hidden] .status-badges,.player[data-ui=hidden] .datetime-display,.player[data-ui=hidden] .message-app-phase{opacity:0;pointer-events:none}.player[data-ui=hidden] #text-box{transform:translateY(12px)}.show-ui-btn{position:absolute;z-index:12;top:12px;right:12px;opacity:.7;animation:enter-fade var(--dur-slow) var(--ease-out)}@media(hover:hover){.show-ui-btn:hover{opacity:1}}#choice-panel{position:absolute;z-index:10;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,calc(var(--game-height) * .014),14px);padding:24px;background:#04040680;animation:enter-fade var(--dur-base) var(--ease-out)}.choice-btn{position:relative;display:flex;align-items:center;gap:12px;width:min(100%,calc(var(--game-width) * .86),460px);min-height:max(48px,calc(var(--game-height) * .07));padding:10px 16px 10px 10px;font-size:clamp(14px,calc(var(--game-height) * .021),18px);font-weight:var(--fw-medium);line-height:1.4;text-align:left;color:#f4f2ee;background:#101014db;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-md);box-shadow:0 8px 24px #00000059;opacity:0;animation:choice-in .36s var(--ease-out) forwards;animation-delay:calc(var(--i, 0) * 50ms);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}@keyframes choice-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.choice-num{display:grid;place-items:center;flex-shrink:0;width:28px;height:28px;font-size:var(--fs-12);font-weight:var(--fw-bold);color:#ffffffb3;background:#ffffff14;border-radius:var(--r-sm);transition:background-color var(--dur-fast),color var(--dur-fast)}.choice-label{flex:1}@media(hover:hover){.choice-btn:hover{background:#1c1c22f0;border-color:var(--c-accent-line);transform:translateY(-1px)}.choice-btn:hover .choice-num{color:var(--c-on-accent);background:var(--c-accent)}}.choice-btn.choice-focused,.choice-btn:focus-visible{outline:none;border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft),0 8px 24px #00000059}.choice-btn.choice-focused .choice-num{color:var(--c-on-accent);background:var(--c-accent)}.choice-btn:active{transform:scale(.98);transition-duration:var(--dur-instant)}.choice-btn.choice-selected{border-color:var(--c-accent);background:#f0b46c33}.choice-btn.choice-conditional{background:#2e1e0ce6;border-color:#f2b05073}.choice-lock{color:#f2c26c}.choice-lock .icon{font-size:18px}.status-badges{position:absolute;z-index:11;top:12px;right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:6px;transition:opacity var(--dur-slow) var(--ease-out)}.status-badge{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 6px 0 10px;font-size:11px;font-weight:var(--fw-bold);letter-spacing:.1em;color:var(--c-on-accent);background:var(--c-accent);border-radius:var(--r-pill);box-shadow:0 4px 14px #00000059;animation:badge-in var(--dur-slow) var(--ease-spring)}.status-badge .icon{font-size:16px}.status-badge-x{margin-left:2px;opacity:.65}#badge-skip{color:#fff;background:#c4534f}#badge-skip>.icon:first-child{animation:badge-pulse .9s var(--ease-in-out) infinite}@keyframes badge-in{0%{opacity:0;transform:translateY(-6px) scale(.9)}}@keyframes badge-pulse{50%{transform:translate(2px)}}.scene-name-display{position:absolute;z-index:5;top:0;left:0;right:0;padding:calc(var(--game-height) * .03) 20px;text-align:center;font-size:clamp(14px,calc(var(--game-height) * .024),22px);font-weight:var(--fw-semibold);letter-spacing:.12em;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.9),0 0 30px rgba(0,0,0,.5);pointer-events:none;opacity:0;animation:scene-name 3s var(--ease-in-out)}@keyframes scene-name{0%{opacity:0;transform:translateY(-8px)}15%,75%{opacity:1;transform:none}to{opacity:0}}.datetime-display{position:absolute;z-index:4;top:12px;left:12px;display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;background:#08080a80;border:1px solid rgba(255,255,255,.1);border-radius:var(--r-pill);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none;transition:opacity var(--dur-slow) var(--ease-out)}.datetime-icon{width:clamp(26px,calc(var(--game-height) * .045),40px);height:clamp(26px,calc(var(--game-height) * .045),40px);object-fit:contain}.datetime-day{font-size:clamp(11px,calc(var(--game-height) * .017),14px);font-weight:var(--fw-bold);letter-spacing:.06em;color:#fff;white-space:nowrap}.title-overlay{position:absolute;z-index:6;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;opacity:0}.title-overlay-main{padding:0 24px;font-size:clamp(22px,calc(var(--game-height) * .042),40px);font-weight:var(--fw-bold);letter-spacing:.15em;line-height:1.4;text-align:center;text-shadow:0 2px 16px rgba(0,0,0,.8),0 0 40px rgba(0,0,0,.4)}.title-overlay-sub{margin-top:16px;padding:0 24px;font-size:clamp(14px,calc(var(--game-height) * .024),22px);letter-spacing:.08em;line-height:1.4;text-align:center;opacity:.85;text-shadow:0 1px 8px rgba(0,0,0,.6)}.title-slide-in{animation:enter-rise .6s var(--ease-out) both}.toast-container{position:absolute;z-index:15;right:10px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:none}.toast-pos-top{top:calc(var(--game-height) * .08)}.toast-pos-center{top:50%;left:10px;align-items:center;transform:translateY(-50%)}.toast-pos-bottom{bottom:calc(var(--game-height) * .31 + var(--dock-inset))}.toast-item{max-width:95%;padding:9px 16px;font-size:clamp(13px,calc(var(--game-height) * .022),18px);font-weight:var(--fw-semibold);line-height:1.35;white-space:nowrap;border-radius:var(--r-pill);box-shadow:0 8px 24px #00000059;opacity:0;transform:translate(16px)}.toast-item.toast-center{transform:scale(.94)}.toast-item.toast-enter{animation:stage-toast-in .36s var(--ease-spring) forwards}.toast-item.toast-exit{animation:stage-toast-out .26s var(--ease-in) forwards}@keyframes stage-toast-in{to{opacity:1;transform:none}}@keyframes stage-toast-out{0%{opacity:1;transform:none}to{opacity:0;transform:translate(12px)}}.game-screen:has(.message-app-phase:not(.hidden)) .datetime-display{opacity:0}.game-screen:has(.message-app-phase:not(.hidden)) .status-badges{top:68px}.message-app-phase{position:absolute;z-index:3;inset:0 0 var(--dock-inset);display:flex;flex-direction:column;color:#17202a;background:radial-gradient(circle at 18% 12%,rgba(105,221,200,.16),transparent 32%),linear-gradient(160deg,#f6f9fa,#eaf1f3);animation:enter-fade var(--dur-slow) var(--ease-out);transition:opacity var(--dur-slow) var(--ease-out)}.message-app-header{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;min-height:56px;padding:8px 16px;color:#fff;background:#1a6d65;box-shadow:0 2px 12px #133d4133}.message-app-header .icon{font-size:18px;opacity:.8}.message-app-header strong{font-size:var(--fs-15);letter-spacing:.02em}.message-app-status{display:inline-flex;align-items:center;gap:6px;font-size:10px;opacity:.8}.message-app-status:before{content:"";width:6px;height:6px;border-radius:50%;background:#8ff0c9}.message-messages{flex:1;min-height:0;padding:16px clamp(12px,calc(var(--game-width) * .05),40px);overflow-y:auto;overscroll-behavior:contain}.message-row{display:flex;align-items:flex-end;gap:8px;margin:8px 0;animation:message-in .24s var(--ease-out)}@keyframes message-in{0%{opacity:0;transform:translateY(6px) scale(.98)}}.message-sent{justify-content:flex-end}.message-bubble{max-width:min(74%,520px);padding:9px 13px;font-size:calc(14px * var(--font-scale, 1));line-height:1.55;color:#1d2932;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border-radius:4px 16px 16px;box-shadow:0 1px 6px #1c3d451a}.message-sent .message-bubble{color:#073a34;background:#c3efe5;border-radius:16px 4px 16px 16px}.message-typing{min-width:52px;display:inline-flex;align-items:center;justify-content:center;gap:5px}.message-typing span{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.28;animation:typing-dot 1.05s var(--ease-in-out) infinite}.message-typing span:nth-child(2){animation-delay:.14s}.message-typing span:nth-child(3){animation-delay:.28s}@keyframes typing-dot{30%{opacity:.9;transform:translateY(-3px)}}.message-sender{margin-bottom:3px;font-size:10px;font-weight:var(--fw-bold);color:#24766d}.message-avatar{display:inline-grid;place-items:center;flex:0 0 32px;width:32px;height:32px;overflow:hidden;color:#fff;background:#6a9292;border-radius:50%}.message-avatar img{width:100%;height:100%;object-fit:cover}.message-image{display:block;width:min(100%,360px);max-height:320px;object-fit:contain;border-radius:10px}.message-image-caption{margin-top:6px;font-size:11px;opacity:.7}.message-notice{width:fit-content;max-width:90%;margin:14px auto;padding:4px 12px;font-size:11px;text-align:center;color:#6f7f84;background:#546f741a;border-radius:var(--r-pill)}.message-compose{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 12px 12px;padding:6px 6px 6px 16px;font-size:var(--fs-13);color:#8c9b9e;background:#fff;border:1px solid #dce6e7;border-radius:var(--r-pill)}.message-compose>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-compose button{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;color:#fff;background:#197268;border-radius:50%;transition:transform var(--dur-fast) var(--ease-spring),opacity var(--dur-fast)}.message-compose button:disabled{opacity:.28}.message-compose button:not(:disabled){animation:send-ready .3s var(--ease-spring)}.message-compose button:not(:disabled):active{transform:scale(.88)}@keyframes send-ready{0%{transform:scale(.8)}}.message-choice-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:42%;padding:12px 12px 14px;overflow-y:auto;background:linear-gradient(180deg,#e2e9ebfa,#d0daddfc);border-top:1px solid rgba(48,75,80,.14);animation:keyboard-up .3s var(--ease-out)}@keyframes keyboard-up{0%{transform:translateY(100%)}}.message-choice-key{display:flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:8px 10px;font-size:var(--fs-13);line-height:1.35;color:#25363a;background:#fff;border:1px solid rgba(43,70,75,.12);border-radius:10px;box-shadow:0 2px #344e532e;transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast),background-color var(--dur-fast)}.message-choice-key:active{transform:translateY(2px);box-shadow:0 0 #344e5329}.message-choice-key.selected{color:#0d514a;background:#d6f4ed;border-color:#2e9185;box-shadow:0 2px #23766d}.message-choice-key:focus-visible{outline:2px solid #197268;outline-offset:2px}.message-choice-condition{font-size:16px;color:#1d8276}@container stage (max-width: 300px){.message-choice-panel{grid-template-columns:minmax(0,1fr)}}.saveload-tabs>button{min-width:108px}.save-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:var(--sp-2)}.save-slot-wrap{position:relative}.save-slot{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);gap:var(--sp-3);align-items:stretch;width:100%;min-height:96px;padding:var(--sp-2);padding-right:44px;text-align:left;background:var(--c-surface-1);border:1px solid var(--c-line);border-radius:var(--r-md);transition:background-color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out);animation:enter-rise var(--dur-base) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 18ms)}@media(hover:hover){.save-slot:hover:not(:disabled){background:var(--c-surface-2);border-color:var(--c-line-strong)}}.save-slot:active:not(:disabled){transform:scale(.985)}.save-slot:disabled{cursor:default}.save-slot[data-empty]:disabled{opacity:.45}.save-slot[data-just-saved]{border-color:var(--c-success);animation:slot-saved .9s var(--ease-out)}@keyframes slot-saved{0%{box-shadow:0 0 #6fd3a080}to{box-shadow:0 0 0 10px #6fd3a000}}.slot-thumb{width:64px;aspect-ratio:13 / 19;align-self:center;overflow:hidden;background:var(--c-surface-3) center / cover no-repeat;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--c-text-3)}.slot-body{display:grid;align-content:center;gap:4px;min-width:0}.slot-head{display:flex;align-items:center;gap:var(--sp-2)}.slot-number{font-size:var(--fs-11);font-weight:var(--fw-bold);letter-spacing:.08em;color:var(--c-text-3)}.save-slot[data-quick] .slot-number{color:var(--c-accent)}.slot-scene{font-size:var(--fs-12);color:var(--c-text-2)}.slot-text{font-size:var(--fs-13);line-height:1.45;color:var(--c-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.save-slot[data-empty] .slot-text{color:var(--c-text-3)}.slot-meta{display:flex;gap:var(--sp-3);font-size:var(--fs-11);color:var(--c-text-3);font-variant-numeric:tabular-nums}.slot-delete{position:absolute;top:6px;right:6px}.save-slot--skeleton{pointer-events:none}.backlog-content{display:grid;align-content:start;gap:0}.backlog-entry{display:grid;gap:4px;padding:var(--sp-3) 0;border-bottom:1px solid var(--c-line)}.backlog-entry:last-child{border-bottom:0;padding-bottom:var(--sp-6)}.bl-speaker{font-size:var(--fs-12);font-weight:var(--fw-bold);letter-spacing:.04em;color:var(--c-accent)}.bl-text{font-size:calc(var(--fs-15) * var(--font-scale, 1));line-height:var(--lh-relaxed);color:var(--c-text);white-space:pre-wrap;overflow-wrap:anywhere}.bl-text ruby rt{font-size:.55em;opacity:.7}.backlog-entry:last-child .bl-text{color:var(--c-text)}.backlog-entry:not(:last-child) .bl-text{color:var(--c-text-2)}.chat-archive{flex:1;min-height:0;display:grid;grid-template-columns:76px minmax(0,1fr)}.message-room-list{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-3) 0;overflow-y:auto;border-right:1px solid var(--c-line)}.message-room-item{position:relative;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;transition:transform var(--dur-fast) var(--ease-out)}.message-room-item:after{content:"";position:absolute;inset:-3px;border:2px solid transparent;border-radius:50%;transition:border-color var(--dur-fast)}.message-room-item.active:after{border-color:var(--c-accent)}.message-room-item:active{transform:scale(.92)}.message-room-item .message-avatar{width:44px;height:44px;flex-basis:44px}.message-archive-thread{display:flex;flex-direction:column;min-height:0;background:linear-gradient(160deg,#f6f9fa,#eaf1f3);color:#17202a}.message-archive-header{padding:var(--sp-3) var(--sp-4);color:#fff;background:#1a6d65}.message-archive-header h3{font-size:var(--fs-14)}.message-archive-messages{padding-bottom:calc(var(--sp-4) + var(--safe-bottom))}.message-empty{padding:var(--sp-10) var(--sp-4);text-align:center;font-size:var(--fs-13);color:#6f7f84}@media(max-width:640px){.chat-archive{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.message-room-list{flex-direction:row;padding:var(--sp-2) var(--sp-3);overflow-x:auto;overflow-y:hidden;border-right:0;border-bottom:1px solid var(--c-line)}}.profile-content{display:grid;align-content:start;gap:var(--sp-6)}.profile-basic{display:grid;grid-template-columns:minmax(96px,36%) minmax(0,1fr);gap:var(--sp-5);align-items:start}.profile-portrait{width:100%;aspect-ratio:13 / 19;object-fit:cover;object-position:top center;border-radius:var(--r-lg);background:var(--c-surface-2)}.profile-fields{display:grid}.profile-row,.profile-var-row{display:flex;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;font-size:var(--fs-13);border-bottom:1px solid var(--c-line)}.profile-label,.profile-var-label{color:var(--c-text-3);flex-shrink:0}.profile-value,.profile-var-value{text-align:right;font-weight:var(--fw-medium);overflow-wrap:anywhere}.profile-var-value{font-variant-numeric:tabular-nums}@media(max-width:380px){.profile-basic{grid-template-columns:minmax(0,1fr)}.profile-portrait{max-width:200px}}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:var(--sp-2)}.gallery-item{position:relative;aspect-ratio:13 / 19;overflow:hidden;background:var(--c-surface-2);border-radius:var(--r-md);animation:enter-fade var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 20ms);transition:transform var(--dur-fast) var(--ease-out)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out)}@media(hover:hover){.gallery-item:not(:disabled):hover img{transform:scale(1.04)}}.gallery-item:active:not(:disabled){transform:scale(.97)}.gallery-item:disabled{display:grid;place-items:center;color:var(--c-text-3);cursor:default;background:repeating-linear-gradient(135deg,transparent 0 10px,rgba(255,255,255,.02) 10px 20px),var(--c-surface-1)}.gallery-item-title{position:absolute;left:0;right:0;bottom:0;padding:18px 8px 6px;font-size:var(--fs-11);text-align:left;color:#fff;background:linear-gradient(to top,rgba(0,0,0,.75),transparent)}.gallery-variant-badge{position:absolute;top:6px;right:6px}.lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);background:#000;border:0}.lightbox[open]{display:grid;place-items:center;animation:enter-fade var(--dur-base) var(--ease-out)}.lightbox[data-closing]{animation:exit-fade var(--dur-fast) var(--ease-in) forwards}.lightbox:focus-visible{outline:none}.lightbox::backdrop{background:#000}.lightbox-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;animation:lightbox-in var(--dur-slow) var(--ease-out)}@keyframes lightbox-in{0%{opacity:0;transform:scale(.97)}}.lightbox-close{position:absolute;top:calc(12px + var(--safe-top));right:calc(12px + var(--safe-right))}.cg-viewer-variants{position:absolute;left:50%;bottom:calc(16px + var(--safe-bottom));display:flex;gap:4px;max-width:calc(100vw - 32px);padding:4px;overflow-x:auto;background:#141418cc;border:1px solid var(--c-line-strong);border-radius:var(--r-pill);transform:translate(-50%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.cg-viewer-variant-btn{min-height:36px;padding:0 14px;font-size:var(--fs-13);white-space:nowrap;color:var(--c-text-2);border-radius:var(--r-pill);transition:background-color var(--dur-fast),color var(--dur-fast)}.cg-viewer-variant-btn[aria-pressed=true]{color:var(--c-on-accent);background:var(--c-accent)}.controls-help{display:grid}.controls-help-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);min-height:40px;font-size:var(--fs-13);border-bottom:1px solid var(--c-line)}.controls-help-row:last-child{border-bottom:0}.controls-help-row dt{display:flex;align-items:center;gap:4px;color:var(--c-text-2)}.controls-help-row dt .icon{font-size:18px;margin-right:4px}.controls-help-row dd{color:var(--c-text);text-align:right}@media(pointer:coarse){.controls-help-row[data-input=pointer]{display:none}}@media(pointer:fine){.controls-help-row[data-input=touch]{display:none}}.setting-preview-btn[aria-pressed=true] .icon{animation:badge-pulse .8s var(--ease-in-out) infinite}
