:root{--color-brand-50: #1C1740;--color-brand-100: #241D4F;--color-brand-200: #332A6E;--color-brand-500: #8E6BFF;--color-brand-600: #7A4DFF;--color-brand-700: #6134E6;--color-brand-800: #4E28BF;--color-accent-100: #33280F;--color-accent-500: #E3B778;--color-accent-700: #C99A55;--color-success-600: #4FD39A;--color-success-50: #10291F;--color-warning-600: #E3B778;--color-warning-50: #2B2213;--color-danger-600: #F2705F;--color-danger-50: #2C1716;--color-danger-700: #FF8E7C;--color-bg-base: #0A0913;--color-bg-surface: #131022;--color-bg-subtle: #1B1730;--color-border: #2A2444;--color-border-strong: #3D3560;--color-text-primary: #EDEAF7;--color-text-secondary: #ABA5C6;--color-text-tertiary: #7C7499;--color-text-disabled: #575073;--color-text-on-brand: #FFFFFF;--color-bg-glass: rgba(13, 11, 24, .72);--color-bg-glass-strong: rgba(19, 16, 34, .94);--grad-mystic: linear-gradient(135deg, #1B1436 0%, #2A1B4D 46%, #3B2350 100%);--grad-aurora: radial-gradient(60% 60% at 20% 10%, rgba(122, 77, 255, .28), transparent 70%), radial-gradient(50% 50% at 85% 20%, rgba(227, 183, 120, .16), transparent 70%), radial-gradient(60% 60% at 50% 100%, rgba(78, 40, 191, .22), transparent 70%);--grad-gold: linear-gradient(135deg, #E3B778 0%, #C99A55 55%, #9C7434 100%);--grad-brand: linear-gradient(135deg, #8E6BFF 0%, #6C3BFF 52%, #4E28BF 100%);--glow-brand: 0 0 48px rgba(122, 77, 255, .3);--glow-gold: 0 0 40px rgba(227, 183, 120, .22);--star-color: #FFFFFF;--el-fire: #F0745A;--el-water: #6FA8FF;--el-air: #C6B6FF;--el-earth: #8FBF8A;--font-serif: "Source Han Serif SC", "Noto Serif SC", "Songti SC", "SimSun", serif;--font-sans: system-ui, "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Inter", sans-serif;--font-mono: "SF Mono", "Cascadia Code", Consolas, "JetBrains Mono", monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 36px;--text-5xl: 48px;--text-reading: 18px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-24: 96px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 20px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 8px 24px rgba(0, 0, 0, .45);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .55);--container-max: 1200px;--reading-width: 720px;--nav-height: 64px;--sidebar-width: 240px;--ai-panel-width: 320px;--home-sidebar-width: 280px;--duration-fast: .15s;--duration-base: .25s;--duration-slow: .6s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-soft: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--dur-reveal: .68s;--dur-page: .46s;--stagger: 70ms;--ring-brand: 0 0 0 3px rgba(122, 77, 255, .35);--ring-danger: 0 0 0 3px rgba(242, 112, 95, .3);--color-border-hover: #4A4174;--color-bg-active: #221C3C;--color-danger-active: #FFA392;--color-success-badge-text: #7BE3B4;--color-warning-badge-text: #F0CB93}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.7;color:var(--color-text-primary);background:var(--color-bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}a{color:var(--color-brand-600);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}a:hover{color:var(--color-brand-700)}ul,ol{list-style:none}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3}:focus-visible{outline:none;box-shadow:var(--ring-brand);border-radius:var(--radius-sm)}.on-brand :focus-visible,.focus-ring-on-brand:focus-visible{box-shadow:0 0 0 3px #ffffff8c}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:200;padding:var(--space-2) var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:var(--text-sm);font-weight:500;transform:translateY(-200%);transition:transform var(--duration-fast) var(--ease-out)}.skip-link:focus-visible{transform:translateY(0)}#main-content{outline:none}[hidden]{display:none!important}::selection{background:var(--color-brand-100);color:var(--color-text-primary)}@media(pointer:fine){::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full);border:2px solid var(--color-bg-base)}::-webkit-scrollbar-track{background:transparent}}.skeleton{background:var(--color-bg-subtle);border-radius:var(--radius-md);animation:skeleton-breathe 1.6s ease-in-out infinite alternate}@keyframes skeleton-breathe{0%{opacity:.6}to{opacity:1}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;opacity:.8}html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(pointer:coarse){.btn,.icon-btn{min-height:44px}.icon-btn{min-width:44px}}.container{max-width:var(--container-max);margin-inline:auto;padding-inline:var(--space-6)}@media(max-width:639px){.container{padding-inline:var(--space-4)}}.page{min-height:calc(100vh - var(--nav-height));padding-block:var(--space-12) var(--space-16)}@media(max-width:639px){.page{padding-block:var(--space-8) var(--space-12)}}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1}.section-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-6)}.section-title{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:600;line-height:1.3;color:var(--color-text-primary);letter-spacing:.02em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:40px;padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:500;line-height:1;white-space:nowrap;border:1px solid transparent;transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out);user-select:none}.btn:disabled,.btn[aria-disabled=true]{background:var(--color-bg-subtle);border-color:var(--color-border-strong);color:var(--color-text-disabled);cursor:not-allowed}.btn-sm{height:32px;padding:0 var(--space-3);font-size:var(--text-sm)}.btn-md{height:40px}.btn-lg{height:48px;padding:0 var(--space-5);font-size:var(--text-md)}.btn-block{width:100%}.btn-primary{background:var(--color-brand-600);color:var(--color-text-on-brand)}.btn-primary:not(:disabled):hover{background:var(--color-brand-700)}.btn-primary:not(:disabled):active{background:var(--color-brand-800)}.btn-secondary{background:var(--color-bg-surface);border-color:var(--color-border-strong);color:var(--color-text-primary)}.btn-secondary:not(:disabled):hover{background:var(--color-bg-subtle);border-color:var(--color-border-hover)}.btn-secondary:not(:disabled):active{background:var(--color-bg-active)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:not(:disabled):hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.btn-ghost:not(:disabled):active{background:var(--color-bg-active)}.btn-danger{background:var(--color-danger-600);color:var(--color-text-on-brand)}.btn-danger:not(:disabled):hover{background:var(--color-danger-700)}.btn-danger:not(:disabled):active{background:var(--color-danger-active)}.btn-link{height:auto;padding:0;background:none;color:var(--color-brand-600);text-decoration:underline;text-underline-offset:3px;border-radius:var(--radius-sm)}.btn-link:not(:disabled):hover{color:var(--color-brand-700)}.btn-link:disabled{background:none;border-color:transparent}.btn-spinner{width:16px;height:16px;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:var(--radius-full);animation:btn-spin .7s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.btn-spinner{animation-duration:1.2s}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);color:var(--color-text-secondary);transition:background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.icon-btn:hover{background:var(--color-bg-subtle);color:var(--color-text-primary)}.icon-btn:active{background:var(--color-bg-active)}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);line-height:1.4}.field-required{color:var(--color-danger-600);margin-left:2px}.input,.textarea,.select{width:100%;min-height:40px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-bg-surface);color:var(--color-text-primary);font-size:var(--text-base);line-height:1.5;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.textarea{min-height:120px;padding:var(--space-3);resize:vertical}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238A877F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-3) center;padding-right:var(--space-10);cursor:pointer}.input::placeholder,.textarea::placeholder{color:var(--color-text-disabled)}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--color-brand-600);box-shadow:var(--ring-brand)}.input[aria-invalid=true],.textarea[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--color-danger-600)}.input[aria-invalid=true]:focus,.textarea[aria-invalid=true]:focus,.select[aria-invalid=true]:focus{box-shadow:var(--ring-danger)}.input:disabled,.textarea:disabled,.select:disabled{background:var(--color-bg-subtle);color:var(--color-text-disabled);cursor:not-allowed}.field-error{font-size:var(--text-sm);line-height:1.5;color:var(--color-danger-700)}.field-hint{font-size:var(--text-sm);line-height:1.5;color:var(--color-text-tertiary)}.search-input-wrap{position:relative;display:flex;align-items:center}.search-input-wrap .search-input-icon{position:absolute;left:var(--space-3);color:var(--color-text-tertiary);pointer-events:none}.search-input{border-radius:var(--radius-full);padding-left:var(--space-10)}.input-with-suffix{position:relative}.input-suffix-btn{position:absolute;right:2px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--color-text-tertiary)}.input-suffix-btn:hover{background:var(--color-bg-subtle);color:var(--color-text-secondary)}.form-error-bar{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-danger-50);border:1px solid var(--color-danger-600);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.6;color:var(--color-danger-700)}.form-error-bar .form-error-bar-icon{flex:none;margin-top:2px}.form-success-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-success-50);border:1px solid var(--color-success-600);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.6;color:var(--color-success-600)}@media(max-width:767px){.input,.textarea,.select{font-size:var(--text-md)}}.card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6)}.card-interactive{transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}@media(hover:hover){.card-interactive:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}}.tag{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--radius-full);background:var(--color-brand-50);color:var(--color-brand-700);font-size:var(--text-sm);font-weight:500;line-height:1;transition:background-color var(--duration-fast) var(--ease-out)}button.tag,a.tag{cursor:pointer}@media(hover:hover){button.tag:hover,a.tag:hover{background:var(--color-brand-100)}}.tag-selected{background:var(--color-brand-600);color:var(--color-text-on-brand)}@media(hover:hover){.tag-selected:hover{background:var(--color-brand-600)}}.badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;line-height:1;white-space:nowrap}.badge-draft{background:var(--color-bg-subtle);color:var(--color-text-secondary);border:1px solid var(--color-border)}.badge-published{background:var(--color-success-50);color:var(--color-success-badge-text)}.badge-private{background:var(--color-warning-50);color:var(--color-warning-badge-text)}.badge-ai{background:var(--color-accent-100);color:var(--color-accent-700)}.avatar{border-radius:var(--radius-full);object-fit:cover;background:var(--color-brand-50);color:var(--color-brand-700);font-family:var(--font-serif);font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex:none;overflow:hidden}.avatar-24{width:24px;height:24px;font-size:var(--text-xs)}.avatar-32{width:32px;height:32px;font-size:var(--text-sm)}.avatar-40{width:40px;height:40px;font-size:var(--text-base)}.avatar-64{width:64px;height:64px;font-size:var(--text-2xl)}.navbar{position:sticky;top:0;z-index:50;height:var(--nav-height);background:var(--color-bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.navbar-inner{max-width:var(--container-max);height:100%;margin-inline:auto;padding-inline:var(--space-6);display:flex;align-items:center;gap:var(--space-6)}@media(max-width:639px){.navbar-inner{padding-inline:var(--space-4)}}.navbar-logo{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--text-xl);font-weight:700;letter-spacing:.02em;color:var(--color-text-primary);flex:none}.navbar-logo:hover{color:var(--color-text-primary)}.navbar-logo-dot{width:8px;height:8px;border-radius:2px;background:var(--color-brand-600);flex:none}.navbar-links{display:flex;align-items:center;gap:var(--space-2);height:100%}.navbar-link{position:relative;display:inline-flex;align-items:center;height:100%;padding:0 var(--space-3);font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);transition:color var(--duration-fast) var(--ease-out)}.navbar-link:hover{color:var(--color-text-primary)}.navbar-link-active{color:var(--color-brand-600)}.navbar-link-active:after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:0;height:2px;background:var(--color-brand-600);border-radius:2px 2px 0 0}.navbar-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.navbar-hamburger{display:none}@media(max-width:639px){.navbar-links,.navbar-desktop-actions{display:none}.navbar-hamburger{display:inline-flex}}.user-menu-wrap{position:relative}.user-menu-trigger{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:2px;transition:box-shadow var(--duration-fast) var(--ease-out)}.user-menu-trigger:hover{box-shadow:0 0 0 2px var(--color-brand-100)}.dropdown-menu{position:absolute;top:calc(100% + var(--space-2));right:0;min-width:180px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-1);z-index:60;animation:dropdown-in var(--duration-fast) var(--ease-out)}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.dropdown-menu{animation:none}}.dropdown-item{display:flex;align-items:center;gap:var(--space-2);width:100%;height:36px;padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--color-text-primary);text-align:left;transition:background-color var(--duration-fast) var(--ease-out)}.dropdown-item:hover,.dropdown-item:focus-visible{background:var(--color-bg-subtle)}.dropdown-divider{height:1px;margin:var(--space-1) 0;background:var(--color-border)}.dropdown-item-danger{color:var(--color-danger-700)}.drawer-overlay{position:fixed;inset:0;z-index:90;background:#1c1b1866;animation:fade-in var(--duration-fast) var(--ease-out)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;bottom:0;z-index:100;width:280px;max-width:85vw;background:var(--color-bg-surface);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;padding:var(--space-4);animation:drawer-in var(--duration-base) var(--ease-out)}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.drawer,.drawer-overlay{animation:none}}.drawer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.drawer-title{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:700}.drawer-nav{display:flex;flex-direction:column;gap:var(--space-1)}.drawer-link{display:flex;align-items:center;gap:var(--space-3);min-height:48px;padding:0 var(--space-3);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:500;color:var(--color-text-primary);transition:background-color var(--duration-fast) var(--ease-out)}.drawer-link:hover{background:var(--color-bg-subtle)}.drawer-link-active{color:var(--color-brand-600);background:var(--color-brand-50)}.guest-chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 11px;border-radius:var(--radius-full);border:1px solid rgba(227,183,120,.34);background:#e3b77814;color:var(--color-accent-500);font-size:var(--text-xs);letter-spacing:.08em;cursor:pointer;transition:border-color .16s var(--ease-out),background .16s var(--ease-out)}.guest-chip:hover{border-color:var(--color-accent-500);background:#e3b77829}.drawer-guest-note{display:flex;align-items:center;gap:8px;margin-top:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);border:1px dashed var(--color-border-strong);font-size:var(--text-sm);color:var(--color-text-tertiary)}.drawer-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-2)}.search-overlay{position:absolute;top:calc(100% - var(--space-2));left:50%;transform:translate(-50%);width:min(420px,calc(100vw - 48px));background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-3);z-index:60}.search-overlay-form{display:flex;gap:var(--space-2)}.article-grid{display:grid;grid-template-columns:1fr;gap:var(--space-6)}@media(min-width:640px){.article-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1200px){.article-grid-3{grid-template-columns:repeat(3,1fr)}}.article-card{display:flex;flex-direction:column;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}@media(hover:hover){.article-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}}.article-card-cover{aspect-ratio:16 / 10;background:var(--color-bg-subtle);overflow:hidden}.article-card-cover img{width:100%;height:100%;object-fit:cover}.article-card-body{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-6) var(--space-6);flex:1}.article-card-meta{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-tertiary)}.article-card-title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:600;line-height:1.35;letter-spacing:.02em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-card-title a{color:var(--color-text-primary)}.article-card-title a:hover{color:var(--color-brand-600)}.article-card-excerpt{font-size:var(--text-base);line-height:1.6;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-card-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border);display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-tertiary)}.article-card-footer .author-name{color:var(--color-text-secondary);font-weight:500}.featured-card{display:grid;grid-template-columns:1fr;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}@media(min-width:768px){.featured-card{grid-template-columns:5fr 7fr}}@media(hover:hover){.featured-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}}.featured-card-cover{min-height:200px;background:var(--color-bg-subtle)}@media(min-width:768px){.featured-card-cover{min-height:260px}}.featured-card-cover img{width:100%;height:100%;object-fit:cover}.featured-card-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);justify-content:center}.featured-card-title{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:600;line-height:1.3;letter-spacing:.02em}.featured-card-title a{color:var(--color-text-primary)}.featured-card-title a:hover{color:var(--color-brand-600)}.featured-card-excerpt{font-size:var(--text-lg);line-height:1.6;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.compact-list{display:flex;flex-direction:column}.compact-item{display:flex;align-items:center;gap:var(--space-4);min-height:56px;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);transition:background-color var(--duration-fast) var(--ease-out)}.compact-item:last-child{border-bottom:none}.compact-item:hover{background:var(--color-bg-subtle)}.compact-item-title{font-family:var(--font-serif);font-size:var(--text-xl);font-weight:500;color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-item-title:hover{color:var(--color-brand-600)}.compact-item-meta{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-tertiary);flex:none}.compact-item-actions{display:flex;align-items:center;gap:var(--space-1);flex:none}@media(max-width:767px){.compact-item{flex-wrap:wrap}.compact-item-meta .hide-mobile{display:none}}.empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-16) var(--space-4);text-align:center}.empty-state-icon{color:var(--color-text-tertiary)}.empty-state-title{font-size:var(--text-md);font-weight:500;color:var(--color-text-secondary)}.empty-state-desc{font-size:var(--text-base);color:var(--color-text-tertiary);max-width:420px}.skeleton-card{display:flex;flex-direction:column;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.skeleton-cover{aspect-ratio:16 / 10}.skeleton-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-6) var(--space-6)}.skeleton-line{height:14px}.skeleton-line-lg{height:20px}.modal-overlay{position:fixed;inset:0;z-index:110;background:#1c1b1866;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fade-in var(--duration-fast) var(--ease-out);overflow-y:auto}.modal{width:100%;max-width:480px;background:var(--color-bg-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:modal-in var(--duration-base) var(--ease-out);display:flex;flex-direction:column;max-height:calc(100vh - var(--space-8))}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.modal,.modal-overlay{animation:none}}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-6) var(--space-6) 0}.modal-title{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:600;letter-spacing:.02em}.modal-body{padding:var(--space-6);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-5)}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6) var(--space-6)}.modal-text{font-size:var(--text-base);line-height:1.7;color:var(--color-text-secondary)}.toast{position:fixed;z-index:200;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:var(--text-base);color:var(--color-text-primary);animation:toast-in var(--duration-base) var(--ease-out)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}@media(min-width:768px){.toast{right:var(--space-6);bottom:var(--space-6)}}@media(max-width:767px){.toast{left:50%;transform:translate(-50%);bottom:calc(var(--space-6) + env(safe-area-inset-bottom,0px));max-width:calc(100vw - 32px)}}.toast-icon-success{color:var(--color-success-600)}.toast-icon-error{color:var(--color-danger-600)}.toast-icon-info{color:var(--color-brand-600)}.footer{border-top:1px solid var(--color-border);padding:var(--space-12) 0 var(--space-8);margin-top:var(--space-16)}.footer-grid{display:grid;grid-template-columns:1fr;gap:var(--space-8)}@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr}}.footer-brand{display:flex;flex-direction:column;gap:var(--space-3)}.footer-brand-name{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--text-lg);font-weight:700}.footer-brand-desc{font-size:var(--text-sm);color:var(--color-text-secondary);max-width:320px;line-height:1.7}.footer-col-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.footer-col-list{display:flex;flex-direction:column;gap:var(--space-2)}.footer-col-list a,.footer-col-list button{font-size:var(--text-sm);color:var(--color-text-secondary);text-align:left}.footer-col-list a:hover,.footer-col-list button:hover{color:var(--color-brand-600)}.footer-bottom{margin-top:var(--space-8);padding-top:var(--space-8);border-top:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-tertiary)}.footer-dot{margin:0 .5em;opacity:.55}.footer-icp{color:inherit;text-decoration:none;white-space:nowrap;border-bottom:1px dotted currentColor;transition:color .15s ease,border-color .15s ease}.footer-icp:hover,.footer-icp:focus-visible{color:var(--color-brand-600);border-bottom-color:var(--color-brand-600)}.footer-privacy{margin-top:var(--space-2);font-size:var(--text-xs);line-height:1.6;color:var(--color-text-tertiary);opacity:.7}.markdown-body{font-family:var(--font-serif);font-size:var(--text-reading);line-height:1.78;color:var(--color-text-primary);word-wrap:break-word}.markdown-body>*+*{margin-top:var(--space-6)}.markdown-body h2,.markdown-body h3,.markdown-body h4{font-family:var(--font-serif);font-weight:600;line-height:1.35;letter-spacing:.02em}.markdown-body h2{font-size:var(--text-2xl);margin-top:var(--space-10)}.markdown-body h3{font-size:var(--text-xl);margin-top:var(--space-8)}.markdown-body h4{font-size:var(--text-lg);margin-top:var(--space-6)}.markdown-body a{text-decoration:underline;text-underline-offset:3px}.markdown-body strong{font-weight:600}.markdown-body ul,.markdown-body ol{padding-left:var(--space-6);margin-top:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2)}.markdown-body ul{list-style:disc}.markdown-body ol{list-style:decimal}.markdown-body li{line-height:1.7}.markdown-body li::marker{color:var(--color-text-tertiary)}.markdown-body blockquote{border-left:3px solid var(--color-brand-600);padding-left:var(--space-4);font-family:var(--font-serif);font-size:var(--text-lg);line-height:1.7;color:var(--color-text-secondary);font-style:normal}.markdown-body blockquote p+p{margin-top:var(--space-4)}.markdown-body :not(pre)>code{font-family:var(--font-mono);font-size:.86em;background:var(--color-bg-subtle);padding:2px 6px;border-radius:var(--radius-sm)}.markdown-body pre{position:relative;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6}.markdown-body pre code{font-family:var(--font-mono);background:none;padding:0;border-radius:0;font-size:inherit}.markdown-body .code-lang{position:absolute;top:var(--space-2);right:var(--space-10);font-family:var(--font-sans);font-size:var(--text-xs);color:var(--color-text-tertiary);user-select:none}.markdown-body .code-copy-btn{position:absolute;top:var(--space-2);right:var(--space-2);width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-text-tertiary);background:var(--color-bg-surface);border:1px solid var(--color-border)}.markdown-body .code-copy-btn:hover{color:var(--color-text-primary);background:var(--color-bg-subtle)}.markdown-body img{border-radius:var(--radius-md);max-width:100%;height:auto}.markdown-body figcaption,.markdown-body .img-caption{font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text-tertiary);text-align:center;margin-top:var(--space-2)}.markdown-body table{width:100%;border-collapse:collapse;font-family:var(--font-sans);font-size:var(--text-base)}.markdown-body th{background:var(--color-bg-subtle);font-weight:500;text-align:left}.markdown-body th,.markdown-body td{padding:10px var(--space-3);border-bottom:1px solid var(--color-border)}.markdown-body hr{border:none;border-top:1px solid var(--color-border);margin-block:var(--space-8)}.hero{padding-block:var(--space-24);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-5)}@media(max-width:639px){.hero{padding-block:var(--space-16)}}.hero-eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-accent-700)}.hero-title{font-family:var(--font-serif);font-size:var(--text-5xl);font-weight:700;line-height:1.25;letter-spacing:.02em;color:var(--color-text-primary);max-width:640px}@media(max-width:639px){.hero-title{font-size:var(--text-4xl)}}.hero-subtitle{font-size:var(--text-lg);line-height:1.7;color:var(--color-text-secondary);max-width:480px}.hero-actions{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.home-featured{margin-bottom:var(--space-12)}.home-layout{display:grid;grid-template-columns:1fr;gap:var(--space-10)}@media(min-width:1024px){.home-layout{grid-template-columns:1fr var(--home-sidebar-width);gap:var(--space-12)}}.home-sidebar{display:flex;flex-direction:column;gap:var(--space-6)}@media(min-width:1024px){.home-sidebar{position:sticky;top:calc(var(--nav-height) + var(--space-8));align-self:start;max-height:calc(100vh - var(--nav-height) - var(--space-12));overflow-y:auto}}.sidebar-card{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6)}.sidebar-card-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary);margin-bottom:var(--space-4)}.sidebar-cat-list{display:flex;flex-direction:column;gap:var(--space-1)}.sidebar-cat-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-base);color:var(--color-text-primary);transition:background-color var(--duration-fast) var(--ease-out)}.sidebar-cat-item:hover{background:var(--color-bg-subtle)}.sidebar-cat-count{font-size:var(--text-sm);color:var(--color-text-tertiary)}.sidebar-tag-cloud{display:flex;flex-wrap:wrap;gap:var(--space-2)}.subscribe-card{background:var(--color-brand-50);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}.subscribe-card-title{font-family:var(--font-serif);font-size:var(--text-lg);font-weight:600}.subscribe-card-desc{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.6}.load-more-wrap{display:flex;justify-content:center;margin-top:var(--space-10)}.article-detail{padding-block:var(--space-8) var(--space-12)}.article-detail-back{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-6)}.article-detail-back:hover{color:var(--color-brand-600)}.article-detail-head{max-width:var(--reading-width)}.article-detail-title{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;font-family:var(--font-serif);font-size:var(--text-4xl);font-weight:700;line-height:1.3;letter-spacing:.02em;color:var(--color-text-primary)}.article-detail-meta{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-5);font-size:var(--text-sm);color:var(--color-text-tertiary)}.article-detail-meta .author-name{font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary)}.article-detail-cover{margin-top:var(--space-8);border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:2 / 1;background:var(--color-bg-subtle);max-width:var(--reading-width)}.article-detail-cover img{width:100%;height:100%;object-fit:cover}.article-detail-content{max-width:var(--reading-width);margin-top:var(--space-10)}.article-detail-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-10)}.author-card{display:flex;gap:var(--space-4);background:var(--color-bg-subtle);border-radius:var(--radius-lg);padding:var(--space-6);margin-top:var(--space-10);max-width:var(--reading-width)}.author-card-body{display:flex;flex-direction:column;gap:var(--space-2);flex:1}.author-card-name{font-size:var(--text-md);font-weight:600}.author-card-bio{font-size:var(--text-base);color:var(--color-text-secondary);line-height:1.7}.prev-next{display:grid;grid-template-columns:1fr;gap:var(--space-4);margin-top:var(--space-10);max-width:var(--reading-width)}@media(min-width:640px){.prev-next{grid-template-columns:1fr 1fr}}.prev-next-item{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}@media(hover:hover){.prev-next-item:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}}.prev-next-item.next{text-align:right}.prev-next-label{font-size:var(--text-sm);color:var(--color-text-tertiary)}.prev-next-title{font-family:var(--font-serif);font-size:var(--text-base);font-weight:500;color:var(--color-text-primary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.prev-next-item:hover .prev-next-title{color:var(--color-brand-600)}.related-list{display:grid;grid-template-columns:1fr;gap:var(--space-6);margin-top:var(--space-6)}@media(min-width:640px){.related-list{grid-template-columns:repeat(2,1fr)}}.article-toc{display:none}@media(min-width:1280px){.article-toc{display:block;position:fixed;top:calc(var(--nav-height) + var(--space-8));right:var(--space-12);width:240px;max-height:calc(100vh - var(--nav-height) - var(--space-16));overflow-y:auto}}.toc-title{font-size:var(--text-sm);font-weight:500;color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.toc-list{display:flex;flex-direction:column;gap:var(--space-1)}.toc-item{font-size:var(--text-sm);line-height:1.5;color:var(--color-text-secondary);text-align:left;padding:var(--space-1) 0;border-left:2px solid transparent;padding-left:var(--space-3);transition:color var(--duration-fast) var(--ease-out)}.toc-item:hover{color:var(--color-text-primary)}.toc-item-active{color:var(--color-brand-600);border-left-color:var(--color-brand-600)}.toc-item-h3{padding-left:var(--space-6)}.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr}@media(min-width:768px){.auth-page{grid-template-columns:44% 56%}}.auth-brand{display:none;position:relative;overflow:hidden;background:radial-gradient(58% 44% at 16% 10%,rgba(227,183,120,.16),transparent 70%),radial-gradient(72% 62% at 92% 16%,rgba(142,107,255,.42),transparent 72%),radial-gradient(92% 72% at 50% 100%,rgba(78,40,191,.62),transparent 76%),#14102a;color:var(--color-text-on-brand);padding:var(--space-12);flex-direction:column;justify-content:space-between}.auth-brand:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.7;background-image:radial-gradient(1.4px 1.4px at 18% 22%,rgba(255,255,255,.75),transparent),radial-gradient(1.2px 1.2px at 34% 12%,rgba(255,255,255,.55),transparent),radial-gradient(1.6px 1.6px at 62% 30%,rgba(255,255,255,.65),transparent),radial-gradient(1.1px 1.1px at 78% 14%,rgba(255,255,255,.5),transparent),radial-gradient(1.3px 1.3px at 12% 58%,rgba(255,255,255,.45),transparent),radial-gradient(1.5px 1.5px at 46% 68%,rgba(255,255,255,.5),transparent),radial-gradient(1.1px 1.1px at 86% 62%,rgba(255,255,255,.4),transparent),radial-gradient(1.2px 1.2px at 26% 86%,rgba(255,255,255,.38),transparent)}.auth-brand:after{content:"";position:absolute;right:-190px;bottom:-170px;width:520px;height:520px;border-radius:50%;border:1px solid rgba(227,183,120,.18);box-shadow:inset 0 0 120px #7a4dff47,0 0 80px #7a4dff29;pointer-events:none}.auth-brand>div{position:relative;z-index:1}@media(min-width:768px){.auth-brand{display:flex;position:sticky;top:0;height:100vh}}.auth-brand-name{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:700;letter-spacing:.02em}.auth-brand-dot{width:10px;height:10px;border-radius:2px;background:var(--color-text-on-brand)}.auth-brand-slogan{font-size:var(--text-md);line-height:1.8;color:#ffffffb8;margin-top:var(--space-4)}.auth-brand-quote{font-family:var(--font-serif);font-size:var(--text-lg);line-height:1.8;color:#ffffff8c;border-left:2px solid rgba(255,255,255,.35);padding-left:var(--space-4)}.auth-brand-version{font-size:var(--text-xs);color:#ffffff80;margin-top:var(--space-4)}.auth-brand-mobile{display:flex;align-items:center;justify-content:center;gap:var(--space-2);height:96px;background:var(--color-brand-800);color:var(--color-text-on-brand);font-family:var(--font-serif);font-size:var(--text-xl);font-weight:700;letter-spacing:.02em}@media(min-width:768px){.auth-brand-mobile{display:none}}.auth-form-wrap{display:flex;align-items:center;justify-content:center;padding:var(--space-8) var(--space-4)}.auth-form-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:var(--space-5)}.auth-title{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:600;letter-spacing:.02em;line-height:1.35}.auth-subtitle{font-size:var(--text-base);line-height:1.7;color:var(--color-text-secondary);margin-top:var(--space-2)}.auth-otp-hint{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.7;background:var(--color-bg-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.auth-switch,.auth-resend{font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-subtle)}.auth-tab{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;border:0;border-radius:var(--radius-full);background:transparent;color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;transition:color .16s var(--ease-out),background .16s var(--ease-out)}.auth-tab:hover{color:var(--color-text-primary);background:#ffffff0a}.auth-tab-active,.auth-tab-active:hover{background:var(--grad-brand);color:var(--color-text-on-brand);box-shadow:0 4px 18px #7a4dff59}.auth-back{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:0;border:0;background:none;color:var(--color-text-tertiary);font-size:var(--text-sm);cursor:pointer;transition:color .16s var(--ease-out)}.auth-back:hover{color:var(--color-accent-500)}.auth-links{display:flex;justify-content:center}.auth-links .btn-link{display:inline-flex;align-items:center;gap:6px}.auth-agree{display:flex;align-items:flex-start;gap:8px;margin-top:14px;font-size:var(--text-sm);line-height:1.6;color:var(--color-text-secondary);cursor:pointer}.auth-agree input{flex:none;width:15px;height:15px;margin:2px 0 0;accent-color:var(--color-accent-500);cursor:pointer}.auth-agree a{color:var(--color-accent-500)}.auth-guest{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4);text-align:center;border-radius:var(--radius-lg);border:1px dashed var(--color-border-strong);background:#7a4dff0f}.auth-guest-text{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--color-text-secondary)}.auth-guest-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:var(--radius-full);border:1px solid rgba(227,183,120,.4);background:transparent;color:var(--color-accent-500);font-size:var(--text-sm);cursor:pointer;transition:background .18s var(--ease-out),border-color .18s var(--ease-out),box-shadow .18s var(--ease-out)}.auth-guest-btn:hover{background:#e3b7781a;border-color:var(--color-accent-500);box-shadow:var(--glow-gold)}.auth-guest-btn:focus-visible{outline:none;box-shadow:var(--ring-brand)}.auth-guest-note{margin:0;font-size:var(--text-xs);line-height:1.6;color:var(--color-text-tertiary)}.editor-page{display:flex;flex-direction:column;min-height:100vh}.editor-toolbar{position:sticky;top:0;z-index:40;min-height:56px;display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--color-bg-glass-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border)}.editor-title-input{flex:1;min-width:0;height:40px;border:none;background:transparent;font-family:var(--font-serif);font-size:var(--text-lg);font-weight:600;padding:0 var(--space-2);border-radius:var(--radius-sm)}.editor-title-input::placeholder{color:var(--color-text-disabled);font-weight:400}.editor-title-input:focus-visible{box-shadow:var(--ring-brand)}.editor-save-status{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--color-text-tertiary);white-space:nowrap}.editor-save-status .status-dot{width:6px;height:6px;border-radius:var(--radius-full);background:var(--color-text-tertiary);flex:none}.editor-save-status-saving{color:var(--color-text-secondary)}.editor-save-status-saved-flash{color:var(--color-brand-600);transition:color var(--duration-base) var(--ease-out)}.editor-save-status-error{color:var(--color-danger-700);font-weight:500}.editor-save-status-offline{color:var(--color-warning-600)}.editor-save-retry{cursor:pointer;text-decoration:underline;text-underline-offset:3px}.editor-body{flex:1;display:grid;grid-template-columns:1fr}@media(min-width:1024px){.editor-body{grid-template-columns:var(--sidebar-width) minmax(0,1fr) var(--ai-panel-width)}}@media(min-width:640px)and (max-width:1023px){.editor-body{grid-template-columns:var(--sidebar-width) minmax(0,1fr)}}.editor-sidebar{display:none;border-right:1px solid var(--color-border);padding:var(--space-5);overflow-y:auto;flex-direction:column;gap:var(--space-5)}@media(min-width:640px){.editor-sidebar{display:flex}}.editor-sidebar-collapsed{display:none!important}.editor-sidebar-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary)}.editor-sidebar-section{display:flex;flex-direction:column;gap:var(--space-3)}.editor-main{display:flex;flex-direction:column;min-width:0;overflow:hidden}.editor-tabs{display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-4) 0;border-bottom:1px solid var(--color-border)}@media(min-width:1024px){.editor-tabs{display:none}}.editor-tab{min-height:40px;padding:0 var(--space-4);font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px}.editor-tab-active{color:var(--color-brand-600);border-bottom-color:var(--color-brand-600)}.editor-panes{flex:1;display:flex;min-height:0}.editor-pane{flex:1;min-width:0;overflow-y:auto;padding:var(--space-6);display:flex;flex-direction:column}@media(min-width:1024px){.editor-pane-edit{border-right:1px solid var(--color-border)}}.editor-pane-inner{max-width:var(--reading-width);width:100%;margin-inline:auto;flex:1;display:flex;flex-direction:column}.editor-textarea{flex:1;width:100%;min-height:50vh;border:none;background:transparent;resize:none;font-family:var(--font-mono);font-size:var(--text-base);line-height:1.7;padding:0;color:var(--color-text-primary)}.editor-textarea:focus-visible{box-shadow:none;outline:none}.editor-preview{flex:1}.editor-statusbar{display:flex;align-items:center;gap:var(--space-4);height:32px;padding:0 var(--space-4);border-top:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-tertiary);background:var(--color-bg-surface);white-space:nowrap;overflow-x:auto}.editor-statusbar .status-save{margin-left:auto}.editor-offline-banner{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-warning-50);border-bottom:1px solid var(--color-warning-600);font-size:var(--text-sm);color:var(--color-warning-badge-text)}.cover-dropzone{aspect-ratio:16 / 10;border:1.5px dashed var(--color-brand-200);background:var(--color-brand-50);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);text-align:center;padding:var(--space-4);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out);position:relative;overflow:hidden}.cover-dropzone:hover,.cover-dropzone-dragover{border-color:var(--color-brand-500);background:var(--color-brand-100)}.cover-dropzone-error{border-color:var(--color-danger-600);background:var(--color-danger-50)}.cover-dropzone-has-image{border-style:solid;border-color:var(--color-border);background:var(--color-bg-subtle);padding:0}.cover-dropzone-has-image img{width:100%;height:100%;object-fit:cover}.cover-progress{position:absolute;inset:0;background:var(--color-bg-glass);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2)}.cover-progress-bar{width:60%;height:6px;border-radius:var(--radius-full);background:var(--color-border);overflow:hidden}.cover-progress-fill{height:100%;background:var(--color-brand-600);border-radius:var(--radius-full);transition:width var(--duration-fast) linear}.cover-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.cover-thumb{width:96px;aspect-ratio:16 / 10;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-subtle);flex:none}.cover-thumb img{width:100%;height:100%;object-fit:cover}.ai-panel{display:none;border-left:1px solid var(--color-border);flex-direction:column;min-height:0;background:var(--color-bg-surface)}@media(min-width:1024px){.ai-panel{display:flex}}.ai-panel-collapsed{display:none!important}.ai-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.ai-panel-title{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:600;color:var(--color-accent-700)}.ai-panel-body{flex:1;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.ai-action-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1);width:100%;text-align:left;padding:var(--space-4);background:var(--color-accent-100);border:1px solid rgba(195,98,60,.3);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out)}.ai-action-card:not(:disabled):hover{border-color:var(--color-accent-500)}.ai-action-card:disabled{opacity:.55;cursor:not-allowed}.ai-action-name{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:600;color:var(--color-accent-700)}.ai-action-desc{font-size:var(--text-sm);line-height:1.6;color:var(--color-text-secondary)}.ai-generating{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-bg-subtle);border-radius:var(--radius-md)}.ai-generating-label{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.ai-skeleton-line{height:14px}.ai-result-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-surface)}.ai-result-preview{font-family:var(--font-serif);font-size:var(--text-lg);line-height:1.7;color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word;max-height:280px;overflow-y:auto}.ai-result-context{font-size:var(--text-sm);color:var(--color-text-tertiary);line-height:1.6;border-left:2px solid var(--color-border);padding-left:var(--space-3)}.ai-result-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.ai-error-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--color-danger-50);border:1px solid var(--color-danger-600);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-danger-700);line-height:1.6}.ai-inserted-hint{font-size:var(--text-sm);color:var(--color-success-600)}.ai-diff-old{color:var(--color-danger-600);text-decoration:line-through;text-decoration-color:#bf3a2b99}.ai-diff-new{color:var(--color-success-600);text-decoration:underline;text-decoration-color:#317d5073;text-underline-offset:3px}.ai-drawer{position:fixed;left:0;right:0;bottom:0;z-index:100;height:60vh;background:var(--color-bg-surface);border-top:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:sheet-in var(--duration-base) var(--ease-out)}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ai-drawer{animation:none}}@media(min-width:1024px){.ai-drawer{display:none}}.me-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-6)}.me-tabs{display:flex;align-items:center;gap:var(--space-1);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-6)}.me-tab{position:relative;display:inline-flex;align-items:center;gap:var(--space-2);min-height:40px;padding:0 var(--space-4);font-size:var(--text-base);font-weight:500;color:var(--color-text-secondary);margin-bottom:-1px;border-bottom:2px solid transparent}.me-tab:hover{color:var(--color-text-primary)}.me-tab-active{color:var(--color-brand-600);border-bottom-color:var(--color-brand-600)}.me-tab-count{font-size:var(--text-sm);color:var(--color-text-tertiary)}.me-list{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:visible}.profile-card{max-width:560px;display:flex;flex-direction:column;gap:var(--space-6)}.avatar-upload{display:flex;align-items:center;gap:var(--space-4)}.avatar-upload-actions{display:flex;flex-direction:column;gap:var(--space-2)}.notfound-page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:60vh;text-align:center;padding:var(--space-8)}.notfound-title{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:600}.notfound-desc{font-size:var(--text-base);color:var(--color-text-secondary)}.page-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-16) var(--space-4);text-align:center}.page-error-icon{color:var(--color-text-tertiary)}.page-error-title{font-size:var(--text-md);font-weight:500;color:var(--color-text-secondary)}.tag-input-row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.tag-pill{display:inline-flex;align-items:center;gap:var(--space-1);height:28px;padding:0 var(--space-2) 0 var(--space-3);background:var(--color-brand-50);color:var(--color-brand-700);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500}.tag-pill-remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full);color:var(--color-brand-700)}.tag-pill-remove:hover{background:var(--color-brand-100)}.radio-group{display:flex;flex-direction:column;gap:var(--space-2)}.radio-item{display:flex;align-items:center;gap:var(--space-2);min-height:36px;cursor:pointer;font-size:var(--text-base)}.radio-item input{accent-color:var(--color-brand-600);width:16px;height:16px}.spin-icon{animation:btn-spin .9s linear infinite}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-sm{font-size:var(--text-sm)}.flex{display:flex}.items-center{align-items:center}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.flex-wrap{flex-wrap:wrap}.flex-col{flex-direction:column}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.w-full{width:100%}@media(max-width:639px){.hide-mobile{display:none!important}}@media(min-width:1024px){.hide-lg{display:none!important}}@media(min-width:640px){.only-mobile{display:none!important}}.music-btn{position:relative;color:var(--color-text-secondary);transition:color var(--duration-fast) var(--ease-out)}.music-btn.is-on{color:var(--color-accent-500)}.music-bars{position:absolute;right:3px;bottom:3px;display:flex;align-items:flex-end;gap:1.5px;height:8px;pointer-events:none}.music-bars i{display:block;width:2px;border-radius:1px;background:currentColor;transform-origin:bottom;animation:music-bar 1.1s var(--ease-soft) infinite}.music-bars i:nth-child(1){height:4px;animation-delay:0s}.music-bars i:nth-child(2){height:7px;animation-delay:.18s}.music-bars i:nth-child(3){height:5px;animation-delay:.36s}@keyframes music-bar{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1)}}.drawer-music{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text-secondary)}@media(prefers-reduced-motion:reduce){.music-bars i{animation:none}}.home-feature{margin-bottom:var(--space-12)}.feature-card{display:grid;grid-template-columns:1.15fr .85fr;gap:var(--space-8);align-items:center;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-sm)}@media(max-width:767px){.feature-card{grid-template-columns:1fr;gap:var(--space-6);padding:var(--space-6)}}.feature-card-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent-700);margin-bottom:var(--space-3)}.feature-card-title{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:600;line-height:1.35;letter-spacing:.02em;color:var(--color-text-primary);margin-bottom:var(--space-3)}.feature-card-desc{font-size:var(--text-base);line-height:1.7;color:var(--color-text-secondary);margin-bottom:var(--space-5);max-width:460px}.feature-card-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.feature-chip{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;padding:6px 10px;border-radius:var(--radius-md);background:var(--color-brand-50);color:var(--color-brand-700);border:1px solid var(--color-brand-100)}.mbti-intro{max-width:560px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-5);padding-block:var(--space-12)}.mbti-intro-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent-700)}.mbti-intro-title{font-family:var(--font-serif);font-size:var(--text-4xl);font-weight:700;line-height:1.3;letter-spacing:.02em;color:var(--color-text-primary)}.mbti-intro-desc{font-size:var(--text-md);line-height:1.8;color:var(--color-text-secondary)}.mbti-intro-tip{font-size:var(--text-sm);color:var(--color-text-tertiary);background:var(--color-bg-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.mbti-intro-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}.mbti-quiz{max-width:640px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-8);padding-block:var(--space-8)}.mbti-progress{display:flex;align-items:center;gap:var(--space-3)}.mbti-progress-bar{flex:1;height:8px;background:var(--color-bg-subtle);border-radius:var(--radius-full);overflow:hidden}.mbti-progress-bar span{display:block;height:100%;background:var(--color-brand-600);border-radius:var(--radius-full);transition:width var(--duration-base) var(--ease-out)}.mbti-progress-text{font-size:var(--text-sm);color:var(--color-text-tertiary);flex:none}.mbti-question-dim{font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;color:var(--color-accent-700);margin-bottom:var(--space-3)}.mbti-question-text{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:600;line-height:1.5;letter-spacing:.01em;color:var(--color-text-primary)}.mbti-scale{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-2)}.mbti-scale-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--space-4) var(--space-2);min-height:84px;background:var(--color-bg-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-secondary);transition:border-color var(--duration-fast) var(--ease-out),background-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.mbti-scale-btn:hover{border-color:var(--color-brand-500)}.mbti-scale-btn-active{border-color:var(--color-brand-600);background:var(--color-brand-50);color:var(--color-brand-700);box-shadow:var(--ring-brand)}.mbti-scale-num{font-size:var(--text-md);font-weight:700}.mbti-scale-label{font-size:var(--text-sm);text-align:center;line-height:1.3}.mbti-scale-check{color:var(--color-accent-500);opacity:0;transition:opacity var(--duration-fast) var(--ease-out)}.mbti-scale-btn-active .mbti-scale-check{opacity:1}.mbti-scale-ends{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-tertiary)}.mbti-quiz-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.mbti-result{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6);padding-block:var(--space-8)}.mbti-result-head{display:flex;align-items:center;gap:var(--space-5)}.mbti-result-emoji{font-size:56px;line-height:1;flex:none}.mbti-result-code{font-family:var(--font-mono);font-size:var(--text-lg);font-weight:700;letter-spacing:.1em;color:var(--color-accent-700)}.mbti-result-name{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:700;line-height:1.2;color:var(--color-text-primary)}.mbti-result-tagline{font-size:var(--text-md);color:var(--color-text-secondary);margin-top:2px}.mbti-result-desc{font-size:var(--text-md);line-height:1.8;color:var(--color-text-secondary)}.mbti-dimensions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}@media(max-width:639px){.mbti-dimensions{grid-template-columns:1fr}}.mbti-dimension-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.mbti-dimension-poles{display:flex;align-items:center;justify-content:space-between;font-size:var(--text-base);color:var(--color-text-secondary)}.mbti-pole-winner{color:var(--color-brand-700);font-weight:600}.mbti-dimension-pct{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-tertiary);margin-left:var(--space-2)}.mbti-result-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}@media(max-width:767px){.mbti-result-cols{grid-template-columns:1fr}}.mbti-col-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.mbti-tag-list{display:flex;flex-wrap:wrap;gap:var(--space-2)}.mbti-guest-note{display:flex;flex-direction:column;gap:var(--space-3);align-items:flex-start;font-size:var(--text-base);color:var(--color-text-secondary)}.mbti-result-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;padding-top:var(--space-2)}.mbti-page{position:relative}.mbti-page>.container{position:relative;z-index:1}.mbti-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.mbti-bg-star{position:absolute;display:block;width:4px;height:4px;background:var(--color-accent-500);opacity:.55;animation:mbtiStarBlink 5.2s steps(2,end) infinite}.mbti-bg-star:nth-child(1){left:10%;top:16%}.mbti-bg-star:nth-child(2){right:14%;top:24%;width:6px;height:6px;animation-delay:1.7s}.mbti-bg-star:nth-child(3){right:22%;bottom:14%;animation-delay:3.4s}@keyframes mbtiStarBlink{0%,to{opacity:.55}50%{opacity:.15}}.mbti-emblem{--px-1: var(--color-brand-500);--px-2: var(--color-accent-500);--px-3: var(--color-brand-700);display:flex;align-items:center;gap:14px;flex:none}.mbti-emblem-marks{display:grid;gap:6px}.mbti-emblem-marks i{display:block;width:12px;height:12px}.mbti-emblem-marks i.is-on{background:var(--color-brand-500)}.mbti-emblem-marks i.is-off{border:2px solid var(--color-border-strong)}.mbti-emblem-marks i.is-half{background:var(--color-border-strong)}.mbti-dimension-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.mbti-band{flex:none;font-size:var(--text-xs);font-weight:600;line-height:1.7;padding:0 var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-tertiary);white-space:nowrap}.mbti-band-clear{color:var(--color-brand-700);border-color:var(--color-brand-600);background:var(--color-brand-50)}.mbti-band-lean{color:var(--color-accent-700)}.mbti-band-edge{color:var(--color-text-secondary)}.mbti-band-split{color:var(--color-text-tertiary);border-style:dashed}.mbti-meter{position:relative;display:grid;grid-template-columns:repeat(20,1fr);gap:2px;height:12px;margin:var(--space-2) 0}.mbti-meter-cell{display:block;height:100%}.mbti-meter-cell.is-left{background:var(--color-brand-500)}.mbti-meter-cell.is-right{background:var(--color-accent-500)}.mbti-meter-mid{position:absolute;left:50%;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--color-border-strong)}.mbti-dimension-note{font-size:var(--text-xs);line-height:1.6;color:var(--color-text-tertiary)}:is(.mbti-intro-title,.mbti-question-text,.mbti-result-name):focus,:is(.mbti-intro-title,.mbti-question-text,.mbti-result-name):focus-visible{outline:none;box-shadow:none}.mbti-gate{max-width:560px;text-align:center}.mbti-gate .mbti-result-desc{text-align:left}.mbti-gate .mbti-result-actions{padding-top:0}.mbti-result-split{margin-left:var(--space-2);font-family:var(--font-sans);font-size:var(--text-xs);font-weight:500;letter-spacing:0;color:var(--color-text-tertiary)}.mbti-result-hint{font-size:var(--text-xs);line-height:1.7;color:var(--color-text-tertiary);text-align:center;margin-top:calc(var(--space-2) * -1)}.mbti-flip-text{font-size:var(--text-sm);line-height:1.9;color:var(--color-text-secondary);text-wrap:pretty}.mbti-next{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding-top:var(--space-3)}.mbti-next-title{font-size:var(--text-xs);letter-spacing:.06em;color:var(--color-text-tertiary)}.mbti-next-links{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center}.mbti-result-disclaimer{font-size:var(--text-xs);line-height:1.7;color:var(--color-text-tertiary);text-align:center}.mbti-share-fallback{font-size:var(--text-sm);line-height:1.7;color:var(--color-text-secondary);background:var(--color-bg-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);white-space:pre-wrap;word-break:break-all;user-select:all}.mbti-intro-disclaimer{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-bottom:6px}.mbti-resume{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;justify-content:center}.mbti-resume-reset{color:var(--color-text-tertiary)}.mbti-history{display:flex;flex-direction:column;align-items:center;gap:6px}.mbti-history-title{font-size:var(--text-xs);letter-spacing:.04em;color:var(--color-text-tertiary)}.mbti-history-list{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;list-style:none;padding:0}.mbti-quiz-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);text-align:center}.mbti-predict{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-tertiary)}.mbti-predict-label{letter-spacing:.08em}.mbti-predict-value{color:var(--color-text-secondary);transition:color var(--duration-fast) var(--ease-out)}.mbti-quiz.is-answered .mbti-predict-value{color:var(--color-accent-700)}.mbti-predict-note{opacity:.75}.mbti-quiz.is-answered .mbti-question:before{background:var(--color-accent-500)}@media(max-width:560px){.mbti-scale{grid-template-columns:1fr}.mbti-scale-btn{flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--space-3);min-height:48px;padding:var(--space-3) var(--space-4)}.mbti-scale-label{text-align:left}.mbti-scale-check{margin-left:auto}.mbti-scale-ends{display:none}}@media(max-width:480px){.mbti-result-head{gap:var(--space-4)}.mbti-emblem svg{width:64px;height:64px}}.admin-page{padding-block:var(--space-10) var(--space-16)}.admin-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-8);padding-bottom:var(--space-5);border-bottom:1px solid var(--color-border)}.admin-eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-xs);letter-spacing:.24em;color:var(--color-accent-500)}.admin-eyebrow:before{content:"";width:18px;height:1px;background:currentColor;opacity:.7}.admin-page-title{margin-top:var(--space-2);font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:700;letter-spacing:.02em;color:var(--color-text-primary)}.admin-page-sub{font-size:var(--text-base);color:var(--color-text-secondary);margin-top:var(--space-2)}.admin-header-actions{display:flex;align-items:center;gap:var(--space-3)}.admin-refreshed{font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.admin-group{margin-bottom:var(--space-6)}.admin-group-title{display:flex;align-items:center;gap:8px;margin-bottom:var(--space-3);font-size:var(--text-sm);font-weight:500;letter-spacing:.12em;color:var(--color-text-tertiary)}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-4)}.admin-stats-3{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}@media(max-width:767px){.admin-stats,.admin-stats-3{grid-template-columns:repeat(2,1fr)}}.admin-stat{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5)}.admin-stat-gold{border-color:#e3b77847;background:linear-gradient(160deg,rgba(227,183,120,.08),transparent 70%)}.admin-stat-gold .admin-stat-icon{color:var(--color-accent-500)}.admin-stat-icon{color:var(--color-brand-600);flex:none;margin-top:3px}.admin-stat-num{font-size:var(--text-2xl);font-weight:700;line-height:1.1;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.admin-stat-unit{margin-left:3px;font-size:var(--text-xs);font-weight:500;color:var(--color-text-tertiary)}.admin-stat-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.admin-stat-hint{margin-top:2px;font-size:11px;color:var(--color-text-tertiary)}.admin-meta-row{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.admin-meta-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-subtle);font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-8);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.admin-tabs{display:flex;gap:var(--space-1);overflow-x:auto}.admin-tab{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);white-space:nowrap;transition:color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.admin-tab:hover{color:var(--color-text-primary);background:var(--color-bg-subtle)}.admin-tab-active,.admin-tab-active:hover{color:var(--color-text-on-brand);background:var(--grad-brand)}.admin-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.admin-search{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-subtle);color:var(--color-text-tertiary)}.admin-search:focus-within{border-color:var(--color-brand-500);box-shadow:var(--ring-brand)}.admin-search-input{width:148px;border:0;background:transparent;color:var(--color-text-primary);font-size:var(--text-sm);outline:none}.admin-search-input::placeholder{color:var(--color-text-tertiary)}.admin-source-select{height:34px;padding:0 12px;border-radius:var(--radius-full);font-size:var(--text-sm)}.admin-count{font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}.admin-panel{padding:var(--space-2)}.admin-table-wrap{width:100%;overflow-x:auto}.admin-loading,.admin-empty{padding:var(--space-12) var(--space-4);text-align:center;color:var(--color-text-tertiary);font-size:var(--text-base)}.admin-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.admin-table th{text-align:left;font-size:var(--text-sm);font-weight:600;color:var(--color-text-tertiary);padding:var(--space-3) var(--space-3);border-bottom:1px solid var(--color-border);white-space:nowrap}.admin-table td{padding:var(--space-3) var(--space-3);border-bottom:1px solid var(--color-border);vertical-align:middle}.admin-table tr:hover td{background:var(--color-bg-subtle)}.admin-th-last,.admin-td-last{text-align:right;width:48px}.admin-user-cell{display:flex;align-items:center;gap:var(--space-3)}.admin-cell-main{font-weight:500;color:var(--color-text-primary)}.admin-cell-quote{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-cell-sub{font-size:var(--text-sm);color:var(--color-text-tertiary)}.admin-cell-muted{font-size:var(--text-sm);color:var(--color-text-tertiary);white-space:nowrap}.admin-cell-num{font-size:var(--text-sm);color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.admin-mono{font-family:var(--font-mono);font-size:var(--text-xs)}.admin-source{display:flex;flex-direction:column;gap:3px;align-items:flex-start}.admin-source-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:var(--radius-full);font-size:11px;letter-spacing:.04em;white-space:nowrap}.admin-source-member{border:1px solid rgba(143,191,138,.32);background:#8fbf8a14;color:var(--color-success-600)}.admin-source-guest{border:1px solid rgba(227,183,120,.32);background:#e3b77814;color:var(--color-accent-500)}.admin-auth-chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-subtle);font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap}.admin-foot-note{margin-top:var(--space-4);font-size:var(--text-xs);line-height:1.7;color:var(--color-text-tertiary)}.admin-delete-btn:hover{color:var(--color-danger-600);background:var(--color-danger-50)}.admin-gate{max-width:520px;margin:var(--space-12) auto 0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-4)}.admin-gate-icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--radius-full);background:var(--color-brand-50);color:var(--color-brand-600)}.admin-gate-title{font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:700;color:var(--color-text-primary)}.admin-gate-desc{font-size:var(--text-base);line-height:1.7;color:var(--color-text-secondary);max-width:420px;display:flex;flex-direction:column;gap:var(--space-2);align-items:center}.admin-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px}.admin-th-last,.admin-td-last{width:auto;white-space:nowrap}.admin-detail-btn:hover{color:var(--color-brand-500);background:var(--color-brand-50)}.admin-user-sub{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal:has(.admin-udp){max-width:720px}.admin-udp{display:flex;flex-direction:column;gap:var(--space-5)}.admin-udp-loading{padding:var(--space-12) 0;text-align:center;font-size:var(--text-sm);color:var(--color-text-tertiary)}.admin-udp-head{display:flex;align-items:flex-start;gap:var(--space-4)}.admin-udp-id{display:flex;flex-direction:column;gap:6px;min-width:0}.admin-udp-name{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--text-xl);font-weight:600;color:var(--color-text-primary)}.admin-udp-me{font-family:var(--font-sans);font-size:var(--text-xs);font-weight:400;color:var(--color-accent-500);border:1px solid rgba(227,183,120,.4);border-radius:var(--radius-full);padding:1px 8px}.admin-udp-email{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--color-text-secondary);word-break:break-all}.admin-udp-muted{color:var(--color-text-tertiary)}.admin-udp-uid{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.admin-udp-uid-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-tertiary)}.admin-udp-uid-value{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px 6px}.admin-udp-copy{color:var(--color-text-tertiary)}.admin-udp-copy:hover{color:var(--color-accent-500)}.admin-udp-bio{margin:0;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);line-height:1.7;color:var(--color-text-secondary);background:var(--color-bg-subtle);border-left:2px solid var(--color-border-strong);border-radius:var(--radius-sm)}.admin-udp-section{display:flex;flex-direction:column;gap:var(--space-3)}.admin-udp-title{margin:0;font-size:var(--text-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-tertiary)}.admin-udp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.admin-udp-item{display:flex;flex-direction:column;gap:4px;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle)}.admin-udp-item-label{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--color-text-tertiary)}.admin-udp-item-value{font-size:var(--text-sm);color:var(--color-text-primary);font-variant-numeric:tabular-nums}.admin-udp-footprints{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.admin-udp-footprint{display:flex;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:linear-gradient(160deg,#7a4dff1f,#0a091300)}.admin-udp-footprint-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border-radius:var(--radius-full);background:var(--color-brand-50);color:var(--color-brand-500)}.admin-udp-footprint-num{font-size:var(--text-xl);font-weight:700;line-height:1.1;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.admin-udp-footprint-unit{margin-left:3px;font-size:var(--text-xs);font-weight:400;color:var(--color-text-tertiary)}.admin-udp-footprint-label{font-size:var(--text-sm);color:var(--color-text-secondary)}.admin-udp-footprint-detail{margin-top:2px;font-size:var(--text-xs);color:var(--color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-udp-timeline{display:flex;flex-direction:column;margin:0;padding:0;list-style:none}.admin-udp-event{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:var(--space-3);align-items:start;padding:var(--space-2) 0;border-bottom:1px dashed var(--color-border)}.admin-udp-event:last-child{border-bottom:0}.admin-udp-event-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-top:2px;border-radius:var(--radius-full);background:var(--color-bg-subtle);color:var(--color-text-tertiary)}.admin-udp-event-mbti .admin-udp-event-icon{color:var(--color-brand-500)}.admin-udp-event-tarot .admin-udp-event-icon{color:var(--color-accent-500)}.admin-udp-event-title{font-size:var(--text-sm);color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-udp-event-sub{margin-top:2px;font-size:var(--text-xs);color:var(--color-text-tertiary)}.admin-udp-event-at{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap}.admin-udp-empty{display:flex;align-items:center;justify-content:center;gap:6px;padding:var(--space-8);border:1px dashed var(--color-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-tertiary)}@media(max-width:640px){.admin-udp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-udp-footprints{grid-template-columns:1fr}.admin-udp-head{gap:var(--space-3)}.admin-udp-event{grid-template-columns:22px minmax(0,1fr)}.admin-udp-event-at{grid-column:2;justify-self:start}}.modal-title:focus,.modal-title:focus-visible{outline:none!important;box-shadow:none;text-decoration:none}.admin-ip-line{display:flex;align-items:center;gap:2px}.admin-ip{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.02em;color:var(--color-text-primary);white-space:nowrap}.admin-ip-copy{width:22px;height:22px;flex:0 0 auto;opacity:.5;transition:opacity var(--duration-fast) var(--ease-out)}.admin-ip-copy:hover{opacity:1}.admin-geo{display:inline-flex;align-items:center;gap:4px;max-width:240px}.admin-geo-isp{color:var(--color-text-tertiary);opacity:.8}.admin-device{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary)}.admin-device svg{flex:0 0 auto;opacity:.75}.admin-path{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:var(--text-sm)}@media(max-width:767px){.admin-geo,.admin-path{max-width:150px}}.admin-dash{margin-bottom:var(--space-6)}.admin-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.admin-kpi{display:flex;align-items:flex-start;gap:11px;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-bg-glass);transition:transform .26s var(--ease-out),border-color .26s var(--ease-out)}.admin-kpi:hover{transform:translateY(-2px);border-color:var(--color-border-hover)}.admin-kpi-icon{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:9px;color:var(--color-brand-500);background:#7a4dff24}.admin-kpi-gold .admin-kpi-icon{color:var(--color-accent-500);background:#e3b77824}.admin-kpi-num{font-family:var(--font-serif);font-size:26px;line-height:1.1;color:var(--color-text-primary)}.admin-kpi-unit{margin-left:3px;font-family:var(--font-sans);font-size:12px;color:var(--color-text-tertiary)}.admin-kpi-label{margin-top:2px;font-size:var(--text-xs);letter-spacing:.1em;color:var(--color-text-secondary)}.admin-kpi-foot{margin-top:4px;font-size:11px;line-height:1.5;color:var(--color-text-tertiary)}.admin-dash-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:var(--space-3);margin-top:var(--space-3)}.admin-trend{padding:var(--space-4) var(--space-5) var(--space-3)}.admin-trend-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.admin-trend-title{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--color-text-primary)}.admin-trend-sum{font-size:11px;color:var(--color-text-tertiary)}.admin-trend-bars{display:flex;align-items:flex-end;gap:8px;height:120px;margin-top:var(--space-4)}.admin-trend-col{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:5px}.admin-trend-value{font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary)}.admin-trend-track{display:flex;align-items:flex-end;justify-content:center;width:100%;flex:1 1 auto;min-height:0}.admin-trend-bar{width:100%;max-width:34px;min-height:2px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,#7a4dffc7,#7a4dff29);transition:height .62s var(--ease-out)}.admin-trend-bar-today{background:linear-gradient(180deg,#e3b778eb,#e3b77833)}.admin-trend-label{font-size:10px;color:var(--color-text-tertiary)}.admin-dash-side{display:flex;flex-direction:column;gap:var(--space-3)}.admin-side-block{flex:1;padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-glass)}.admin-side-title{margin-bottom:var(--space-3);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-tertiary)}.admin-side-rows{display:flex;flex-direction:column;gap:9px}.admin-side-row{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);color:var(--color-text-secondary)}.admin-side-row-icon{display:grid;place-items:center;flex:none;color:var(--color-brand-500)}.admin-side-row-label{flex:1;display:flex;flex-direction:column;gap:1px}.admin-side-row-sub{font-style:normal;font-size:10px;color:var(--color-text-tertiary)}.admin-side-row-value{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-primary)}.admin-tab-count{margin-left:2px;padding:0 6px;border-radius:var(--radius-full);background:#ffffff0f;font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary)}.admin-tab-active .admin-tab-count{background:#e3b77829;color:var(--color-accent-500)}.admin-tarot-cards{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.admin-tarot-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 7px 2px 5px;border-radius:var(--radius-full);border:1px solid rgba(122,77,255,.3);background:#7a4dff1a;color:var(--color-brand-500);font-size:11px}.admin-tarot-chip.is-rev{border-color:#f2705f57;background:#f2705f1a;color:var(--color-danger-600)}.admin-tarot-chip-name{color:var(--color-text-secondary)}.admin-tarot-chip-rev{font-size:9px;color:var(--color-danger-600)}.admin-tdp{display:flex;flex-direction:column;gap:var(--space-4)}.admin-tdp-head{display:flex;flex-direction:column;gap:3px}.admin-tdp-spread{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-text-primary)}.admin-tdp-meta{font-size:11px;color:var(--color-text-tertiary)}.admin-tdp-question{padding-left:10px;border-left:2px solid rgba(227,183,120,.5);font-size:var(--text-sm);color:var(--color-text-secondary)}.admin-tdp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:10px}.admin-tdp-card{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 10px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-glass);text-align:center}.admin-tdp-card.is-rev{border-color:#f2705f52}.admin-tdp-pos{font-size:10px;letter-spacing:.16em;color:var(--color-text-tertiary)}.admin-tdp-sigil{display:flex;color:var(--color-accent-500);filter:drop-shadow(0 0 8px currentColor)}.admin-tdp-card.is-rev .admin-tdp-sigil{color:var(--color-danger-600);transform:rotate(180deg)}.admin-tdp-name{font-family:var(--font-serif);font-size:var(--text-sm);color:var(--color-text-primary)}.admin-tdp-orient{padding:0 6px;border-radius:var(--radius-full);border:1px solid rgba(227,183,120,.32);font-size:9px;color:var(--color-accent-500)}.admin-tdp-card.is-rev .admin-tdp-orient{border-color:#f2705f57;color:var(--color-danger-600)}.admin-tdp-meaning{max-height:96px;overflow:auto;font-size:11px;line-height:1.7;color:var(--color-text-tertiary);text-align:left}.admin-tdp-insight{display:flex;gap:6px;padding:10px 12px;border-radius:var(--radius-md);background:#e3b77812;font-size:var(--text-sm);line-height:1.8;color:var(--color-text-secondary)}@media(max-width:900px){.admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-dash-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:520px){.admin-kpis{grid-template-columns:minmax(0,1fr)}.admin-trend-bars{height:96px}}.mbti-quiz{min-height:62vh;justify-content:center;gap:var(--space-6)}.mbti-progress-bar span{position:relative;background:linear-gradient(90deg,var(--color-brand-700),var(--color-brand-500))}.mbti-progress-bar span:after{content:"";position:absolute;right:-3px;top:50%;width:8px;height:8px;border-radius:50%;transform:translateY(-50%);background:var(--color-accent-500);box-shadow:0 0 12px #e3b7788c}.mbti-question{position:relative;padding-left:var(--space-5)}.mbti-question:before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:2px;border-radius:2px;background:linear-gradient(180deg,var(--color-accent-500),rgba(227,183,120,.06))}.mbti-question-text{margin-top:var(--space-2);text-wrap:pretty}.mbti-scale-btn-active{border-color:#e3b7789e;box-shadow:inset 0 0 0 1px #e3b7782e}.mbti-scale-btn-active .mbti-scale-num{color:var(--color-accent-500)}.tool-strip{display:flex;align-items:center;gap:var(--space-3);margin-top:var(--space-3);margin-bottom:var(--space-8);padding:var(--space-3) var(--space-4);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-secondary);text-decoration:none;transition:border-color var(--duration-fast) var(--ease-soft),background var(--duration-fast) var(--ease-soft)}.tool-strip:hover{border-color:var(--color-border-hover);background:var(--color-bg-active)}.tool-strip-tag{flex:none;font-size:var(--text-xs);letter-spacing:.08em;color:var(--color-accent-700);border:1px solid var(--color-accent-700);border-radius:var(--radius-full);padding:1px 7px}.tool-strip-name{flex:none;font-family:var(--font-serif);font-size:var(--text-md);color:var(--color-text-primary)}.tool-strip-desc{font-size:var(--text-sm);color:var(--color-text-tertiary)}.tool-strip svg{margin-left:auto;flex:none;color:var(--color-text-tertiary)}@media(max-width:640px){.tool-strip-desc{display:none}}body{background-color:var(--color-bg-base);background-image:var(--grad-aurora);background-attachment:fixed;background-repeat:no-repeat;background-size:cover}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(1.4px 1.4px at 12% 8%,var(--star-color) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 28% 22%,var(--star-color) 50%,transparent 51%),radial-gradient(1.6px 1.6px at 43% 5%,var(--star-color) 50%,transparent 51%),radial-gradient(1.1px 1.1px at 61% 17%,var(--star-color) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 76% 9%,var(--star-color) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 89% 26%,var(--star-color) 50%,transparent 51%),radial-gradient(1.3px 1.3px at 8% 42%,var(--star-color) 50%,transparent 51%),radial-gradient(1.1px 1.1px at 34% 55%,var(--star-color) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 55% 41%,var(--star-color) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 72% 62%,var(--star-color) 50%,transparent 51%),radial-gradient(1.4px 1.4px at 93% 47%,var(--star-color) 50%,transparent 51%),radial-gradient(1.1px 1.1px at 18% 74%,var(--star-color) 50%,transparent 51%),radial-gradient(1.3px 1.3px at 46% 82%,var(--star-color) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 67% 90%,var(--star-color) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 84% 78%,var(--star-color) 50%,transparent 51%);opacity:.5;animation:twinkle 6s ease-in-out infinite alternate}@keyframes twinkle{0%{opacity:.32}to{opacity:.62}}.app-shell,.app-main,.page{position:relative;z-index:1;background:transparent}h1,h2,h3{letter-spacing:.01em}.mystic-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent-500)}.mystic-rule{width:100%;height:1px;border:0;background:linear-gradient(90deg,transparent,var(--color-border-strong),transparent)}.mystic-hero{position:relative;overflow:hidden;padding-block:clamp(72px,11vh,132px) clamp(56px,8vh,96px);text-align:center;isolation:isolate}.mystic-hero:before{content:"";position:absolute;inset:-20% -10% auto;height:130%;z-index:-1;background:radial-gradient(38% 46% at 50% 6%,rgba(122,77,255,.3),transparent 70%),radial-gradient(26% 30% at 74% 26%,rgba(227,183,120,.14),transparent 72%);filter:blur(8px)}.hero-halo{position:absolute;top:-140px;left:50%;width:520px;height:520px;margin-left:-260px;z-index:-1;border-radius:50%;border:1px solid rgba(227,183,120,.22);box-shadow:inset 0 0 90px #7a4dff2e,0 0 120px #7a4dff1f;animation:haloSpin 48s linear infinite}.hero-halo:before,.hero-halo:after{content:"";position:absolute;border-radius:50%;border:1px dashed rgba(227,183,120,.16)}.hero-halo:before{inset:26px}.hero-halo:after{inset:74px;border-style:solid;border-color:#7a4dff29}.hero-sigil{display:inline-flex;align-items:center;gap:var(--space-2);padding:6px 14px;border-radius:var(--radius-full);border:1px solid var(--color-border-strong);background:var(--color-bg-glass);color:var(--color-accent-500);font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase}.mystic-hero .hero-title{margin-top:var(--space-6);font-family:var(--font-serif);font-size:clamp(34px,5.4vw,62px);line-height:1.28;font-weight:700;background:linear-gradient(180deg,#fff,#e6deff 52%,#b4a2ff);-webkit-background-clip:text;background-clip:text;color:transparent}.mystic-hero .hero-title em{font-style:normal;background:var(--grad-gold);-webkit-background-clip:text;background-clip:text;color:transparent}.mystic-hero .hero-subtitle{max-width:640px;margin:var(--space-5) auto 0;color:var(--color-text-secondary);font-size:var(--text-lg);line-height:1.9}.mystic-hero .hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin-top:var(--space-8)}.portal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-5);margin-top:var(--space-4)}.portal-card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-8);border-radius:var(--radius-xl);border:1px solid var(--color-border);background:linear-gradient(160deg,#1b1436eb,#0d0b18eb);transition:transform var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);text-align:left}.portal-card:after{content:"";position:absolute;inset:-40% 40% 55% -30%;background:radial-gradient(closest-side,rgba(122,77,255,.26),transparent);filter:blur(6px);pointer-events:none;transition:opacity var(--duration-base) var(--ease-out)}.portal-card-tarot:after{inset:-45% -25% 50% 45%;background:radial-gradient(closest-side,rgba(227,183,120,.22),transparent)}.portal-card-fishing:after{inset:45% -30% -45% -25%;background:radial-gradient(closest-side,rgba(111,168,255,.2),transparent)}.portal-card-fishing .portal-icon{background:#6fa8ff1f;color:#8fb8ff;--px-1: #8FB8FF;--px-2: #C4DBFF;--px-3: #4A6FA8}.portal-card-fishing .portal-cta{color:#8fb8ff}.portal-card-fishing:hover{box-shadow:var(--shadow-md),0 0 48px #6fa8ff38}.portal-card:hover{transform:translateY(-4px);border-color:var(--color-border-hover);box-shadow:var(--shadow-md),var(--glow-brand)}.portal-card-tarot:hover{box-shadow:var(--shadow-md),var(--glow-gold)}.portal-card-inn:after{inset:45% -30% -45% -25%;background:radial-gradient(closest-side,rgba(240,178,106,.18),transparent)}.portal-card-inn .portal-icon{background:#f0b26a1f;color:#efbe86;--px-1: #EFBE86;--px-2: #FFE0B8;--px-3: #6E3F18}.portal-card-inn .portal-cta{color:#efbe86}.portal-card-inn:hover{box-shadow:var(--shadow-md),0 0 48px #f0b26a33}.portal-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:14px;border:1px solid var(--color-border-strong);background:var(--color-brand-50);color:var(--color-brand-500);--px-1: #8E6BFF;--px-2: #C6B6FF;--px-3: #4E28BF}.portal-card-tarot .portal-icon{background:var(--color-accent-100);color:var(--color-accent-500);--px-1: #E3B778;--px-2: #F5D9A8;--px-3: #8A6A3E}.portal-kicker{font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--color-text-tertiary)}.portal-title{font-family:var(--font-serif);font-size:var(--text-2xl);line-height:1.4;color:var(--color-text-primary)}.portal-desc{color:var(--color-text-secondary);font-size:var(--text-base);line-height:1.85}.portal-meta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding-top:var(--space-2)}.portal-pill{font-size:var(--text-xs);color:var(--color-text-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:3px 10px}.portal-cta{display:inline-flex;align-items:center;gap:6px;margin-top:var(--space-2);font-size:var(--text-base);font-weight:600;color:var(--color-brand-500)}.portal-card-tarot .portal-cta{color:var(--color-accent-500)}.mystic-section{margin-top:clamp(56px,8vh,88px)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.section-head .section-title{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--text-2xl)}.section-head-sub{margin-top:6px;color:var(--color-text-tertiary);font-size:var(--text-sm)}.whisper-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.whisper-card{position:relative;padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-glass);transition:border-color var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}.whisper-card:hover{border-color:var(--color-border-hover);transform:translateY(-2px)}.whisper-top{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.whisper-badge{color:var(--color-accent-500);border:1px solid rgba(227,183,120,.32);border-radius:var(--radius-full);padding:1px 8px;letter-spacing:.06em}.whisper-text{color:var(--color-text-secondary);font-size:var(--text-base);line-height:1.8;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.whisper-author{margin-top:var(--space-3);font-size:var(--text-xs);color:var(--color-text-tertiary)}.type-wall{margin-top:clamp(48px,7vh,72px)}.type-wall-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);letter-spacing:.08em}.type-wall-desc{color:var(--color-text-secondary);margin-bottom:var(--space-4)}.type-wall-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-5)}.type-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-subtle);color:var(--color-text-secondary);transition:all var(--duration-fast) var(--ease-out)}.type-chip:hover{border-color:var(--color-border-hover);color:var(--color-text-primary)}.type-chip-active{border-color:var(--color-brand-500);background:var(--color-brand-50);color:var(--color-text-primary);box-shadow:var(--ring-brand)}.type-chip-code{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;color:var(--color-brand-500)}.type-chip-name{font-size:var(--text-xs);color:var(--color-text-tertiary)}.comments{margin-top:var(--space-10);padding-top:var(--space-8);border-top:1px solid var(--color-border)}.comments-head{margin-bottom:var(--space-5)}.comments-title{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text-primary)}.comments-count{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;color:var(--color-accent-500);border:1px solid rgba(227,183,120,.3);border-radius:var(--radius-full);padding:1px 8px}.comments-desc{margin-top:6px;font-size:var(--text-sm);color:var(--color-text-tertiary)}.comment-form{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-glass);padding:var(--space-4);transition:border-color var(--duration-fast) var(--ease-out)}.comment-form:focus-within{border-color:var(--color-brand-500);box-shadow:var(--ring-brand)}.comment-input{width:100%;resize:vertical;min-height:76px;border:0;background:transparent;color:var(--color-text-primary);font-size:var(--text-base);line-height:1.8;outline:none}.comment-input::placeholder{color:var(--color-text-tertiary)}.comment-form-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--color-border)}.comment-form-who{display:flex;align-items:center;gap:var(--space-3);min-width:0}.comment-identity{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--color-text-tertiary)}.comment-name-input{max-width:160px;height:34px;font-size:var(--text-sm)}.comment-counter{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-disabled)}.comment-submit{display:inline-flex;align-items:center;gap:6px}.comment-empty{padding:var(--space-6);text-align:center;font-size:var(--text-sm);color:var(--color-text-tertiary);border:1px dashed var(--color-border);border-radius:var(--radius-lg);margin-top:var(--space-4)}.comment-list{list-style:none;margin-top:var(--space-5);display:flex;flex-direction:column;gap:var(--space-1)}.comment-item{display:flex;gap:var(--space-3);padding:var(--space-4) var(--space-2);border-bottom:1px solid var(--color-border)}.comment-item:last-child{border-bottom:0}.comment-avatar{flex:none;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;font-size:var(--text-sm);color:var(--color-accent-500);border:1px solid rgba(227,183,120,.32);background:var(--color-accent-100)}.comment-body{min-width:0;flex:1}.comment-meta{display:flex;align-items:center;gap:var(--space-2);margin-bottom:4px}.comment-author{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary)}.comment-time{font-size:var(--text-xs);color:var(--color-text-tertiary)}.comment-del{margin-left:auto;color:var(--color-text-tertiary);opacity:0;transition:opacity var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out)}.comment-item:hover .comment-del,.comment-del:focus-visible{opacity:1}.comment-del:hover{color:var(--color-danger-600)}.comment-text{font-size:var(--text-base);line-height:1.85;color:var(--color-text-secondary);white-space:pre-wrap;word-break:break-word}.tarot-page{position:relative;padding-block:var(--space-12) var(--space-24);overflow:hidden}.tarot-stars{position:absolute;inset:0;z-index:-1;background:radial-gradient(42% 40% at 50% 0%,rgba(122,77,255,.26),transparent 72%),radial-gradient(30% 30% at 82% 18%,rgba(227,183,120,.12),transparent 72%)}.tarot-setup,.tarot-draw,.tarot-result,.tarot-shuffle{max-width:880px;margin-inline:auto}.tarot-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--color-accent-500)}.tarot-title{font-family:var(--font-serif);font-size:clamp(28px,3.6vw,42px);line-height:1.35;margin-top:var(--space-3);color:var(--color-text-primary)}.tarot-title-sm{font-size:clamp(24px,2.8vw,32px)}.tarot-lead{margin-top:var(--space-3);color:var(--color-text-secondary);font-size:var(--text-base);line-height:1.9;max-width:640px}.tarot-label{display:block;margin-top:var(--space-8);margin-bottom:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:.06em}.tarot-label span{color:var(--color-text-tertiary);font-size:var(--text-xs)}.tarot-question{width:100%;padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-glass);color:var(--color-text-primary);font-size:var(--text-md);line-height:1.8;resize:vertical;outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.tarot-question:focus{border-color:var(--color-brand-500);box-shadow:var(--ring-brand)}.spread-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.spread-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-glass);text-align:left;transition:all var(--duration-base) var(--ease-out)}.spread-card:hover{border-color:var(--color-border-hover);transform:translateY(-2px)}.spread-card-active{border-color:var(--color-brand-500);background:linear-gradient(160deg,#7a4dff29,#0d0b18e6);box-shadow:var(--ring-brand),var(--glow-brand)}.spread-icon{color:var(--color-brand-500);margin-bottom:var(--space-2)}.spread-name{font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-text-primary)}.spread-sub{font-size:var(--text-xs);letter-spacing:.14em;color:var(--color-accent-500)}.spread-desc{margin-top:var(--space-2);font-size:var(--text-sm);line-height:1.7;color:var(--color-text-tertiary)}.spread-count{margin-top:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:1px 8px}.tarot-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-8)}.tarot-foot-note{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--color-text-tertiary)}.tarot-setup,.tarot-shuffle,.tarot-draw,.tarot-result{animation:stageIn .64s cubic-bezier(.22,.68,.26,1) both}@keyframes stageIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.tarot-shuffle{min-height:min(62vh,560px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-8)}.shuffle-deck:before{content:"";position:absolute;inset:-46px;border-radius:50%;background:radial-gradient(circle,rgba(122,77,255,.3),transparent 66%);animation:shuffleAura 2.4s ease-in-out infinite alternate;pointer-events:none}@keyframes shuffleAura{0%{opacity:.32;transform:scale(.92)}to{opacity:.78;transform:scale(1.06)}}.shuffle-deck{position:relative;width:140px;height:220px}.shuffle-card{position:absolute;inset:0;border-radius:14px;border:1px solid rgba(227,183,120,.35);background:linear-gradient(160deg,#221a44,#14102a 60%,#1b1436);box-shadow:0 0 24px #7a4dff40;animation:shuffleFloat 2.4s ease-in-out infinite alternate}.shuffle-card:after{content:"✦";position:absolute;inset:0;display:grid;place-items:center;font-size:22px;color:#e3b778b3}.shuffle-card-0{animation-delay:0s;transform:rotate(-9deg) translate(-16px)}.shuffle-card-1{animation-delay:.08s;transform:rotate(6deg) translate(12px)}.shuffle-card-2{animation-delay:.16s;transform:rotate(-4deg) translate(-6px)}.shuffle-card-3{animation-delay:.24s;transform:rotate(10deg) translate(18px)}.shuffle-card-4{animation-delay:.32s;transform:rotate(-2deg) translate(0)}.shuffle-card-5{animation-delay:.4s;transform:rotate(3deg) translate(8px)}.shuffle-card-6{animation-delay:.48s;transform:rotate(-7deg) translate(-12px)}.shuffle-card-7{animation-delay:.56s;transform:rotate(5deg) translate(10px)}.shuffle-card-8{animation-delay:.64s;transform:rotate(0) translate(0)}@keyframes shuffleFloat{0%{margin-top:-8px;opacity:.85}to{margin-top:8px;opacity:1}}.shuffle-text{font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:.1em}.tarot-board{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(12px,2vw,24px);margin-top:var(--space-10)}.tarot-draw{text-align:center}.tarot-draw .tarot-lead{margin-inline:auto}.tarot-draw .tarot-actions{justify-content:center}.tarot-card{width:clamp(108px,15.5vw,152px);aspect-ratio:5 / 8.2;perspective:1000px;background:none;padding:0;border:0;transition:transform .42s cubic-bezier(.28,.72,.28,1);animation:cardDeal .76s cubic-bezier(.18,.72,.26,1) backwards;animation-delay:calc(var(--i, 0) * .13s)}.tarot-card.is-flipped{transform:translateY(-5px)}@keyframes cardDeal{0%{opacity:0;transform:translateY(32px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.tarot-card-inner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform 1.18s cubic-bezier(.34,.86,.2,1);will-change:transform;border-radius:14px}.tarot-card.is-flipped .tarot-card-inner{transform:rotateY(180deg)}.tarot-card.is-flipped .tarot-card-front{animation:cardGlow 1.1s ease-out}.tarot-card.is-flipped.is-reversed .tarot-card-front{animation:cardGlowRev 1.1s ease-out}@keyframes cardGlow{0%{box-shadow:inset 0 0 28px #e3b7781f,0 0 #e3b77800}40%{box-shadow:inset 0 0 34px #e3b77842,0 0 46px #e3b7784d}to{box-shadow:inset 0 0 28px #e3b7781f,0 0 #e3b77800}}@keyframes cardGlowRev{0%{box-shadow:inset 0 0 30px #f2705f29,0 0 #f2705f00}40%{box-shadow:inset 0 0 36px #f2705f4d,0 0 46px #f2705f47}to{box-shadow:inset 0 0 30px #f2705f29,0 0 #f2705f00}}.tarot-card-back,.tarot-card-front{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border-radius:14px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.tarot-card-back{border:1px solid rgba(227,183,120,.34);background:radial-gradient(60% 50% at 50% 30%,rgba(122,77,255,.28),transparent 70%),linear-gradient(160deg,#221a44,#14102a 62%,#1b1436);box-shadow:inset 0 0 24px #7a4dff38,0 8px 28px #00000073}.tarot-card-back:before{content:"";position:absolute;inset:8px;border-radius:9px;border:1px solid rgba(227,183,120,.18)}.tarot-card-back-mandala{display:flex;color:#e3b77880;transition:color .26s var(--ease-out),transform .9s var(--ease-out)}.tarot-card:hover .tarot-card-back-mandala{color:#e3b778e0;transform:rotate(30deg)}.tarot-card-back-pos{font-size:var(--text-xs);letter-spacing:.16em;color:var(--color-text-tertiary)}.tarot-card:hover .tarot-card-back{border-color:#e3b7789e;box-shadow:inset 0 0 30px #7a4dff4d,0 12px 34px #00000080,var(--glow-brand)}.tarot-card:focus-visible{outline:none}.tarot-card:focus-visible .tarot-card-inner{box-shadow:var(--ring-brand);border-radius:14px}.tarot-card-front{transform:rotateY(180deg);border:1px solid var(--color-border-strong);background:radial-gradient(70% 45% at 50% 34%,rgba(122,77,255,.16),transparent 72%),linear-gradient(170deg,#1e1740,#14102a 60%,#231a3f);box-shadow:inset 0 0 28px #e3b7781f;padding:18px 10px 11px;text-align:center;justify-content:space-between;gap:5px}.tarot-card-front:before{content:"";position:absolute;inset:8px;border-radius:9px;border:1px solid rgba(227,183,120,.15);pointer-events:none}.tarot-card.is-reversed .tarot-card-front{box-shadow:inset 0 0 30px #f2705f29;border-color:#f2705f66}.tarot-front-pos{position:relative;z-index:1;font-size:10px;letter-spacing:.22em;color:var(--color-text-tertiary)}.tarot-front-frame{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:7px;width:100%}.tarot-front-roman{font-family:var(--font-serif);font-size:10px;letter-spacing:.28em;text-indent:.28em;color:#e3b778b8}.tarot-front-rule{width:46%;height:1px;background:linear-gradient(90deg,transparent,rgba(227,183,120,.4),transparent)}.tarot-front-sigil{display:flex;filter:drop-shadow(0 0 9px currentColor);transition:transform .56s var(--ease-out),filter .3s var(--ease-out)}.tarot-card.is-reversed .tarot-front-sigil{transform:rotate(180deg);filter:drop-shadow(0 0 10px rgba(242,112,95,.55))}.tarot-front-name{font-family:var(--font-serif);font-size:var(--text-md);letter-spacing:.04em;color:var(--color-text-primary)}.tarot-front-en{font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-tertiary)}.tarot-front-orient{position:relative;z-index:1;font-size:10px;letter-spacing:.14em;color:var(--color-accent-500);border:1px solid rgba(227,183,120,.35);border-radius:var(--radius-full);padding:1px 10px}.tarot-front-orient.is-rev{color:var(--color-danger-600);border-color:#f2705f66}.tarot-tip{font-size:var(--text-sm);color:var(--color-text-tertiary)}.tarot-result-head{margin-bottom:var(--space-8)}.tarot-readings{display:grid;gap:var(--space-4)}.reading-card{display:grid;grid-template-columns:96px 1fr;gap:var(--space-5);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--color-bg-glass)}.reading-card-rev{border-color:#f2705f47}.reading-side{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--color-border);background:linear-gradient(170deg,#7a4dff24,#0d0b1899)}.reading-pos{font-size:var(--text-xs);letter-spacing:.18em;color:var(--color-text-tertiary)}.reading-glyph{display:flex;color:var(--reading-el, var(--color-accent-500));filter:drop-shadow(0 0 8px currentColor)}.reading-orient{font-size:var(--text-xs);color:var(--color-accent-500)}.reading-card-rev .reading-orient,.reading-card-rev .reading-glyph{color:var(--color-danger-600)}.reading-name{display:flex;align-items:baseline;gap:var(--space-2);font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text-primary)}.reading-en{font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-tertiary)}.reading-keywords{display:flex;flex-wrap:wrap;gap:6px;margin-top:var(--space-3)}.reading-kw{font-size:var(--text-xs);color:var(--color-brand-500);border:1px solid var(--color-brand-200);border-radius:var(--radius-full);padding:1px 9px}.reading-kw-meta{color:var(--color-text-tertiary);border-color:var(--color-border)}.reading-pos-meaning{margin-top:var(--space-3);font-size:var(--text-xs);letter-spacing:.04em;color:var(--color-accent-500)}.reading-text{margin-top:var(--space-2);font-size:var(--text-base);line-height:1.95;color:var(--color-text-secondary)}.tarot-guest{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);justify-content:space-between;margin-top:var(--space-5);font-size:var(--text-sm);color:var(--color-text-secondary);background:var(--color-bg-glass)}.navbar-logo-dot{box-shadow:0 0 12px var(--color-brand-500)}.navbar-link-active{color:var(--color-accent-500)}@media(max-width:900px){.navbar-links,.navbar-desktop-actions{display:none}.navbar-hamburger{display:inline-flex}}.tarot-section-title{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-10) 0 var(--space-4);font-family:var(--font-serif);font-size:var(--text-lg);font-weight:500;color:var(--color-text-secondary);letter-spacing:.06em}.tarot-section-rule{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--color-border-strong),transparent)}.insight{position:relative;margin:var(--space-8) 0 var(--space-10);padding:clamp(20px,3vw,34px);border-radius:18px;border:1px solid rgba(227,183,120,.22);background:radial-gradient(80% 60% at 0% 0%,rgba(122,77,255,.16),transparent 70%),radial-gradient(60% 50% at 100% 0%,rgba(227,183,120,.09),transparent 70%),var(--color-bg-glass);box-shadow:0 24px 60px #00000059,inset 0 1px #ffffff0a;overflow:hidden}.insight:before{content:"";position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(90deg,transparent,rgba(227,183,120,.65),transparent)}.insight-head{margin-bottom:var(--space-5)}.insight-eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);letter-spacing:.22em;color:var(--color-accent-500)}.insight-headline{margin:var(--space-3) 0 var(--space-4);font-family:var(--font-serif);font-size:clamp(20px,2.6vw,27px);line-height:1.5;color:var(--color-text-primary);font-weight:500}.insight-badges{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.insight-tone{font-size:var(--text-xs);letter-spacing:.18em;padding:3px 12px;border-radius:var(--radius-full);border:1px solid currentColor}.tone-flow{color:var(--color-success-600)}.tone-open{color:var(--color-accent-500)}.tone-tug{color:var(--color-warning-600)}.tone-stuck{color:var(--color-text-secondary)}.tone-reset{color:var(--color-danger-600)}.insight-energy{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--color-text-tertiary);letter-spacing:.08em}.insight-energy b{color:var(--color-text-secondary);font-weight:600;font-variant-numeric:tabular-nums}.insight-energy-track{width:96px;height:4px;border-radius:var(--radius-full);background:#ffffff14;overflow:hidden}.insight-energy-fill{display:block;height:100%;border-radius:inherit;background:var(--grad-gold);box-shadow:0 0 12px #e3b77880}.insight-badge-el{font-size:var(--text-xs);letter-spacing:.12em}.insight-verdict{margin:0 0 var(--space-6);padding-left:var(--space-4);border-left:2px solid rgba(227,183,120,.42);font-size:var(--text-md);line-height:1.85;color:var(--color-text-secondary)}.insight-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);margin-bottom:var(--space-6)}.insight-cols+.insight-block{margin-top:var(--space-2)}.insight-block{margin-bottom:var(--space-6)}.insight-cols .insight-block{margin-bottom:0}.insight-block-title{display:flex;align-items:center;gap:8px;margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:500;letter-spacing:.12em;color:var(--color-text-secondary)}.insight-dot{width:5px;height:5px;border-radius:50%;background:var(--color-accent-500);box-shadow:0 0 8px #e3b778b3}.element-bars{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.element-bar{display:grid;grid-template-columns:58px 1fr 42px;align-items:center;gap:var(--space-3);font-size:var(--text-xs)}.element-name{letter-spacing:.1em}.element-track{height:5px;border-radius:var(--radius-full);background:#ffffff12;overflow:hidden}.element-fill{display:block;height:100%;border-radius:inherit;opacity:.85}.element-count{text-align:right;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.insight-note{margin:var(--space-3) 0 0;font-size:var(--text-xs);line-height:1.7;color:var(--color-text-tertiary)}.theme-list{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none}.theme-item{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:10px;border:1px solid var(--color-border);background:#ffffff05}.theme-name{font-family:var(--font-serif);font-size:var(--text-md);color:var(--color-accent-500);letter-spacing:.08em}.theme-text{font-size:var(--text-sm);line-height:1.7;color:var(--color-text-secondary)}.theme-cards{font-size:11px;color:var(--color-text-tertiary);letter-spacing:.06em}.dialogue-list{display:flex;flex-direction:column;gap:var(--space-3)}.dialogue-item{padding:var(--space-3) var(--space-4);border-radius:12px;border-left:2px solid var(--color-brand-500);background:linear-gradient(90deg,rgba(122,77,255,.1),transparent 70%)}.dialogue-title{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);letter-spacing:.14em;color:var(--color-brand-500)}.dialogue-text{margin:6px 0 0;font-size:var(--text-sm);line-height:1.8;color:var(--color-text-secondary)}.insight-advice{padding:var(--space-5);border-radius:14px;border:1px solid rgba(227,183,120,.18);background:#e3b7780a}.advice-list{display:flex;flex-direction:column;gap:var(--space-3);margin:0;padding:0;list-style:none;counter-reset:advice}.advice-item{display:flex;gap:var(--space-3);align-items:flex-start}.advice-index{flex:0 0 22px;height:22px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(227,183,120,.45);font-size:11px;color:var(--color-accent-500);font-variant-numeric:tabular-nums}.advice-text{font-size:var(--text-sm);line-height:1.8;color:var(--color-text-secondary)}.insight-caution{display:flex;gap:var(--space-2);align-items:flex-start;margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-radius:10px;border:1px solid rgba(242,112,95,.28);background:#f2705f0f;font-size:var(--text-sm);line-height:1.75;color:var(--color-danger-700)}.insight-caution svg{flex:0 0 auto;margin-top:3px}.insight-foot{display:flex;align-items:center;gap:6px;margin:var(--space-4) 0 0;font-size:var(--text-xs);color:var(--color-text-tertiary)}@media(max-width:1080px){.portal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.whisper-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.spread-grid{grid-template-columns:1fr}.reading-card{grid-template-columns:76px 1fr}.insight-cols{grid-template-columns:1fr;gap:var(--space-5)}}@media(max-width:639px){.portal-grid,.whisper-grid{grid-template-columns:1fr}.mystic-hero{padding-block:56px 40px}.hero-halo{width:340px;height:340px;margin-left:-170px;top:-110px}.reading-card{grid-template-columns:1fr}.reading-side{flex-direction:row;justify-content:flex-start;gap:var(--space-3)}.tarot-actions{gap:var(--space-2)}.comment-form-who{flex-wrap:wrap}}.insight,.tarot-readings,.tarot-actions,.tarot-guest{animation:softUp .68s cubic-bezier(.22,.68,.26,1) backwards}.insight{animation-delay:80ms}.tarot-readings{animation-delay:.15s}.reading-card{animation:softUp .56s cubic-bezier(.22,.68,.26,1) backwards;animation-delay:calc(var(--i, 0) * 90ms + .21s)}@keyframes softUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.tarot-reveal-cta{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);animation:softUp .52s cubic-bezier(.22,.68,.26,1) both}.tarot-card-front{isolation:isolate}.tarot-front-stars{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;background-image:radial-gradient(1px 1px at 22% 16%,rgba(255,255,255,.6) 50%,transparent 51%),radial-gradient(1.2px 1.2px at 74% 26%,rgba(255,255,255,.4) 50%,transparent 51%),radial-gradient(1px 1px at 38% 62%,rgba(255,255,255,.34) 50%,transparent 51%),radial-gradient(1.3px 1.3px at 84% 74%,rgba(227,183,120,.42) 50%,transparent 51%),radial-gradient(1px 1px at 16% 86%,rgba(255,255,255,.3) 50%,transparent 51%),radial-gradient(1px 1px at 58% 34%,rgba(227,183,120,.35) 50%,transparent 51%);animation:cardStarDrift 11s ease-in-out infinite alternate}@keyframes cardStarDrift{0%{transform:translateZ(0);opacity:.38}to{transform:translate3d(0,-5px,0);opacity:.62}}.tarot-front-corners{position:absolute;inset:11px;z-index:2;pointer-events:none;--c: rgba(227, 183, 120, .46);background:linear-gradient(var(--c),var(--c)) 0 0 / 8px 1px no-repeat,linear-gradient(var(--c),var(--c)) 0 0 / 1px 8px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0 / 8px 1px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0 / 1px 8px no-repeat,linear-gradient(var(--c),var(--c)) 0 100% / 8px 1px no-repeat,linear-gradient(var(--c),var(--c)) 0 100% / 1px 8px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100% / 8px 1px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100% / 1px 8px no-repeat}.tarot-card.is-reversed .tarot-front-corners{--c: rgba(242, 112, 95, .42)}.tarot-front-el{position:absolute;top:13px;right:14px;z-index:3;font-size:10px;line-height:1;color:var(--el, var(--color-accent-500));opacity:.8;text-shadow:0 0 8px currentColor}.tarot-front-sigil{position:relative;z-index:1;color:var(--el, var(--color-accent-500))}.tarot-front-halo{position:absolute;inset:-13px;border-radius:50%;background:radial-gradient(circle,currentColor 0%,transparent 66%);opacity:.22;filter:blur(4px);pointer-events:none}.tarot-front-halo:after{content:"";position:absolute;inset:3px;border-radius:50%;border:1px dashed currentColor;opacity:.32;animation:haloSpin 26s linear infinite}@keyframes haloSpin{to{transform:rotate(360deg)}}.tarot-card.is-flipped .tarot-front-frame{animation:frontRise .78s .18s cubic-bezier(.22,.68,.26,1) backwards}@keyframes frontRise{0%{opacity:0;transform:translateY(6px) scale(.965)}to{opacity:1;transform:none}}.tarot-card-front:after{content:"";position:absolute;inset:0;z-index:3;border-radius:inherit;pointer-events:none;background:radial-gradient(58% 58% at var(--mx, 50%) var(--my, 50%),rgba(255,255,255,.16),transparent 62%);opacity:0;transition:opacity .34s var(--ease-out)}.tarot-card.is-flipped .tarot-card-front:after{opacity:1}.tarot-card:not(.is-flipped) .tarot-card-back-mandala{animation:backBreath 4.8s ease-in-out infinite}@keyframes backBreath{0%,to{opacity:.72;transform:scale(.97) rotate(-2deg)}50%{opacity:1;transform:scale(1.03) rotate(2deg)}}.tarot-card-back-hint{font-size:9px;letter-spacing:.2em;color:#e3b77800;transition:color .32s var(--ease-out)}.tarot-card:hover .tarot-card-back-hint,.tarot-card:focus-visible .tarot-card-back-hint{color:#e3b7789e}.tarot-timeline{margin-top:var(--space-8)}.timeline-track{display:flex;gap:10px;align-items:stretch}.timeline-node{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px 12px;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-glass);color:inherit;text-align:center;transition:transform .28s var(--ease-out),border-color .28s var(--ease-out),box-shadow .28s var(--ease-out);animation:softUp .52s cubic-bezier(.22,.68,.26,1) both;animation-delay:calc(var(--i, 0) * 90ms)}.timeline-node:hover{transform:translateY(-3px);border-color:#e3b77873;box-shadow:var(--glow-brand)}.timeline-node:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.timeline-node.is-rev{border-color:#f2705f4d}.timeline-pos{font-size:var(--text-xs);letter-spacing:.18em;color:var(--color-text-tertiary)}.timeline-mini{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:60px;aspect-ratio:5 / 8;border-radius:8px;border:1px solid rgba(227,183,120,.26);background:linear-gradient(170deg,#7a4dff33,#0d0b18e0);color:var(--el, var(--color-accent-500));box-shadow:inset 0 0 14px #7a4dff2e}.timeline-roman{font-family:var(--font-serif);font-size:9px;letter-spacing:.2em;color:#e3b778b8}.timeline-sigil{display:flex;filter:drop-shadow(0 0 6px currentColor);transition:transform .52s var(--ease-out)}.timeline-node.is-rev .timeline-sigil{transform:rotate(180deg)}.timeline-name{font-family:var(--font-serif);font-size:10px;color:var(--color-text-primary)}.timeline-kw{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;font-size:11px;color:var(--color-text-secondary)}.timeline-orient{font-size:9px;color:var(--color-accent-500);border:1px solid rgba(227,183,120,.3);border-radius:var(--radius-full);padding:0 6px}.timeline-node.is-rev .timeline-orient{color:var(--color-danger-600);border-color:#f2705f59}.timeline-hint{margin-top:var(--space-3);text-align:center;font-size:var(--text-xs);color:var(--color-text-tertiary)}.reading-card{scroll-margin-block:120px}.reading-flash{border-color:#e3b77899;animation:readingFlash 1.2s ease-out}@keyframes readingFlash{0%{box-shadow:0 0 #e3b77800}26%{box-shadow:0 0 40px #e3b77857}to{box-shadow:0 0 #e3b77800}}@media(max-width:720px){.timeline-track{overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}.timeline-node{flex:0 0 118px;scroll-snap-align:center}.tarot-front-el{top:10px;right:11px}}@media(prefers-reduced-motion:reduce){body:before,.hero-halo,.shuffle-card,.shuffle-deck:before,.tarot-setup,.tarot-shuffle,.tarot-draw,.tarot-result,.tarot-card,.insight,.tarot-readings,.tarot-actions,.tarot-guest,.reading-card,.tarot-reveal-cta,.timeline-node,.tarot-front-stars,.tarot-front-halo:after,.tarot-card-back-mandala,.tarot-card.is-flipped .tarot-front-frame{animation:none!important}.tarot-card,.tarot-card-inner{transition-duration:1ms}.tarot-card.is-flipped{transform:none}}[id]{scroll-margin-top:calc(var(--nav-height) + 20px)}.section-head{position:relative;padding-bottom:var(--space-3)}.section-head:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,rgba(227,183,120,.34),rgba(61,53,96,.55) 42%,transparent 92%)}.mystic-hero:after{content:"";position:absolute;left:50%;bottom:0;width:min(720px,78%);height:1px;transform:translate(-50%);background:linear-gradient(90deg,transparent,rgba(227,183,120,.22),transparent);pointer-events:none}.mystic-hero .hero-title{letter-spacing:.015em}.mystic-hero .hero-subtitle{max-width:620px}.btn-primary{background-image:linear-gradient(180deg,#ffffff1a,#fff0 62%)}.portal-kicker{margin-top:var(--space-1)}.portal-title{letter-spacing:.02em}.whisper-card:before{content:"“";position:absolute;top:2px;right:14px;font-family:var(--font-serif);font-size:46px;line-height:1;color:#e3b77824;pointer-events:none}.whisper-card:hover:before{color:#e3b7784d}.whisper-card:before{transition:color .32s var(--ease-out)}.sidebar-cat-item{position:relative;z-index:0;transition:color .26s var(--ease-out)}.sidebar-cat-item:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:var(--radius-sm);background:#7a4dff1f;transform:scaleX(0);transform-origin:0 50%;transition:transform .32s var(--ease-out)}.sidebar-cat-item:hover:before{transform:scaleX(1)}.tag:hover{border-color:#e3b7786b;color:var(--color-accent-500)}.compact-item{position:relative}.compact-item:before{content:"";position:absolute;left:-12px;top:50%;width:2px;height:0;transform:translateY(-50%);border-radius:2px;background:linear-gradient(180deg,var(--color-accent-500),rgba(227,183,120,.15));transition:height .32s var(--ease-out)}.compact-item:hover:before{height:68%}h1{text-wrap:balance}.mystic-hero .hero-subtitle,.portal-desc,.whisper-text,.section-head-sub,.mbti-intro-desc{text-wrap:pretty}.mbti-intro-label{font-size:var(--text-base);font-weight:500;color:var(--color-text-primary);margin-top:12px;white-space:nowrap}.route-view{position:relative;z-index:1;animation:routeIn var(--dur-page) var(--ease-out) both}@keyframes routeIn{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:none}}[data-reveal]:not([data-revealed]){opacity:0;transform:translate3d(var(--rx, 0px),var(--ry, 18px),0) scale(var(--rs, 1));transition:opacity .62s var(--ease-out) var(--d, 0ms),transform .76s var(--ease-out) var(--d, 0ms)}[data-reveal=fade]{--ry: 0px}[data-reveal=left]{--rx: -22px;--ry: 0px}[data-reveal=right]{--rx: 22px;--ry: 0px}[data-reveal=scale]{--ry: 8px;--rs: .97}[data-reveal=mask]{opacity:1;transform:none;clip-path:inset(0 0 105% 0);transition:clip-path .82s var(--ease-out) var(--d, 0ms)}[data-reveal][data-revealed]{opacity:1;transform:none;clip-path:inset(0 0 -10% 0)}.scroll-progress{position:fixed;top:0;left:0;z-index:60;width:100%;height:2px;transform:scaleX(var(--sp, 0));transform-origin:0 50%;background:linear-gradient(90deg,var(--color-brand-600),var(--color-brand-500) 55%,var(--color-accent-500));opacity:.9;pointer-events:none;will-change:transform}.navbar{transition:background-color .32s var(--ease-out),border-color .32s var(--ease-out),box-shadow .32s var(--ease-out)}.navbar.is-scrolled{background:#090810db;border-bottom-color:#3d3560e6;box-shadow:0 10px 30px #00000061}.navbar-logo,.navbar-logo-dot{transition:transform .42s var(--ease-spring)}.navbar-logo:hover .navbar-logo-dot{transform:scale(1.35)}.navbar-link:after{content:"";position:absolute;left:var(--space-3);right:var(--space-3);bottom:0;height:2px;border-radius:2px 2px 0 0;background:linear-gradient(90deg,var(--color-brand-600),var(--color-accent-500));transform:scaleX(0);transform-origin:0 50%;transition:transform .34s var(--ease-out)}.navbar-link:hover:after{transform:scaleX(1)}.navbar-link-active:after{transform:scaleX(1);background:var(--color-brand-600)}.navbar-link{transition:color .22s var(--ease-out)}.mystic-hero:before{transform:translate3d(0,calc(var(--sy, 0) * .06px),0);will-change:transform}.mystic-hero .hero-sigil,.mystic-hero .hero-title,.mystic-hero .hero-subtitle,.mystic-hero .hero-actions{animation:heroRise .9s var(--ease-out) both}.mystic-hero .hero-sigil{animation-delay:40ms}.mystic-hero .hero-title{animation-delay:.13s}.mystic-hero .hero-subtitle{animation-delay:.25s}.mystic-hero .hero-actions{animation-delay:.36s}@keyframes heroRise{0%{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:none}}.mystic-hero .hero-title em{background-size:220% 100%;animation:goldDrift 16s ease-in-out infinite}@keyframes goldDrift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.portal-card{animation:cardRise .76s var(--ease-out) .12s backwards;transition:transform .52s var(--ease-out),border-color .32s var(--ease-out),box-shadow .32s var(--ease-out)}.portal-card-tarot{animation-delay:.2s}.portal-card[data-tilting]{transition-duration:.13s}.portal-card:before{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;background:radial-gradient(260px circle at var(--mx, 50%) var(--my, 0%),rgba(255,255,255,.1),transparent 68%);opacity:0;transition:opacity .32s var(--ease-out);pointer-events:none}.portal-card:hover:before{opacity:1}.portal-card>*{position:relative;z-index:1}.portal-icon{transition:transform .42s var(--ease-spring),background-color .32s var(--ease-out),color .32s var(--ease-out)}.portal-card:hover .portal-icon{transform:translateY(-2px) rotate(-4deg) scale(1.05)}.portal-cta svg{transition:transform .36s var(--ease-out)}.portal-card:hover .portal-cta svg{transform:translate(4px)}.portal-pill{transition:border-color .26s var(--ease-out),color .26s var(--ease-out)}.portal-card:hover .portal-pill{border-color:var(--color-border-strong);color:var(--color-text-secondary)}.article-grid>*,.whisper-grid>*,.mbti-dimensions>*,.mbti-result-cols>*{animation:cardRise .56s var(--ease-out) both}.article-grid>*:nth-child(2),.whisper-grid>*:nth-child(2),.mbti-dimensions>*:nth-child(2),.mbti-result-cols>*:nth-child(2){animation-delay:60ms}.article-grid>*:nth-child(3),.whisper-grid>*:nth-child(3),.mbti-dimensions>*:nth-child(3),.mbti-result-cols>*:nth-child(3){animation-delay:.12s}.article-grid>*:nth-child(4),.whisper-grid>*:nth-child(4),.mbti-dimensions>*:nth-child(4){animation-delay:.18s}.article-grid>*:nth-child(5),.whisper-grid>*:nth-child(5){animation-delay:.24s}.article-grid>*:nth-child(6),.whisper-grid>*:nth-child(6){animation-delay:.3s}@keyframes cardRise{0%{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:none}}.section-title-row{animation:heroRise .62s var(--ease-out) both}.compact-item{transition:transform .34s var(--ease-out),border-color .32s var(--ease-out),background-color .32s var(--ease-out)}@media(hover:hover){.compact-item:hover{transform:translate(4px)}}.whisper-card{transition:transform .42s var(--ease-out),border-color .32s var(--ease-out),box-shadow .42s var(--ease-out)}.whisper-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #00000057,0 0 0 1px #e3b77829}.whisper-card:hover .whisper-badge{border-color:#e3b77899}.article-card,.featured-card{transition:transform .42s var(--ease-out),border-color .32s var(--ease-out),box-shadow .42s var(--ease-out)}.article-card-cover img,.featured-card-cover img{transition:transform .82s var(--ease-out)}@media(hover:hover){.article-card:hover,.featured-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.article-card:hover .article-card-cover img,.featured-card:hover .featured-card-cover img{transform:scale(1.035)}}.btn{transition:background-color .22s var(--ease-out),border-color .22s var(--ease-out),color .22s var(--ease-out),box-shadow .32s var(--ease-out),transform .32s var(--ease-spring)}.btn:active:not(:disabled){transform:scale(.985)}.btn-primary:hover:not(:disabled){box-shadow:0 8px 26px #7a4dff6b}.btn-secondary:hover:not(:disabled),.btn-ghost:hover:not(:disabled){transform:translateY(-1px)}.icon-btn{transition:background-color .22s var(--ease-out),color .22s var(--ease-out),transform .34s var(--ease-spring)}.icon-btn:hover{transform:translateY(-1px)}.icon-btn:active{transform:scale(.94)}.tag,.type-chip,.portal-pill{transition:transform .3s var(--ease-spring),border-color .26s var(--ease-out),color .26s var(--ease-out),background-color .26s var(--ease-out)}.tag:hover,.type-chip:hover{transform:translateY(-1px)}.mbti-intro>*{animation:heroRise .82s var(--ease-out) both}.mbti-intro>*:nth-child(1){animation-delay:40ms}.mbti-intro>*:nth-child(2){animation-delay:.12s}.mbti-intro>*:nth-child(3){animation-delay:.21s}.mbti-intro>*:nth-child(4){animation-delay:.29s}.mbti-intro>*:nth-child(5){animation-delay:.36s}.mbti-result>*{animation:cardRise .62s var(--ease-out) both}.mbti-result>*:nth-child(1){animation-delay:20ms}.mbti-result>*:nth-child(2){animation-delay:90ms}.mbti-result>*:nth-child(3){animation-delay:.15s}.mbti-result>*:nth-child(4){animation-delay:.22s}.mbti-result>*:nth-child(5){animation-delay:.29s}.mbti-result>*:nth-child(6){animation-delay:.35s}.mbti-progress-bar span{transition:width .62s var(--ease-out)}.mbti-question{animation:stepIn .46s var(--ease-out) both}@keyframes stepIn{0%{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:none}}.mbti-scale-btn{transition:transform .3s var(--ease-spring),border-color .24s var(--ease-out),background-color .24s var(--ease-out),color .24s var(--ease-out)}.mbti-scale-btn:hover{transform:translateY(-1px)}.mbti-scale-btn-active{transform:translateY(-2px)}.mbti-scale-btn-active .mbti-scale-check{animation:popIn .32s var(--ease-spring) both}@keyframes popIn{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.mbti-bar-fill{transition:width .9s var(--ease-out)}.mbti-result-emoji,.mbti-emblem{animation:emojiFloat .62s var(--ease-out) both}@keyframes emojiFloat{0%{opacity:0;transform:translate3d(-8px,6px,0) scale(.9)}to{opacity:1;transform:none}}.drawer,.dropdown-menu,.modal{will-change:transform,opacity}@media(prefers-reduced-motion:reduce){.route-view,.mystic-hero .hero-sigil,.mystic-hero .hero-title,.mystic-hero .hero-subtitle,.mystic-hero .hero-actions,.article-grid>*,.whisper-grid>*,.mbti-dimensions>*,.mbti-result-cols>*,.mbti-question,.mbti-result-emoji,.mbti-emblem,.mbti-bg-star{animation:none!important}[data-reveal]:not([data-revealed]){opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}.portal-card,.portal-card[data-tilting],.whisper-card,.btn,.icon-btn,.mbti-scale-btn{transition:none!important;transform:none!important}.mystic-hero:before{transform:none}.mystic-hero .hero-title em{animation:none}.scroll-progress{display:none}}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;min-height:52vh;color:var(--color-text-tertiary)}.page-loading-ring{display:flex;gap:6px}.page-loading-dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent-500);opacity:.3;animation:loadPulse 1.2s var(--ease-soft) infinite}.page-loading-dot:nth-child(2){animation-delay:.16s}.page-loading-dot:nth-child(3){animation-delay:.32s}@keyframes loadPulse{0%,to{opacity:.22;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}.page-loading-text{font-size:var(--text-xs);letter-spacing:.18em}@media(prefers-reduced-motion:reduce){.page-loading-dot{animation:none;opacity:.6}}.games-page{padding-top:calc(var(--nav-height) + var(--space-8));padding-bottom:var(--space-16);min-height:72vh}.fishing-teaser{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);text-decoration:none;transition:transform .32s var(--ease-out),border-color .28s var(--ease-out)}.fishing-teaser:hover{transform:translateY(-3px);border-color:#8fb8ff80}.fishing-teaser-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border-radius:12px;color:#8fb8ff;background:#6fa8ff1f;border:1px solid rgba(111,168,255,.22)}.fishing-teaser-main{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.fishing-teaser-main strong{font-family:var(--font-serif);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.fishing-teaser-main em{font-style:normal;font-size:var(--text-sm);color:var(--color-text-tertiary)}.fishing-teaser-cta{display:inline-flex;align-items:center;gap:5px;flex:none;font-size:var(--text-sm);color:#8fb8ff}@media(max-width:640px){.fishing-teaser{flex-wrap:wrap}.fishing-teaser-cta{margin-left:56px}}.games-hero{margin-bottom:var(--space-8)}.games-kicker{display:inline-flex;align-items:center;gap:6px;margin:0 0 var(--space-3);padding:4px 10px;border:1px solid rgba(227,183,120,.28);border-radius:var(--radius-full);font-size:var(--text-xs);letter-spacing:.18em;color:var(--color-accent-500);background:#e3b7780f}.games-title{margin:0 0 var(--space-3);font-family:var(--font-serif);font-size:var(--text-4xl);font-weight:600;color:var(--color-text-primary);letter-spacing:.01em;text-wrap:balance}.games-sub{margin:0;max-width:640px;font-size:var(--text-md);line-height:1.8;color:var(--color-text-secondary);text-wrap:pretty}.games-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.game-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);transition:transform .32s var(--ease-out),border-color .28s var(--ease-out)}.game-card:hover{transform:translateY(-3px);border-color:var(--color-border-hover)}.game-card-top{display:flex;gap:var(--space-3);align-items:flex-start}.game-card-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:11px;color:var(--color-accent-500);background:#e3b7781a;border:1px solid rgba(227,183,120,.16)}.game-card-name{margin:0 0 3px;font-family:var(--font-serif);font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary)}.game-card-sub{margin:0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.game-card-hint{margin:0;padding-left:10px;border-left:2px solid rgba(227,183,120,.28);font-size:var(--text-sm);line-height:1.7;color:var(--color-text-secondary)}.game-card-actions{display:flex;gap:var(--space-2);margin-top:auto}.games-panels{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--space-4);align-items:start}.games-panel{padding:var(--space-5);border-radius:var(--radius-lg)}.games-panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.games-panel-title{display:inline-flex;align-items:center;gap:7px;margin:0 0 var(--space-3);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.games-panel-head .games-panel-title{margin-bottom:0}.games-refresh{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:transparent;font-size:var(--text-xs);color:var(--color-text-tertiary);cursor:pointer;transition:color .24s var(--ease-out),border-color .24s var(--ease-out)}.games-refresh:hover{color:var(--color-accent-500);border-color:#e3b77866}.games-refresh .is-spinning{animation:gamesSpin .9s linear infinite}@keyframes gamesSpin{to{transform:rotate(360deg)}}.games-empty{display:flex;align-items:center;gap:7px;margin:0;padding:var(--space-5) 0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.room-list{display:flex;flex-direction:column;gap:var(--space-2);margin:0;padding:0;list-style:none}.room-row{display:flex;align-items:center;gap:var(--space-3);padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#ffffff04;transition:border-color .26s var(--ease-out),background .26s var(--ease-out)}.room-row:hover{border-color:var(--color-border-hover);background:#7a4dff0f}.room-row-icon{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:8px;color:var(--color-brand-500);background:#7a4dff1f}.room-row-main{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.room-row-main strong{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-row-main em{font-style:normal;font-size:var(--text-xs);color:var(--color-text-tertiary);font-family:var(--font-mono)}.join-form{display:flex;flex-direction:column;gap:var(--space-2)}.join-input{width:100%;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#0a091399;font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:.32em;text-align:center;text-transform:uppercase;color:var(--color-text-primary);transition:border-color .22s var(--ease-out)}.join-input:focus{outline:none;border-color:#e3b7788c;box-shadow:0 0 0 3px #e3b7781f}.join-input::placeholder{letter-spacing:.16em;color:var(--color-text-disabled)}.nickname-row{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.nickname-row>label{display:block;margin-bottom:6px;font-size:var(--text-xs);letter-spacing:.1em;color:var(--color-text-tertiary)}.nickname-edit{display:flex;gap:var(--space-2)}.nickname-edit input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#0a091399;font-size:var(--text-sm);color:var(--color-text-primary)}.nickname-save{flex:none;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;transition:color .22s var(--ease-out),border-color .22s var(--ease-out)}.nickname-save:hover{color:var(--color-accent-500);border-color:#e3b77866}.nickname-tip{margin:6px 0 0;font-size:11px;color:var(--color-text-tertiary)}.room-page{padding-top:calc(var(--nav-height) + var(--space-6))}.room-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap}.room-back,.room-copy{display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border:1px solid transparent;border-radius:var(--radius-full);background:transparent;font-size:var(--text-sm);color:var(--color-text-tertiary);text-decoration:none;cursor:pointer;transition:color .22s var(--ease-out),background .22s var(--ease-out)}.room-back:hover,.room-copy:hover{color:var(--color-accent-500);background:#e3b77814}.room-id{display:flex;align-items:baseline;gap:10px}.room-code{font-family:var(--font-mono);font-size:var(--text-lg);letter-spacing:.22em;color:var(--color-accent-500)}.room-game{font-size:var(--text-sm);color:var(--color-text-tertiary)}.room-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-6);align-items:start}.room-board-wrap{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.gb-wrap{width:100%;max-width:560px;padding:10px;border-radius:var(--radius-xl);border:1px solid rgba(227,183,120,.18);background:radial-gradient(120% 90% at 50% 0%,rgba(122,77,255,.14),transparent 62%),linear-gradient(165deg,#16122b,#100d20 60%,#0c0a18);box-shadow:0 24px 60px #00000073;transition:box-shadow .42s var(--ease-out)}.gb-wrap.is-my-turn{box-shadow:0 24px 60px #00000073,0 0 0 1px #e3b77838,0 0 44px #e3b7781a}.gb-svg{display:block;width:100%;height:auto;cursor:default;touch-action:manipulation}.gb-wrap.is-my-turn .gb-svg{cursor:crosshair}.gb-line{stroke:#e3b77829;stroke-width:1}.gb-line-strong{stroke:#e3b77857;stroke-width:1.6}.gb-star{fill:#e3b77873}.gb-board-bg{fill:#ffffff05;stroke:#e3b77829}.gb-cell{fill:#ffffff07;stroke:#e3b77814;stroke-width:1;transition:fill .22s var(--ease-out)}.gb-cell.is-legal{fill:#e3b77826;stroke:#e3b7786b}.gb-stone-ring{fill:none;stroke:#ffffff24;stroke-width:1}.gb-stone.is-last .gb-stone-ring{stroke:var(--color-accent-500);stroke-width:2;filter:drop-shadow(0 0 6px rgba(227,183,120,.6))}.gb-ghost{opacity:.5;pointer-events:none}.room-result{width:100%;max-width:560px;padding:var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-bg-glass-strong);text-align:center;animation:resultIn .42s var(--ease-out) both}@keyframes resultIn{0%{opacity:0;transform:translateY(10px)}}.room-result-kicker{margin:0 0 6px;font-size:var(--text-xs);letter-spacing:.18em;color:var(--color-text-tertiary)}.room-result h2{margin:0 0 var(--space-4);font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:600}.room-result.is-win h2{color:var(--color-accent-500)}.room-result.is-lose h2{color:var(--color-text-secondary)}.room-result.is-draw h2{color:var(--color-brand-500)}.room-result-actions{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap}.room-waiting{width:100%;max-width:560px;min-height:340px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8);border-radius:var(--radius-xl);border:1px dashed rgba(227,183,120,.26);background:#ffffff04;text-align:center;color:var(--color-text-tertiary)}.room-waiting h2{margin:0;font-family:var(--font-serif);font-size:var(--text-2xl);color:var(--color-text-primary)}.room-waiting p{margin:0;font-size:var(--text-sm);line-height:1.8}.room-waiting strong{font-family:var(--font-mono);letter-spacing:.2em;color:var(--color-accent-500)}.room-waiting-hint{margin:0;padding:6px 14px;border-radius:var(--radius-full);border:1px dashed rgba(227,183,120,.26);font-size:var(--text-xs);color:var(--color-text-secondary)}.room-waiting-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;justify-content:center}.room-waiting-actions .btn,.room-result-actions .btn{text-decoration:none}.room-side{display:flex;flex-direction:column;gap:var(--space-3);position:sticky;top:calc(var(--nav-height) + var(--space-4))}.room-seats{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg)}.seat{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:var(--radius-md);border:1px solid transparent;font-size:var(--text-sm);color:var(--color-text-secondary);transition:border-color .3s var(--ease-out),background .3s var(--ease-out)}.seat.is-turn{border-color:#e3b77857;background:#e3b77812;color:var(--color-text-primary)}.seat-dot{flex:none;width:12px;height:12px;border-radius:50%}.seat-dot-host{background:radial-gradient(circle at 34% 30%,#6f63a8,#191533 78%);box-shadow:inset 0 0 0 1px #ffffff2e}.seat-dot-guest{background:radial-gradient(circle at 34% 30%,#ffe9b8,#a97c3d 80%);box-shadow:inset 0 0 0 1px #ffffff38}.seat-name{flex:1;display:inline-flex;align-items:center;gap:5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-tag{flex:none;padding:1px 7px;border-radius:var(--radius-full);background:#ffffff0d;font-size:10px;letter-spacing:.08em;color:var(--color-text-secondary)}.seat.is-turn .seat-tag{background:#e3b77829;color:var(--color-accent-500)}.seat-note{margin:4px 0 0;font-size:var(--text-xs);line-height:1.7;color:var(--color-text-tertiary)}.room-status{padding:var(--space-4);border-radius:var(--radius-lg)}.room-status-line{display:flex;align-items:center;gap:6px;margin:0 0 4px;font-size:var(--text-sm);color:var(--color-text-primary)}.room-status-meta{margin:0;font-family:var(--font-mono);font-size:11px;color:var(--color-text-tertiary)}.room-log{margin:var(--space-3) 0 0;padding:var(--space-3) 0 0;border-top:1px solid var(--color-border);list-style:none;display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--color-text-tertiary)}.room-actions{display:flex;flex-direction:column;gap:var(--space-2)}.room-actions .btn{text-decoration:none}.games-missing{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);padding-top:calc(var(--nav-height) + var(--space-16))}.games-missing .btn{text-decoration:none}@media(max-width:1000px){.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.games-panels,.room-layout{grid-template-columns:minmax(0,1fr)}.room-side{position:static}}@media(max-width:640px){.games-grid{grid-template-columns:minmax(0,1fr)}.games-title{font-size:var(--text-3xl)}.games-page{padding-top:calc(var(--nav-height) + var(--space-5))}.room-id{order:-1;width:100%;justify-content:space-between}.game-card-actions .btn{flex:1;justify-content:center}}@media(prefers-reduced-motion:reduce){.room-result,.games-refresh .is-spinning{animation:none}.game-card:hover{transform:none}}.game-card-players{margin-left:6px;padding:0 6px;border-radius:var(--radius-full);background:#e3b77824;font-family:var(--font-sans);font-size:10px;font-weight:500;letter-spacing:0;color:var(--color-accent-500);vertical-align:2px}.ddz{position:relative;display:flex;flex-direction:column;gap:var(--space-3);width:100%;padding:var(--space-4);border-radius:var(--radius-xl);border:1px solid rgba(227,183,120,.18);background:radial-gradient(120% 80% at 50% 0%,rgba(122,77,255,.12),transparent 60%),linear-gradient(165deg,#16122b,#100d20 60%,#0c0a18);box-shadow:0 24px 60px #00000073}.ddz-opponents{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.ddz-opp{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--color-border);background:#ffffff05;transition:border-color .3s var(--ease-out),background .3s var(--ease-out)}.ddz-opp.is-turn{border-color:#e3b77866;background:#e3b77812}.ddz-opp-head{display:flex;align-items:center;gap:6px;min-width:0}.ddz-opp-avatar{display:grid;place-items:center;flex:none;width:20px;height:20px;border-radius:50%;background:#7a4dff29;color:var(--color-brand-500)}.ddz-opp-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-sm);color:var(--color-text-primary)}.ddz-opp-crown{flex:none;display:grid;place-items:center;color:var(--color-accent-500)}.ddz-opp-meta{display:flex;justify-content:space-between;gap:6px;font-size:11px;color:var(--color-text-tertiary)}.ddz-opp-count{font-family:var(--font-mono)}.ddz-opp-count.is-low{color:#e2706a;animation:ddz-count-pulse 1.6s ease-in-out infinite}@keyframes ddz-count-pulse{0%,to{opacity:1}50%{opacity:.55}}.ddz-bottom{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap}.ddz-bottom-label,.ddz-bottom-owner{font-size:11px;letter-spacing:.12em;color:var(--color-text-tertiary)}.ddz-bottom-cards{display:flex;gap:3px}.ddz-table-area{min-height:92px;display:flex;align-items:center;justify-content:center;padding:var(--space-2);border-radius:var(--radius-md);border:1px dashed rgba(227,183,120,.16);background:#0000002e}.ddz-played{display:flex;flex-direction:column;gap:6px;align-items:center}.ddz-played-who{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--color-text-tertiary)}.ddz-played-who em{font-style:normal;padding:0 6px;border-radius:var(--radius-full);background:#e3b7781f;color:var(--color-accent-500)}.ddz-played.is-mine .ddz-played-who{color:var(--color-text-secondary)}.ddz-played-cards{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}.ddz-hint{margin:0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.ddz-mine{display:flex;flex-direction:column;gap:6px}.ddz-mine-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.ddz-mine-label{display:inline-flex;align-items:center;gap:5px;font-size:11px;letter-spacing:.1em;color:var(--color-text-tertiary)}.ddz-mine-label em{font-style:normal;font-family:var(--font-mono);color:var(--color-text-secondary)}.ddz-mine-crown{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:var(--radius-full);background:#e3b77824;font-size:10px;color:var(--color-accent-500)}.ddz-hand{display:block;overflow-x:auto;overflow-y:hidden;padding:12px 4px 16px;scrollbar-width:thin}.ddz-hand-inner{display:flex;flex-wrap:nowrap;justify-content:center;justify-content:safe center;width:max-content;min-width:100%;margin-inline:auto}.ddz-hand-inner .ddz-card+.ddz-card{margin-left:-14px}.ddz-hand .ddz-card{flex:none}.ddz-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;width:44px;height:62px;padding:4px 2px;border-radius:6px;border:1px solid rgba(227,183,120,.28);background:linear-gradient(170deg,#f7f3ea,#e8e2d4);color:#241d33;cursor:default;transition:transform .22s var(--ease-out),box-shadow .22s var(--ease-out),border-color .22s var(--ease-out);user-select:none;-webkit-tap-highlight-color:transparent}.ddz-card:disabled{cursor:default}.ddz-card-rank{font-family:var(--font-serif);font-size:17px;font-weight:700;line-height:1.1}.ddz-card-suit{font-size:13px;line-height:1}.ddz-card.is-red .ddz-card-rank,.ddz-card.is-red .ddz-card-suit{color:#b23b3b}.ddz-card.is-small{width:28px;height:40px;padding:2px 1px;border-radius:4px}.ddz-card.is-small .ddz-card-rank{font-size:12px}.ddz-card.is-small .ddz-card-suit{font-size:10px}.ddz-card.is-dim{opacity:.4;filter:saturate(.5)}.ddz-card:not(:disabled):hover{z-index:3;border-color:#e3b778b3;transform:translateY(-3px)}.ddz-card.is-selected{z-index:4;transform:translateY(-9px);border-color:var(--color-accent-500);box-shadow:0 8px 18px #e3b77847}.ddz-actions{display:flex;align-items:center;justify-content:center;gap:var(--space-2);flex-wrap:wrap;min-height:34px}.ddz-wait,.ddz-over-note{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--color-text-tertiary)}.ddz-deal{position:absolute;inset:0;z-index:8;overflow:hidden;border-radius:var(--radius-xl);background:radial-gradient(90% 70% at 50% 44%,rgba(122,77,255,.16),transparent 70%),#0c0a18d1;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:1;transition:opacity .3s var(--ease-out);pointer-events:auto}.ddz-deal.is-out{opacity:0}.ddz-cardback{position:absolute;left:50%;top:50%;width:44px;height:62px;border-radius:6px;border:1px solid rgba(227,183,120,.5);background:repeating-linear-gradient(45deg,rgba(227,183,120,.08) 0 4px,transparent 4px 8px),linear-gradient(160deg,#332a63,#221b47 55%,#181335);box-shadow:0 2px 8px #0006}.ddz-cardback:before{content:"";position:absolute;left:50%;top:50%;width:9px;height:9px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid rgba(227,183,120,.55);background:#e3b7781a}.ddz-deal-deck{position:absolute;left:50%;top:44%;width:0;height:0}.ddz-deal-stack{position:absolute;left:0;top:0;width:0;height:0;animation:ddz-riffle .3s var(--ease-in-out) 2}.ddz-deal-stack .ddz-cardback{transform:translate(-50%,-50%) translate(calc(var(--i) * .7px),calc(var(--i) * -.7px))}.ddz-deal-stack.is-b .ddz-cardback{transform:translate(-50%,-50%) translate(calc(var(--i) * -.7px),calc(var(--i) * .7px))}@keyframes ddz-riffle{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(24px,-1px) rotate(2deg)}}.ddz-deal-stack.is-b{animation-name:ddz-riffle-b}@keyframes ddz-riffle-b{0%,to{transform:translate(0) rotate(0)}50%{transform:translate(-24px,1px) rotate(-2deg)}}.ddz-deal-caption{position:absolute;left:50%;top:26px;transform:translate(-50%);margin:0;white-space:nowrap;font-size:11px;letter-spacing:.2em;color:var(--color-accent-500);animation:ddz-deal-caption .6s var(--ease-out) both}@keyframes ddz-deal-caption{0%{opacity:0;transform:translate(-50%) translateY(4px)}25%,75%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0}}.ddz-deal-fly{position:absolute;left:50%;top:44%;width:44px;height:62px;opacity:0;animation:ddz-fly .38s var(--ease-out) both}@keyframes ddz-fly{0%{transform:translate(-50%,-50%) scale(1);opacity:0}12%{opacity:1}55%{transform:translate(calc(-50% + var(--tx) * .55),calc(-50% + var(--ty) * .55 - 22px)) scale(.78)}to{transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(.52);opacity:.92}}.ddz.is-dealt .ddz-hand .ddz-card{animation:ddz-card-in .32s var(--ease-out) both}@keyframes ddz-card-in{0%{opacity:0;transform:translateY(14px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.ddz-deal{display:none}.ddz.is-dealt .ddz-hand .ddz-card,.ddz-opp-count.is-low{animation:none}}.room-waiting-seats{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:var(--space-2) 0 0;padding:0;list-style:none;font-size:var(--text-xs);color:var(--color-text-secondary)}.room-waiting-seats li{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-full);border:1px solid var(--color-border)}.room-waiting-seats li.is-empty{border-style:dashed;color:var(--color-text-tertiary)}.seat.is-empty{border-color:#ffffff0f;color:var(--color-text-disabled)}.seat.is-empty .seat-dot{background:#ffffff1a}.seat-tag-landlord{display:inline-flex;align-items:center;gap:3px;border:1px solid rgba(227,183,120,.4);background:#e3b77824;color:var(--color-accent-500)}.room-board-wrap.is-wide{max-width:none}@media(max-width:640px){.ddz{padding:var(--space-3)}.ddz-card{width:38px;height:54px}.ddz-card-rank{font-size:15px}.ddz-card-suit{font-size:11px}.ddz-card.is-small{width:24px;height:34px}.ddz-hand-inner .ddz-card+.ddz-card{margin-left:-10px}.ddz-cardback,.ddz-deal-fly{width:38px;height:54px}.ddz-cardback:after{font-size:12px}.ddz-table-area{min-height:78px}}.turtle{position:relative;width:100%;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-xl);border:1px solid rgba(227,183,120,.18);background:radial-gradient(120% 80% at 50% 0%,rgba(122,77,255,.12),transparent 60%),linear-gradient(165deg,#16122b,#100d20 60%,#0c0a18);box-shadow:0 24px 60px #00000073}.turtle-opps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--space-4);min-width:0}.turtle-opp{min-width:0;padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid rgba(227,183,120,.14);background:#ffffff05;transition:border-color var(--duration-base) var(--ease-out),background var(--duration-base) var(--ease-out)}.turtle-opp.is-turn{border-color:#e3b77880;background:#e3b7780f}.turtle-opp.is-out{opacity:.5}.turtle-opp-head{display:flex;align-items:center;gap:6px;font-size:12px}.turtle-opp-avatar{display:grid;place-items:center;width:20px;height:20px;flex:none;border-radius:50%;background:#e3b7781f;color:var(--color-accent-500)}.turtle-opp-name{color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.turtle-opp-count{margin-left:auto;flex:none;font-family:var(--font-mono);font-size:11px;color:var(--color-text-tertiary)}.turtle-backs{display:flex;align-items:flex-end;min-height:56px;padding:8px 0 12px;overflow-x:auto;overflow-y:hidden}.turtle-back{position:relative;flex:none;width:34px;height:48px;margin-left:-14px;padding:0;border-radius:5px;border:1px solid rgba(227,183,120,.5);background:repeating-linear-gradient(45deg,rgba(227,183,120,.08) 0 4px,transparent 4px 8px),linear-gradient(160deg,#332a63,#221b47 55%,#181335);box-shadow:0 2px 8px #0006;cursor:default;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out);-webkit-tap-highlight-color:transparent}.turtle-back:first-child{margin-left:0}.turtle-back:before{content:"";position:absolute;left:50%;top:50%;width:7px;height:7px;transform:translate(-50%,-50%) rotate(45deg);border:1px solid rgba(227,183,120,.5);background:#e3b7781a}.turtle-back:not(:disabled){cursor:pointer}.turtle-back:not(:disabled):hover,.turtle-back:not(:disabled):focus-visible{transform:translateY(-8px);border-color:var(--color-accent-500);box-shadow:0 10px 20px #00000080;outline:none;z-index:3}.turtle-tip{display:block;margin-top:6px;font-size:11px;color:var(--color-accent-500)}.turtle-middle{padding:var(--space-2) 0;text-align:center}.turtle-status{margin:0;font-family:var(--font-serif);font-size:15px;color:var(--color-text-secondary)}.turtle-status.is-mine{color:var(--color-accent-500)}.turtle-last{margin:4px 0 0;font-size:12px;color:var(--color-text-tertiary)}.turtle-mine{padding-top:var(--space-3);border-top:1px dashed rgba(227,183,120,.18)}.turtle-mine-head{display:flex;justify-content:space-between;margin-bottom:8px;font-size:12px;color:var(--color-text-tertiary)}.turtle-mine-count{font-family:var(--font-mono)}.turtle-hand{display:flex;min-height:68px;padding:4px 2px 10px;overflow-x:auto}.turtle-hand .tcard+.tcard{margin-left:-12px}.turtle-hand-empty{font-size:12px;color:var(--color-text-tertiary)}.tcard{position:relative;display:flex;flex:none;flex-direction:column;align-items:center;justify-content:flex-start;gap:1px;width:44px;height:62px;padding:4px 2px;border-radius:6px;border:1px solid rgba(227,183,120,.28);background:linear-gradient(170deg,#f7f3ea,#e8e2d4);color:#241d33;user-select:none;transition:transform var(--duration-fast) var(--ease-out)}.turtle-hand .tcard:hover{transform:translateY(-4px);z-index:2}.tcard-rank{font-family:var(--font-serif);font-size:16px;font-weight:600;line-height:1}.tcard-suit{font-size:13px;line-height:1.1}.tcard.is-red{color:#b03a2e}.tcard.is-turtle{border-color:#4fd39a8c;background:linear-gradient(170deg,#e9f6ee,#cfe8d8);color:#1f6b45}@media(max-width:640px){.turtle{padding:var(--space-3)}.turtle-opps{grid-template-columns:1fr}.turtle-back{width:28px;height:40px;margin-left:-10px}.tcard{width:38px;height:54px}.tcard-rank{font-size:14px}.tcard-suit{font-size:11px}}.game-card-seats{display:flex;align-items:center;gap:6px;margin:2px 0 10px;font-size:11px;color:var(--color-text-tertiary)}.seat-pick{width:30px;height:26px;padding:0;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg-subtle);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:12px;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.seat-pick:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.seat-pick.is-active{border-color:#e3b7788c;background:#e3b7781f;color:var(--color-accent-500)}.seat-pick:focus-visible{outline:none;box-shadow:var(--ring-brand)}.turtle-seats-pick{display:flex;align-items:center;gap:6px;margin:0 0 var(--space-3)}.turtle-seats-label{margin-right:4px;font-size:12px;color:var(--color-text-tertiary)}.turtle-seat-btn{padding:5px 12px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.turtle-seat-btn:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.turtle-seat-btn.is-active{border-color:#e3b77880;background:#e3b7781a;color:var(--color-accent-500)}.turtle-seat-btn:focus-visible{outline:none;box-shadow:var(--ring-brand)}@media(max-width:640px){.turtle-seat-btn{padding:5px 10px;font-size:12px}}.room-chat{display:flex;flex-direction:column;gap:8px;padding:var(--space-3) var(--space-3) var(--space-2)}.room-chat-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--color-text-tertiary)}.room-chat-title{display:inline-flex;align-items:center;gap:5px;color:var(--color-text-secondary)}.room-chat-count{font-family:var(--font-mono);font-size:11px}.room-chat-list{display:flex;flex-direction:column;gap:6px;max-height:210px;min-height:76px;padding-right:2px;overflow-y:auto;overscroll-behavior:contain}.room-chat-empty{margin:auto;font-size:12px;color:var(--color-text-disabled)}.chat-msg{max-width:88%;padding:5px 9px;border-radius:10px 10px 10px 3px;background:var(--color-bg-subtle);border:1px solid var(--color-border);animation:chat-in .22s var(--ease-out) both}.chat-msg.is-me{align-self:flex-end;border-radius:10px 10px 3px;border-color:#e3b77847;background:#e3b7781a}@keyframes chat-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.chat-name{display:block;margin-bottom:2px;font-size:10px;letter-spacing:.02em;color:var(--color-text-tertiary)}.chat-text{margin:0;font-size:13px;line-height:1.5;color:var(--color-text-primary);word-break:break-word}.room-chat-form{display:flex;gap:6px;align-items:center}.room-chat-input{flex:1;min-width:0;height:34px;padding:0 10px;font-size:13px}.room-chat-send{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:var(--radius-md);border:1px solid rgba(227,183,120,.35);background:#e3b7781f;color:var(--color-accent-500);cursor:pointer;transition:background var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out)}.room-chat-send:disabled{opacity:.45;cursor:default}.room-chat-send:not(:disabled):hover{background:#e3b77838}.room-chat-send:focus-visible{outline:none;box-shadow:var(--ring-brand)}.room-chat-error{margin:0;font-size:11px;color:var(--color-danger-600)}@media(max-width:1000px){.room-chat-list{max-height:160px}}.gb-stone{transform-box:fill-box;transform-origin:center;animation:gb-stone-in .26s var(--ease-out) backwards}@keyframes gb-stone-in{0%{opacity:0;transform:scale(1.4)}to{opacity:1;transform:scale(1)}}.gb-stone.is-flipping{animation:gb-flip .42s var(--ease-soft) both}@keyframes gb-flip{0%{transform:scaleX(1)}48%{transform:scaleX(.06)}to{transform:scaleX(1)}}.gb-stone.is-last .gb-stone-ring{animation:gb-last-ring 1.8s var(--ease-out) infinite}@keyframes gb-last-ring{0%{stroke-opacity:1}70%{stroke-opacity:0}to{stroke-opacity:0}}.gb-cell.is-legal{animation:gb-legal 2.4s var(--ease-soft) infinite}@keyframes gb-legal{0%,to{fill-opacity:.55}50%{fill-opacity:1}}.gb-wrap.is-my-turn .gb-svg{filter:drop-shadow(0 0 12px rgba(227,183,120,.22));transition:filter var(--duration-slow) var(--ease-out)}.turtle-back{animation:turtle-back-in .3s var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 16ms)}@keyframes turtle-back-in{0%{opacity:0;transform:translateY(-10px) rotate(-5deg)}to{opacity:1;transform:none}}.turtle-card-slot{display:block;flex:none;animation:turtle-card-in .28s var(--ease-out) backwards;animation-delay:calc(var(--i, 0) * 26ms)}@keyframes turtle-card-in{0%{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:none}}.turtle-hand .turtle-card-slot+.turtle-card-slot{margin-left:-12px}.turtle-opp.is-drawing{animation:turtle-shake .42s var(--ease-soft)}@keyframes turtle-shake{0%,to{transform:translate(0)}22%{transform:translate(-3px)}52%{transform:translate(3px)}78%{transform:translate(-2px)}}.turtle-mine.is-receiving{animation:turtle-receive .78s var(--ease-out)}@keyframes turtle-receive{0%{box-shadow:inset 0 0 0 1px transparent}35%{box-shadow:inset 0 0 0 1px #e3b77873,0 0 24px #e3b77829}to{box-shadow:inset 0 0 0 1px transparent}}.turtle-match{display:inline-block;margin-top:6px;padding:2px 10px;border-radius:var(--radius-full);border:1px solid rgba(79,211,154,.4);background:#4fd39a24;color:#7be3b4;font-size:12px;animation:turtle-match-up .9s var(--ease-out) both}@keyframes turtle-match-up{0%{opacity:0;transform:translateY(8px) scale(.9)}25%{opacity:1;transform:translateY(0) scale(1)}75%{opacity:1}to{opacity:0;transform:translateY(-10px)}}.turtle-status.is-mine{animation:turtle-status-pulse 2.2s var(--ease-soft) infinite}@keyframes turtle-status-pulse{0%,to{opacity:.82}50%{opacity:1}}.ddz-played{animation:ddz-play-in .3s var(--ease-out) both}@keyframes ddz-play-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}.ddz-opp.is-turn{animation:ddz-turn-glow 2.6s var(--ease-soft) infinite}@keyframes ddz-turn-glow{0%,to{box-shadow:0 0 0 1px #e3b77840}50%{box-shadow:0 0 0 1px #e3b7788c,0 0 18px #e3b77829}}.room-result{animation:result-pop .32s var(--ease-spring) both}@keyframes result-pop{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.gb-stone,.gb-stone.is-flipping,.gb-stone.is-last .gb-stone-ring,.gb-cell.is-legal,.turtle-back,.turtle-card-slot,.turtle-opp.is-drawing,.turtle-mine.is-receiving,.turtle-match,.turtle-status.is-mine,.ddz-played,.ddz-opp.is-turn,.room-result{animation:none}}.room-live{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:var(--radius-full);border:1px solid var(--color-border);font-size:11px;color:var(--color-text-tertiary);white-space:nowrap}.room-live i{width:5px;height:5px;border-radius:50%;background:currentColor}.room-live.is-sse{border-color:#4fd39a59;background:#4fd39a1a;color:#7be3b4}.room-live.is-sse i{animation:live-pulse 1.8s var(--ease-soft) infinite}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}.room-live.is-poll{border-color:#e3b77859;background:#e3b77814;color:var(--color-accent-500)}.room-live.is-connecting{opacity:.7}@media(prefers-reduced-motion:reduce){.room-live.is-sse i{animation:none}}.fishing-page{padding-top:calc(var(--nav-height) + var(--space-8));padding-bottom:var(--space-16);min-height:72vh}.fishing-hero{margin-bottom:var(--space-6)}.fishing-hero .room-back{margin-bottom:var(--space-4)}.fishing-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-6);align-items:start}.fishing-main{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}.f-hud{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg)}.f-hud-item{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--color-text-secondary)}.f-hud-item svg{color:var(--color-accent-500)}.f-hud-btn{display:inline-flex;align-items:center;gap:5px;margin-left:auto;padding:5px 10px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:transparent;font-size:var(--text-xs);color:var(--color-text-tertiary);cursor:pointer;transition:color .22s var(--ease-out),border-color .22s var(--ease-out)}.f-hud-btn+.f-hud-btn{margin-left:0}.f-hud-btn:hover:not(:disabled){color:var(--color-accent-500);border-color:#e3b77866}.f-hud-btn:disabled{opacity:.45;cursor:default}.f-hud-btn.is-on{color:var(--color-accent-500);border-color:#e3b7788c;background:#e3b7781a}.f-sync-note{margin:-6px 0 0;font-size:11px;color:var(--color-text-tertiary)}.f-stage-wrap{position:relative;border-radius:var(--radius-xl);overflow:hidden;border:1px solid rgba(227,183,120,.18);box-shadow:0 24px 60px #00000073;background:#0a0913}.f-stage-svg{display:block;width:100%;height:auto}.f-star{opacity:.5;animation-name:fTwinkle;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes fTwinkle{0%,to{opacity:.18}50%{opacity:.85}}.f-moon-glow{animation:fMoonPulse 5.5s ease-in-out infinite}@keyframes fMoonPulse{0%,to{opacity:.85}50%{opacity:.55}}.f-shimmer{animation:fShimmer 3.6s ease-in-out infinite}@keyframes fShimmer{0%,to{opacity:.5;transform:scaleX(1)}50%{opacity:1;transform:scaleX(1.18)}}.f-wave{animation:fWaveDrift 9s linear infinite}@keyframes fWaveDrift{0%{transform:translate(0)}to{transform:translate(100px)}}.f-fog{animation:fFog 8s ease-in-out infinite}@keyframes fFog{0%,to{opacity:.55;transform:translate(-8px)}50%{opacity:.9;transform:translate(10px)}}.f-orb{animation:fOrb 6s ease-in-out infinite}@keyframes fOrb{0%,to{transform:translateY(0);opacity:.7}50%{transform:translateY(-14px);opacity:1}}.f-bobber{transition:opacity .2s var(--ease-out)}.f-bobber.is-hidden{opacity:0}.f-bobber.is-float{opacity:1;animation:fBobFloat 2.4s ease-in-out infinite}@keyframes fBobFloat{0%,to{transform:translate(340px,252px) translateY(0)}50%{transform:translate(340px,252px) translateY(-3px)}}.f-bobber.is-bite{opacity:1;transform:translate(340px,258px);animation:fBobBite .4s ease-in-out infinite}@keyframes fBobBite{0%,to{transform:translate(340px,252px)}50%{transform:translate(340px,262px)}}.f-bobber-ring{transform-origin:center;animation:fRingPulse 1.6s ease-out infinite}@keyframes fRingPulse{0%{opacity:.6;transform:scale(.7)}to{opacity:0;transform:scale(1.5)}}.f-ripple{animation:fRipple .9s var(--ease-out) forwards}.f-ripple-2{animation-delay:.14s}@keyframes fRipple{0%{opacity:.8;transform:scale(.3)}to{opacity:0;transform:scale(4.2)}}.f-droplet{animation:fDroplet .62s var(--ease-out) forwards}@keyframes fDroplet{0%{opacity:.9;transform:translate(0)}to{opacity:0;transform:translate(var(--dx),var(--dy))}}.f-layer{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-4);background:#0a09138c;backdrop-filter:blur(2px);animation:fLayerIn .26s var(--ease-out) both}.f-idle-layer{justify-content:flex-end;padding-bottom:var(--space-8);background:linear-gradient(180deg,transparent 30%,rgba(10,9,19,.78));backdrop-filter:none}.f-idle-tip{margin:0;max-width:420px;text-align:center;font-size:var(--text-sm);line-height:1.8;color:var(--color-text-secondary);text-shadow:0 1px 8px rgba(0,0,0,.8)}@keyframes fLayerIn{0%{opacity:0}}.f-cast-tip,.f-wait-tip{margin:0;max-width:420px;text-align:center;font-size:var(--text-sm);line-height:1.7;color:var(--color-text-secondary)}.f-cast-tip strong{color:var(--color-accent-500)}.f-wait-tip{font-size:var(--text-md);color:var(--color-text-primary)}.f-wait-tip:after{content:"";display:inline-block;width:1em;animation:fDots 1.2s steps(4) infinite}@keyframes fDots{0%{content:""}33%{content:"·"}66%{content:"··"}to{content:"···"}}.f-power{position:relative;width:min(380px,80%);height:18px;border-radius:var(--radius-full);border:1px solid rgba(227,183,120,.3);background:#0a0913b3;overflow:hidden}.f-power-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,#7a4dffb3,#e3b778e6);transition:none}.f-power-mark{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--color-accent-500);box-shadow:0 0 6px #e3b778cc}.f-cast-power{margin:0;font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-secondary)}.f-cast-cancel{border:none;background:transparent;font-size:var(--text-xs);color:var(--color-text-tertiary);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.f-cast-cancel:hover{color:var(--color-text-secondary)}.f-bite-layer{position:absolute;inset:0;border:none;cursor:pointer;background:radial-gradient(60% 60% at 50% 55%,#e3b7782e,#0a091399 75%);animation:fBitePulse .5s ease-in-out infinite alternate}@keyframes fBitePulse{0%{background:radial-gradient(60% 60% at 50% 55%,#e3b77824,#0a091399 75%)}to{background:radial-gradient(60% 60% at 50% 55%,#e3b7784d,#0a09138c 75%)}}.f-bite-text{font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:700;color:var(--color-accent-500);text-shadow:0 2px 18px rgba(0,0,0,.8)}.f-bite-text small{display:inline-block;margin-top:6px;font-family:var(--font-sans);font-size:var(--text-xs);font-weight:400;color:var(--color-text-secondary)}.f-fight-layer{background:#0a091359}.f-track{position:relative;width:200px;height:300px;flex:none}.f-track-water{position:absolute;inset:0;border-radius:var(--radius-lg);border:1px solid rgba(227,183,120,.35);background:linear-gradient(180deg,#12283feb,#080e1cf2);overflow:hidden}.f-track-caustics{position:absolute;inset:-20%;background:radial-gradient(40% 12% at 30% 20%,rgba(255,255,255,.08),transparent 70%),radial-gradient(30% 10% at 70% 60%,rgba(255,255,255,.06),transparent 70%),radial-gradient(36% 10% at 45% 85%,rgba(255,255,255,.05),transparent 70%);animation:fCaustics 6s ease-in-out infinite}@keyframes fCaustics{0%,to{transform:translateY(0)}50%{transform:translateY(10px)}}.f-fish{position:absolute;left:50%;transform:translate(-50%,-50%);pointer-events:none;filter:drop-shadow(0 0 6px rgba(0,0,0,.6))}.f-fish-body{fill:#c9d4ef}.f-fish-tail{fill:#9aa8cf}.f-fish-eye{fill:#1b1730}.f-frame{position:absolute;left:8px;right:26px;border-radius:var(--radius-md);background:#e3b7781a;transition:none}.f-frame-line{position:absolute;left:0;right:0;height:2px;background:var(--color-accent-500);box-shadow:0 0 8px #e3b7788c}.f-frame-line-top{top:0}.f-frame-line-bottom{bottom:0}.f-frame.is-reeling{background:#e3b77829}.f-progress{position:absolute;top:0;bottom:0;right:-18px;width:10px;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.14);background:#0a0913cc;overflow:hidden}.f-progress-fill{position:absolute;bottom:0;left:0;right:0;border-radius:var(--radius-full);background:linear-gradient(180deg,#ffe9b8,#e3b778);box-shadow:0 0 10px #e3b77880}.f-progress.is-losing .f-progress-fill{background:linear-gradient(180deg,#ff9c8c,#f2705f);box-shadow:0 0 10px #f2705f80}.f-track.is-won .f-track-water{border-color:#e3b778e6;box-shadow:0 0 34px #e3b77859}.f-track.is-lost .f-track-water{border-color:#f2705f99}.f-track-over{position:absolute;inset:0;display:grid;place-items:center;border-radius:var(--radius-lg);background:#0a091373;animation:fLayerIn .3s var(--ease-out) both}.f-track-over strong{font-family:var(--font-serif);font-size:var(--text-2xl)}.f-track-over.is-won strong{color:var(--color-accent-500)}.f-track-over.is-lost strong{color:var(--color-danger-600)}.f-reel-btn{position:absolute;left:50%;bottom:-58px;transform:translate(-50%);width:180px;padding:12px 0;border:1px solid rgba(227,183,120,.5);border-radius:var(--radius-full);background:#e3b7781f;font-family:var(--font-serif);font-size:var(--text-md);font-weight:600;letter-spacing:.1em;color:var(--color-accent-500);cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;transition:transform .14s var(--ease-out),background .14s var(--ease-out)}.f-reel-btn.is-holding{transform:translate(-50%) scale(.96);background:#e3b77847;box-shadow:0 0 24px #e3b77859}.f-reel-btn:disabled{opacity:.4;cursor:default}.f-result-layer{background:#0a09139e}.f-result-card{width:min(420px,92%);padding:var(--space-6);border-radius:var(--radius-lg);border:1px solid rgba(227,183,120,.35);background:var(--color-bg-glass-strong);text-align:center;animation:resultIn .42s var(--ease-out) both}.f-result-kicker{margin:0 0 6px;font-size:var(--text-xs);letter-spacing:.18em;color:var(--color-text-tertiary)}.f-result-caught .f-result-kicker{color:var(--color-accent-500)}.f-result-name{margin:0 0 var(--space-2);font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:600;color:var(--color-text-primary)}.f-result-name.is-miss{font-size:var(--text-lg);font-weight:500;color:var(--color-text-secondary)}.f-result-verse{margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--color-text-tertiary)}.f-result-stats{display:flex;justify-content:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary)}.f-result-stats em{font-style:normal;margin-right:4px;font-size:var(--text-xs);color:var(--color-text-tertiary)}.f-result-stats .is-gold{color:var(--color-accent-500);font-family:var(--font-mono)}.f-result-formula{margin:0 0 var(--space-4);font-family:var(--font-mono);font-size:11px;color:var(--color-text-tertiary)}.f-result-actions{display:flex;gap:var(--space-2);justify-content:center;flex-wrap:wrap}.f-spot-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.f-spot-status strong{color:var(--color-text-primary)}.f-spot-status svg{color:var(--color-accent-500)}.f-decay{font-style:normal;color:var(--color-warning-badge-text)}.f-spot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.f-spot-card{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg)}.f-spot-card h3{margin:0;font-family:var(--font-serif);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.f-spot-card p{margin:0;flex:1;font-size:var(--text-xs);line-height:1.7;color:var(--color-text-tertiary)}.f-spot-card.is-active{border-color:#e3b77873;background:#e3b7780f}.f-spot-card.is-locked{opacity:.75}.f-stats{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-text-secondary)}.f-stats span{display:inline-flex;align-items:center;gap:5px}.f-stats .is-gold{color:var(--color-accent-500)}.fishing-side{position:sticky;top:calc(var(--nav-height) + var(--space-4))}.f-shop{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg)}.f-shop-title{margin:0;font-family:var(--font-serif);font-size:var(--text-lg);font-weight:600;color:var(--color-text-primary)}.f-shop-block{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.f-shop-block h3{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary)}.f-shop-desc,.f-shop-next{margin:0;font-size:var(--text-xs);line-height:1.7;color:var(--color-text-tertiary)}.f-shop-next{color:var(--color-text-secondary)}.f-shop-lack{margin:0;font-size:11px;color:var(--color-danger-600)}.f-shop-spot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary)}.f-shop-note{margin:0;padding-top:var(--space-3);border-top:1px solid var(--color-border);font-size:11px;line-height:1.7;color:var(--color-text-tertiary)}.f-codex-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:var(--space-4);background:#06050cb8;backdrop-filter:blur(4px);animation:fLayerIn .22s var(--ease-out) both}.f-codex{width:min(760px,100%);max-height:min(84vh,720px);overflow-y:auto;padding:var(--space-6);border-radius:var(--radius-xl);border:1px solid rgba(227,183,120,.25)}.f-codex-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.f-codex-head h2{margin:0;font-family:var(--font-serif);font-size:var(--text-2xl);font-weight:600;color:var(--color-text-primary)}.f-codex-progress{margin:4px 0 0;font-size:var(--text-sm);color:var(--color-text-tertiary)}.f-codex-filters{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.f-chip{padding:4px 12px;border:1px solid var(--color-border);border-radius:var(--radius-full);background:transparent;font-size:var(--text-xs);color:var(--color-text-tertiary);cursor:pointer;transition:color .2s var(--ease-out),border-color .2s var(--ease-out)}.f-chip:hover,.f-chip.is-on{color:var(--color-accent-500);border-color:#e3b77880}.f-chip.is-on{background:#e3b7781a}.f-codex-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);margin:0;padding:0;list-style:none}.f-fish-card{display:flex;flex-direction:column;gap:6px;padding:var(--space-4);border-radius:var(--radius-lg);border:1px solid var(--color-border);background:#ffffff04}.f-fish-card.is-known{border-color:color-mix(in srgb,var(--f-rarity) 40%,transparent);background:linear-gradient(180deg,color-mix(in srgb,var(--f-rarity) 7%,transparent),transparent 60%),#ffffff04}.f-fish-card-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.f-fish-rarity{font-size:10px;letter-spacing:.12em;color:var(--f-rarity)}.f-fish-king{padding:0 6px;border-radius:var(--radius-full);background:#e3b77829;font-size:10px;color:var(--color-accent-500)}.f-fish-name{margin:0;font-family:var(--font-serif);font-size:var(--text-base);font-weight:600;color:var(--color-text-primary)}.f-fish-name.is-masked{color:var(--color-text-disabled);letter-spacing:.2em}.f-fish-verse{margin:0;flex:1;font-size:var(--text-xs);line-height:1.7;color:var(--color-text-tertiary)}.f-fish-where{margin:0;font-size:10px;color:var(--color-text-disabled)}.f-fish-meta{display:flex;gap:var(--space-3);margin:0;padding-top:8px;border-top:1px solid var(--color-border)}.f-fish-meta div{display:flex;flex-direction:column;gap:2px}.f-fish-meta dt{font-size:10px;color:var(--color-text-tertiary)}.f-fish-meta dd{margin:0;font-family:var(--font-mono);font-size:11px;color:var(--color-text-secondary)}.f-codex-titles{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.f-codex-titles h3{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary)}.f-title-row{display:flex;flex-wrap:wrap;gap:var(--space-2)}.f-title{padding:3px 10px;border-radius:var(--radius-full);border:1px solid rgba(227,183,120,.35);background:#e3b77814;font-size:var(--text-xs);color:var(--color-accent-500)}@media(max-width:1000px){.fishing-layout{grid-template-columns:minmax(0,1fr)}.fishing-side{position:static}.f-spot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.fishing-page{padding-top:calc(var(--nav-height) + var(--space-5))}.f-codex-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.f-track{width:168px;height:250px}.f-reel-btn{width:150px;bottom:-52px;padding:10px 0}.f-bite-text{font-size:var(--text-2xl)}.f-spot-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){.f-star,.f-moon-glow,.f-shimmer,.f-wave,.f-fog,.f-orb,.f-bobber.is-float,.f-bobber.is-bite,.f-bobber-ring,.f-ripple,.f-droplet,.f-bite-layer,.f-track-caustics,.f-result-card,.f-layer{animation:none}}.fishing-page{--px-void: #080B14;--px-bg: #0C1120;--px-bg-2: #111830;--px-bg-3: #17203C;--px-line: #2C3556;--px-line-hi: #4A5680;--px-ink: #E6EDFF;--px-dim: #8B98BE;--px-faint: #5D6890;--px-gold: #E3B778;--px-gold-dim: #8A6A3E;--px-red: #F2705F;--px-green: #7BE3B4;--px-font-num: ui-monospace, "SFMono-Regular", "Roboto Mono", Menlo, monospace}.fishing-page{max-width:none}@media(min-width:1001px){.fishing-page .fishing-hero{margin-bottom:10px}.fishing-page .fishing-hero .room-back{margin-bottom:4px}.fishing-page .games-kicker{display:inline-flex;vertical-align:middle;margin:0 10px 0 0}.fishing-page .games-title{display:inline;vertical-align:middle;font-size:21px;margin:0;line-height:1.25}.fishing-page .games-sub{margin:5px 0 0;font-size:12px;line-height:1.5;color:var(--px-faint)}}.f-stage-full{grid-column:1 / -1;display:flex;flex-direction:column;gap:8px;min-width:0}@media(min-width:1001px){.fishing-layout{grid-template-columns:minmax(0,1fr) 280px;gap:18px 24px}}.fp{display:inline-block;height:var(--fp-h, 96px);aspect-ratio:44 / 30;line-height:0;flex:none}.fp>svg{display:block;width:100%;height:100%;shape-rendering:crispEdges}.fishing-page .f-hud,.fishing-page .f-stats,.fishing-page .f-shop,.fishing-page .f-spot-card,.fishing-page .f-result-card,.fishing-page .f-codex,.fishing-page .f-stage-wrap{border-radius:0;border:2px solid var(--px-line);background:var(--px-bg-2);box-shadow:inset 0 0 0 1px #ffffff08,0 2px 0 0 var(--px-void),0 0 0 1px var(--px-void)}.fishing-page .f-stage-wrap{border-color:var(--px-line);background:var(--px-void);box-shadow:0 0 0 2px var(--px-void),0 10px 0 -4px #00000080}.f-hud{gap:0;padding:0;overflow:hidden}.f-hud-item{padding:7px 12px;border-right:1px solid var(--px-line);font-family:var(--px-font-num);font-size:12px;letter-spacing:.02em;color:var(--px-dim)}.f-hud-item svg{color:var(--px-faint)}.f-hud-btn{border:none;border-left:1px solid var(--px-line);border-radius:0;padding:7px 12px;background:transparent;font-size:12px;color:var(--px-dim);letter-spacing:.04em;transition:background 90ms steps(2,end),color 90ms steps(2,end)}.f-hud-btn:hover:not(:disabled){background:var(--px-bg-3);color:var(--px-ink)}.f-hud-btn.is-on{background:#e3b77829;color:var(--px-gold);box-shadow:inset 0 -2px 0 0 var(--px-gold)}.fishing-page .f-stats span,.fishing-page .f-result-stats,.fishing-page .f-progress-num,.fishing-page .f-cast-power,.fishing-page .f-spot-status,.fishing-page .f-shop-desc,.fishing-page .f-shop-next,.fishing-page .f-shop-lack{font-variant-numeric:tabular-nums}.fishing-page .f-layer{backdrop-filter:none;background:#080b149e;animation:fpLayerIn .18s steps(2,end) both}@keyframes fpLayerIn{0%{opacity:0}to{opacity:1}}.fishing-page .f-idle-layer{background:linear-gradient(180deg,transparent 42%,rgba(8,11,20,.84))}.fishing-page .f-wait-layer{background:#080b1442;justify-content:flex-end;gap:10px;padding-bottom:16px}.fishing-page .f-fight-layer{background:#080b146b}.fishing-page .f-result-layer{background:#080b14b8}.fishing-page .f-bite-layer{background:#e3b77824;animation:fpBiteFlash .26s steps(2,end) infinite;justify-content:flex-start;padding-top:9%}.fishing-page .f-bite-text{font-family:var(--px-font-num);color:#fff0c8;text-shadow:none;letter-spacing:.08em;background:#080b14d1;border:2px solid var(--px-gold);padding:10px 22px;box-shadow:0 3px 0 0 var(--px-void)}.fishing-page .f-bite-text small{font-family:var(--px-font-num);color:#c3cee8;letter-spacing:.1em}.fishing-page .f-cast-tip,.fishing-page .f-wait-tip,.fishing-page .f-idle-tip{color:#c3cee8}.fishing-page .f-cast-tip strong{color:var(--px-gold)}.fishing-page .f-power{width:min(380px,80%);height:16px;border-radius:0;border:2px solid var(--px-line);background:var(--px-void)}.fishing-page .f-power-fill{border-radius:0;background:repeating-linear-gradient(90deg,var(--px-gold) 0 6px,rgba(0,0,0,.5) 6px 8px)}.fishing-page .f-power-fill.is-far{background:repeating-linear-gradient(90deg,var(--px-green) 0 6px,rgba(0,0,0,.5) 6px 8px)}.fishing-page .f-power-mark{top:-2px;bottom:-2px;width:2px;background:var(--px-ink);box-shadow:none;opacity:.75}.fishing-page .f-cast-power{font-family:var(--px-font-num);color:var(--px-dim)}.fishing-page .f-cast-power.is-far{color:var(--px-green);animation:fpFarBlink .32s steps(2,end) infinite}@keyframes fpFarBlink{0%,to{opacity:1}50%{opacity:.45}}.fishing-page .f-cast-cancel{font-family:var(--px-font-num);color:var(--px-faint)}.fishing-page .btn{border-radius:0;border:2px solid var(--px-line-hi);background:var(--px-bg-3);color:var(--px-ink);font-family:var(--px-font-num);font-size:13px;letter-spacing:.08em;box-shadow:0 3px 0 0 var(--px-void);transition:none}.fishing-page .btn:hover:not(:disabled){background:#223058;border-color:var(--px-gold-dim)}.fishing-page .btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 0 var(--px-void)}.fishing-page .btn-primary{background:#1d2a4e;border-color:var(--px-gold-dim);color:#f2dfc0}.fishing-page .btn-primary:hover:not(:disabled){background:#26365f;border-color:var(--px-gold)}.fishing-page .btn-secondary{background:var(--px-bg-2);border-color:var(--px-line);color:var(--px-dim)}.fishing-page .btn:disabled{opacity:.45;box-shadow:none}.fishing-page .btn-lg{font-size:15px;letter-spacing:.16em}.f-stage{position:relative;line-height:0;background:var(--px-void)}.fp-scene{display:block;width:100%;height:auto}.fp-star{animation-name:fpTwinkle;animation-iteration-count:infinite;animation-timing-function:steps(3,end);opacity:.55}@keyframes fpTwinkle{0%,to{opacity:.16}50%{opacity:.9}}.fp-shimmer{animation:fpShimmer 9s steps(14,end) infinite}@keyframes fpShimmer{0%{transform:translate(-2px)}to{transform:translate(2px)}}.fp-float{animation:fpBob 2.6s steps(3,end) infinite}.fp-float.is-hidden{display:none}.fp-float.is-rest{animation:none}.fp-float.is-hang{animation:fpCharge .9s steps(2,end) infinite;transform:translate(var(--hang-x, 0),var(--hang-y, -15px))}@keyframes fpCharge{0%,to{transform:translate(var(--hang-x, 0),var(--hang-y, -15px))}50%{transform:translate(calc(var(--hang-x, 0) - 1px),calc(var(--hang-y, -15px) - 1px))}}.fp-float.is-fly{animation:fpFly var(--fly-dur, .52s) steps(10,end) forwards}@keyframes fpFly{0%{transform:translate(var(--hang-x, 0),var(--hang-y, -15px))}45%{transform:translate(calc(var(--hang-x, 0) * .42),calc(var(--hang-y, -15px) - 11px))}to{transform:translate(0)}}.fp-float.is-snap{animation:fpSnap .46s steps(3,end) 1}@keyframes fpSnap{0%{transform:translateY(3px)}40%{transform:translateY(-7px)}70%{transform:translateY(-2px)}to{transform:translateY(0)}}.fp-float.is-reel-in{animation:fpReelIn .52s steps(4,end) 1 forwards}@keyframes fpReelIn{0%{transform:translateY(0)}60%{transform:translateY(-15px)}to{transform:translateY(-15px)}}.fp-float.is-bite{animation:fpBite .16s steps(2,end) infinite}.fp-float.is-lift{animation:fpLift .62s steps(2,end) infinite}@keyframes fpBob{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes fpBite{0%{transform:translate(0)}50%{transform:translateY(2px)}}@keyframes fpLift{0%,to{transform:translateY(3px) translate(-1px)}50%{transform:translateY(1px) translate(1px)}}.fp-bite-ring{animation:fpRing .32s steps(2,end) infinite}@keyframes fpRing{0%,to{opacity:.35}50%{opacity:1}}.fp-droplet{animation:fpDrop .7s steps(4,end) forwards}@keyframes fpDrop{0%{transform:translate(0);opacity:1}60%{transform:translate(var(--dx, 0),-4px);opacity:.9}to{transform:translateY(3px);opacity:0}}.fp-trail{opacity:0;animation:fpTrail .3s steps(2,end) 1 backwards}@keyframes fpTrail{0%{opacity:0}35%{opacity:.6}to{opacity:0}}.fp-shadow{animation:fpShadow .55s steps(5,end) 1 both}@keyframes fpShadow{0%{transform:translate(26px);opacity:0}25%{opacity:1}70%{transform:translate(8px);opacity:.9}to{transform:translate(6px);opacity:.55}}.fp-ripple{transform-box:fill-box;transform-origin:center;animation:fpRipple .62s steps(4,end) forwards}@keyframes fpRipple{0%{transform:scale(.35);opacity:0}25%{opacity:1}to{transform:scale(1.7);opacity:0}}.fp-scene.is-charging .fp-float-wrap{animation:fpFrameTense .9s steps(2,end) infinite}@keyframes fpFrameTense{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.fp-scene.is-shake{animation:fpShake .28s steps(4,end) 1}@keyframes fpShake{0%{transform:translate(0)}25%{transform:translate(-1px,1px)}50%{transform:translate(1px,-1px)}75%{transform:translate(-1px)}to{transform:translate(0)}}.fp-scene.is-pull .fp-float-wrap{animation:fpPulled .42s steps(2,end) forwards}@keyframes fpPulled{0%{transform:translate(0)}to{transform:translateY(2px)}}.f-track{width:208px;height:300px}.f-track-water{border-radius:0;border:2px solid var(--px-line);background-color:var(--px-bg);background-image:linear-gradient(180deg,#2e547459 0 22%,#1e3a5452 22% 52%,#10203457 52% 78%,#080f1c6b 78% 100%),linear-gradient(90deg,rgba(190,220,255,.07) 0 7px,transparent 7px 21px);background-size:100% 100%,100% 26px;background-repeat:no-repeat,repeat-y;box-shadow:inset 0 0 0 1px #ffffff08}.f-track-caustics{inset:0;background-image:linear-gradient(90deg,rgba(200,230,255,.09) 0 4px,transparent 4px 14px),linear-gradient(90deg,rgba(200,230,255,.05) 0 9px,transparent 9px 30px);background-size:100% 78px,100% 130px;background-repeat:repeat-y;animation:fpCaustics 7s steps(3,end) infinite}@keyframes fpCaustics{0%,to{transform:translateY(0);opacity:.6}50%{transform:translateY(6px);opacity:1}}.f-fish{left:50%;filter:none;transition:none}.f-fish-art{--fp-h: 64px;transform:scaleX(-1);display:block}.f-frame{left:10px;right:30px;border-radius:0;background:#e3b7781a;outline:1px dashed rgba(227,183,120,.45);outline-offset:-1px}.f-frame.is-reeling{background:#e3b77821}.f-frame-line{height:2px;background:var(--px-gold);box-shadow:none}.f-frame-corner{position:absolute;width:7px;height:7px;border:2px solid var(--px-gold)}.f-frame-corner.is-tl{top:-2px;left:-2px;border-right:none;border-bottom:none}.f-frame-corner.is-tr{top:-2px;right:-2px;border-left:none;border-bottom:none}.f-frame-corner.is-bl{bottom:-2px;left:-2px;border-right:none;border-top:none}.f-frame-corner.is-br{bottom:-2px;right:-2px;border-left:none;border-top:none}.f-progress{right:-28px;width:18px;border-radius:0;border:2px solid var(--px-line);background:var(--px-void);overflow:hidden}.f-progress-fill{border-radius:0;background:repeating-linear-gradient(180deg,var(--px-gold) 0 5px,rgba(0,0,0,.55) 5px 7px);box-shadow:none;transition:none}.f-progress.is-losing .f-progress-fill{background:repeating-linear-gradient(180deg,var(--px-red) 0 5px,rgba(0,0,0,.55) 5px 7px);box-shadow:none}.f-progress-mark{background:var(--px-ink);height:2px;opacity:.7}.f-progress-num{position:absolute;right:-56px;top:0;width:26px;font-family:var(--px-font-num);font-size:11px;color:var(--px-dim);text-align:right;pointer-events:none}.f-track.is-won .f-track-water{border-color:var(--px-gold);box-shadow:inset 0 0 0 2px #e3b77840}.f-track.is-lost .f-track-water{border-color:var(--px-red)}.f-track-over{border-radius:0;background:#080b14c7}.f-track-over strong{font-family:var(--px-font-num);font-size:20px;letter-spacing:.08em}.f-reel-btn{width:184px;padding:12px 0;border:2px solid var(--px-gold-dim);border-radius:0;background:var(--px-bg-2);font-family:var(--px-font-num);font-size:14px;letter-spacing:.12em;color:var(--px-gold);transition:none;box-shadow:0 3px 0 0 var(--px-void)}.f-reel-btn.is-holding{transform:translate(-50%,2px);background:#e3b77833;box-shadow:0 1px 0 0 var(--px-void)}.f-result-card{width:min(440px,92%)}.f-result-art{display:grid;place-items:center;margin:4px 0 10px;padding:10px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 2px,transparent 2px 8px),var(--px-void);border:2px solid var(--px-line)}.f-result-name{font-family:var(--px-font-num);letter-spacing:.06em}.f-result-stats{font-family:var(--px-font-num)}.f-fish-art-slot{position:relative;display:grid;place-items:center;height:92px;margin:2px 0 6px;background:repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 2px,transparent 2px 7px),var(--px-void);border:1px solid var(--px-line)}.f-fish-art-slot.is-locked{border-style:dashed}.f-fish-art-slot.is-locked .fp{opacity:.75}.f-fish-art-veil{position:absolute;bottom:3px;right:5px;font-family:var(--px-font-num);font-size:10px;letter-spacing:.14em;color:var(--px-faint)}.f-fish-card{border-radius:0;border:1px solid var(--px-line);background:var(--px-bg-2)}.f-fish-card.is-known{border-color:var(--px-line-hi)}.f-fish-rarity,.f-fish-king{border-radius:0;font-family:var(--px-font-num);letter-spacing:.1em}.f-chip{border-radius:0;border:1px solid var(--px-line);font-family:var(--px-font-num);font-size:11px}.f-chip.is-on{border-color:var(--px-gold);color:var(--px-gold)}.f-codex-overlay{background:#060910d1}.f-wait-tip{animation:fpPulse 1.4s steps(2,end) infinite}@keyframes fpPulse{0%,to{opacity:.55}50%{opacity:1}}.f-bite-layer{animation:fpBiteFlash .28s steps(2,end) 3}@keyframes fpBiteFlash{0%,to{background:#e3b77800}50%{background:#e3b77829}}.f-bite-text{animation:fpBitePop .2s steps(3,end) both}@keyframes fpBitePop{0%{transform:scale(.86);opacity:0}to{transform:scale(1);opacity:1}}.f-fight-layer .f-track{animation:fpRise .24s steps(4,end) both}@keyframes fpRise{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}.f-result-card{animation:fpPop .26s steps(4,end) both}@keyframes fpPop{0%{transform:translateY(12px) scale(.97);opacity:0}60%{transform:translateY(-2px) scale(1.01);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}.f-result-art .fp{animation:fpDropIn .26s steps(3,end) 90ms both}@keyframes fpDropIn{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.f-result-escaped .f-result-card,.f-result-empty .f-result-card{animation:fpPop .22s steps(3,end) both,fpNudge .3s steps(3,end) .22s 1}@keyframes fpNudge{0%,to{transform:translate(0)}33%{transform:translate(-4px)}66%{transform:translate(3px)}}.f-result-escaped .f-result-kicker,.f-result-empty .f-result-kicker{color:var(--px-red)}@media(prefers-reduced-motion:reduce){.fp-star,.fp-shimmer,.fp-float,.fp-bite-ring,.fp-droplet,.fp-ripple,.fp-trail,.fp-shadow,.f-track-caustics,.f-wait-tip,.f-bite-layer,.f-bite-text,.f-fight-layer .f-track,.f-result-card,.f-result-art .fp,.fp-scene.is-charging .fp-float-wrap,.fp-scene.is-shake,.fp-scene.is-pull .fp-float-wrap{animation:none!important}}@media(max-width:640px){.f-track{width:168px;height:250px}.f-progress-num{display:none}.f-fish-art{--fp-h: 44px}}.w-page{padding-bottom:var(--space-24)}.w-stage-head{padding:clamp(12px,1.5vw,20px) 0 clamp(10px,1.2vw,14px);border-bottom:1px solid rgba(226,200,160,.12);background:linear-gradient(180deg,#06050df7,#06050da8)}.w-stage-head-in{max-width:1320px;margin:0 auto;padding-inline:clamp(16px,3vw,40px);display:grid;grid-template-columns:minmax(0,1.28fr) minmax(0,1fr);gap:clamp(18px,4vw,64px);align-items:end}.w-stage-head-main .w-title{margin-top:12px;font-size:clamp(24px,3.4vw,38px);line-height:1.28}.w-stage-head-side .w-tagline{margin:0;font-size:clamp(14px,1.3vw,17px)}@media(max-width:860px){.w-stage-head-in{grid-template-columns:1fr;gap:12px}}.w-kicker{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border:1px solid rgba(227,183,120,.26);border-radius:var(--radius-full);background:#e3b7780f;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.08em;color:var(--color-accent-500)}.w-title{margin:var(--space-5) 0 0;font-family:var(--font-serif);font-size:clamp(30px,5vw,46px);font-weight:600;line-height:1.32;color:var(--color-text-primary)}.w-title em{font-style:normal;color:var(--color-accent-500)}.w-tagline{margin:var(--space-4) 0 0;font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-text-secondary)}.w-sub{margin:var(--space-3) 0 0;max-width:640px;font-size:var(--text-base);line-height:1.95;color:var(--color-text-tertiary)}.w-layout{margin-top:var(--space-4)}.w-map-bleed{margin-top:0;padding-inline:0}.w-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.w-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-bg-surface);color:var(--color-text-secondary);font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.w-chip:hover{border-color:var(--color-border-strong);color:var(--color-text-primary)}.w-chip.is-active{border-color:#e3b77880;background:#e3b7781a;color:var(--color-accent-500)}.w-chip:focus-visible{outline:none;box-shadow:var(--ring-brand)}.w-map{position:relative;overflow:hidden;border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);background:radial-gradient(120% 90% at 50% 0%,rgba(122,77,255,.12),transparent 62%),linear-gradient(170deg,#0b0918,#06050d);box-shadow:0 32px 80px #00000080,inset 0 0 0 1px #e3b7780f}.w-map:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(122% 94% at 48% 46%,transparent 56%,rgba(0,0,0,.46) 100%)}.w-map svg{display:block;width:100%;height:auto}.w-grid line{stroke:#dce6ff0d;stroke-width:1.4}.w-waves path{fill:none;stroke:#8cc8ca80;stroke-width:1.54;stroke-linecap:round}.w-coast-halo path{stroke:#e2b67a29}.w-shoal{fill:none;stroke:#cee2ff33;stroke-width:1.68;stroke-dasharray:3 12}.w-shoal.is-faint{stroke:#cee2ff1c;stroke-dasharray:2 14}.w-abyss-ring{fill:none;stroke:#ba92ff80;stroke-width:2.24;stroke-dasharray:4 6}.w-abyss-ring.is-inner{stroke:#ba92ff4d;stroke-dasharray:3 5}.w-constellation polyline{fill:none;stroke:#d6e4ff29;stroke-width:1.54;stroke-linejoin:round}.w-constellation circle{fill:#d6e4ff80}.w-isles path{fill:#2a2350;stroke:#d6b07873;stroke-width:2.24;stroke-linejoin:round}.w-ranges .mt-back{fill:#322a56;stroke:none}.w-ranges .mt-body{fill:url(#w-mt);stroke:#c8bef033;stroke-width:1.12;stroke-linejoin:round}.w-ranges .mt-ridge{fill:none;stroke:#d6ccff33;stroke-width:1.12;stroke-linecap:round}.w-relief ellipse{fill:url(#w-relief)}.w-ranges .mt-shade{fill:#0a061675;stroke:none}.w-ranges .mt-snow{fill:#e8eeffbd;stroke:none}.w-ranges .mt-rock{fill:#a89ed052;stroke:none}.w-ranges .mt-crease{fill:none;stroke:#0a061857;stroke-width:1.26;stroke-linecap:round}.w-ranges .mt-foot{fill:none;stroke:#c4baf033;stroke-width:1.26;stroke-linecap:round}.w-knolls .knoll-body{fill:#4a4179;stroke:none}.w-knolls .knoll-shade{fill:#0a06184d}.w-knolls .knoll-line{fill:none;stroke:#c6bcf238;stroke-width:.98;stroke-linecap:round}.w-knolls .knoll-shadow{fill:#06040e4d}.w-rocks .rk-lit{fill:#5a4f8c;stroke:#d6ccff2e;stroke-width:.98;stroke-linejoin:round}.w-rocks .rk-shade{fill:#0805146b}.w-rocks .rk-shadow{fill:#06040e4d}.w-ponds .pd-water{fill:#14304a}.w-ponds .pd-edge{fill:none;stroke:#e2be8442;stroke-width:1.68}.w-ponds .pd-glint{fill:none;stroke:#a0d6d652;stroke-width:1.54;stroke-linecap:round}.w-pondbig path{fill:#102a41;stroke:#82c4bc57;stroke-width:1.68}.w-pondbig path.is-deep{fill:#08182a;stroke:none}.w-pondbig text{font-family:var(--font-serif);font-size:26px;letter-spacing:.3em;fill:#c6e0ec80;text-anchor:middle;paint-order:stroke;stroke:#06040e80;stroke-width:5.6px;stroke-linejoin:round}.w-cliffs .cl-face{fill:none;stroke:#0805146b;stroke-width:9.8;stroke-linecap:round;stroke-linejoin:round}.w-cliffs .cl-edge{fill:none;stroke:#e2be8433;stroke-width:2.24;stroke-linecap:round}.w-reefs .rf-rock{fill:#3a3363;stroke:#c8bef029;stroke-width:.98;stroke-linejoin:round}.w-reefs .rf-shade{fill:#06040e66}.w-reefs .rf-foam{fill:none;stroke:#c6ece899;stroke-width:1.68;stroke-linecap:round}.w-falls .fl-pool{fill:#16344e}.w-falls .fl-curtain{fill:#c6e8f224}.w-falls .fl-line{fill:none;stroke:#ceeef89e;stroke-width:1.82;stroke-linecap:round}.w-falls .fl-drop{fill:#ceeef880}.w-falls .fl-foam{fill:#e2f6fa80}.w-falls .fl-spray{fill:none;stroke:#e2f6fa66;stroke-width:1.4;stroke-linecap:round}.w-trails path{fill:none;stroke:#e2be8466;stroke-width:3.22;stroke-dasharray:7 6;stroke-linecap:round;stroke-linejoin:round}.w-bridges .br-deck{fill:#6b5a44;stroke:#e2be846b;stroke-width:1.12;stroke-linejoin:round}.w-bridges .br-line{fill:none;stroke:#e2c49657;stroke-width:.98}.w-bridges .br-shadow{fill:#06040e47}.w-hamlets .hm-ground{fill:#06040e33}.w-hamlets .hm-wall{fill:#574c8a;stroke:#d6ccff33;stroke-width:.84;stroke-linejoin:round}.w-hamlets .hm-wall2{fill:#372f5c}.w-hamlets .hm-roof{fill:#6d5636;stroke:#e2be844d;stroke-width:.84;stroke-linejoin:round}.w-hamlets .hm-light{fill:#f4cd8a}.w-hamlets .hm-door{fill:#06040e99}.w-hamlets .hm-line{fill:none;stroke:#d6ccff33;stroke-width:.98;stroke-linecap:round}.w-ruins .ru-wall{fill:#57507f;stroke:#c8bef026;stroke-width:.84;stroke-linejoin:round}.w-ruins .ru-shade{fill:#08051466}.w-ruins .ru-pillar{fill:#4d4576}.w-ruins .ru-line{fill:none;stroke:#c8bef033;stroke-width:1.12;stroke-linecap:round}.w-ruins .ru-shadow{fill:#06040e47}.w-stones .sc-ground{fill:#06040e2e}.w-stones .sc-stone{fill:#565080;stroke:#d6ccff2e;stroke-width:.84}.w-stones .sc-shade{fill:#0805145c}.w-piers .pr-shadow{fill:#06040e52}.w-piers .pr-deck{fill:#584636;stroke:#e2be8452;stroke-width:.98}.w-piers .pr-line{fill:none;stroke:#e2c4964d;stroke-width:.98}.w-piers .pr-post{fill:none;stroke:#1c140c99;stroke-width:2.24;stroke-linecap:round}.w-piers .pr-boat{fill:#3a2f24;stroke:#e2be844d;stroke-width:.98}.w-beacons .bc-ground{fill:#06040e3d}.w-beacons .bc-tower{fill:#5a5286;stroke:#d6ccff33;stroke-width:.98;stroke-linejoin:round}.w-beacons .bc-shade{fill:#08051461}.w-beacons .bc-line{fill:none;stroke:#d6ccff2e;stroke-width:.98}.w-beacons .bc-lamp{fill:#f4cd8a}.w-beacons .bc-glow{fill:#f4cd8a42}.w-beacons .bc-beam{fill:none;stroke:#f4cd8a47;stroke-width:1.68;stroke-linecap:round}.w-biome{stroke:#e2c8a042;stroke-width:1.68;stroke-dasharray:11 13;stroke-linejoin:round}.w-biome-frost{fill:#96bae21c}.w-biome-reef{fill:#609aa81a}.w-biome-pass{fill:#98848618}.w-biome-calm{fill:#4e86801c}.w-biome-moon{fill:#48886e1c}.w-biome-well{fill:#988e541a}.w-biome-fen{fill:#466c601d}.w-biome-grey{fill:#84848e16}.w-biome-drift{fill:#987e4e1a}.w-biome-labels text{font-family:var(--font-serif);font-size:30px;letter-spacing:.26em;fill:#e2cea870;text-anchor:middle;paint-order:stroke;stroke:#06040e9e;stroke-width:7.4px;stroke-linejoin:round}.w-biome-no{font-family:var(--font-mono);font-size:22px;letter-spacing:.1em;fill:#e3b77875}.w-vegetation .tree-lit{fill:#2c6355}.w-vegetation .tree-shade{fill:#1a453c}.w-vegetation .tree-trunk{fill:#42332a}.w-vegetation .tree-shadow{fill:#06040e57}.w-vegetation .dune-back{fill:none;stroke:#e2b06e21;stroke-width:1.4;stroke-linecap:round}.w-vegetation .dune-mid{fill:none;stroke:#e2b06e2e;stroke-width:1.4;stroke-linecap:round}.w-vegetation .dune-front{fill:none;stroke:#e2b06e42;stroke-width:1.68;stroke-linecap:round}.w-vegetation .marsh-grass{fill:none;stroke:#689c884d;stroke-width:1.54;stroke-linecap:round}.w-vegetation .marsh-water{fill:none;stroke:#8cc8dc3d;stroke-width:1.4;stroke-linecap:round}.w-vegetation .tundra-clump{fill:#7e989480}.w-vegetation .tundra-shade{fill:#58707473}.w-vegetation .tundra-tuft{fill:none;stroke:#b2c8ca66;stroke-width:1.4;stroke-linecap:round}.w-vegetation .tundra-shadow{fill:#06040e4d}.w-vegetation .scrub-branch{fill:none;stroke:#b094668f;stroke-width:1.82;stroke-linecap:round}.w-vegetation .scrub-leaf{fill:none;stroke:#c4ac7070;stroke-width:1.4;stroke-linecap:round}.w-vegetation .scrub-shadow{fill:#06040e47}.w-vegetation .reed-stalk{fill:none;stroke:#98be9e85;stroke-width:1.4;stroke-linecap:round}.w-vegetation .reed-head{fill:none;stroke:#d6b88280;stroke-width:1.68;stroke-linecap:round}.w-vegetation .reed-water{fill:none;stroke:#8cc8dc38;stroke-width:1.4;stroke-linecap:round}.w-rivers .w-river-body{fill:#21526cf0;stroke:#0c1c2a99;stroke-width:1.96;stroke-linejoin:round}.w-rivers .w-river-flow{fill:none;stroke:#bae8f447;stroke-width:1.26;stroke-linecap:round;stroke-linejoin:round}.w-art{transition:opacity var(--duration-fast) var(--ease-out)}.w-mark .w-art{opacity:.94}.w-mark.is-hover .w-art,.w-mark.is-active .w-art{opacity:1}.w-art .lm-ground{fill:#06040e2e}.w-art .lm-stone{fill:#4d4478;stroke:#d8ceff42;stroke-width:1.26;stroke-linejoin:round}.w-art .lm-stone2{fill:#372f5c;stroke:none}.w-art .lm-roof{fill:#6d5636;stroke:#e2be846b;stroke-width:1.26;stroke-linejoin:round}.w-art .lm-line{fill:none;stroke:#d8ceff42;stroke-width:1.12;stroke-linecap:round}.w-art .lm-door{fill:#06040ea8;stroke:none}.w-art .lm-arch{fill:#06040e9e;stroke:none}.w-art .lm-dark{fill:#08051280}.w-art .lm-wood{fill:#584636;stroke:#e2be843d;stroke-width:.98}.w-art .lm-metal{fill:#9c9280}.w-art .lm-shadowline{fill:none;stroke:#06040e57;stroke-width:1.96;stroke-linecap:round}.w-art .lm-light{fill:#f4cd8a}.w-art .lm-ray{fill:none;stroke:#f4cd8a8c;stroke-width:1.68;stroke-linecap:round}.w-art .lm-glint{fill:none;stroke:#f4d6a073;stroke-width:1.96;stroke-linecap:round}.w-art .lm-reed{fill:none;stroke:#82c0a080;stroke-width:1.54;stroke-linecap:round}.w-art .lm-smoke{fill:none;stroke:#cecee247;stroke-width:1.54;stroke-linecap:round}.w-mark.is-active .lm-light{fill:#ffe1a8}.w-mark.is-active .lm-ray{stroke:#ffe0aacc}.w-mark{cursor:pointer;outline:none}.w-hit{fill:transparent}.w-halo{fill:url(#w-glow);opacity:.5;transform-box:fill-box;transform-origin:center;animation:w-pulse 4.6s var(--ease-soft) infinite}.w-foot{fill:none;stroke:#e3b77833;stroke-width:1.96;stroke-dasharray:5 5;transition:stroke var(--duration-fast) var(--ease-out),stroke-width var(--duration-fast) var(--ease-out)}.w-mark:hover .w-foot,.w-mark.is-hover .w-foot{stroke:#e3b778d9}.w-mark.is-active .w-foot{stroke:var(--color-accent-500);stroke-width:2.8;stroke-dasharray:none}.w-mark:focus-visible .w-foot{stroke:var(--color-brand-500);stroke-width:3.64;stroke-dasharray:none}.w-mark.is-active .w-halo{opacity:.85}.w-label{font-family:var(--font-serif);font-size:45.5px;letter-spacing:.06em;fill:var(--color-text-primary);opacity:.9;dominant-baseline:middle;paint-order:stroke;stroke:#06040ea8;stroke-width:8.4px;stroke-linejoin:round;transition:opacity var(--duration-fast) var(--ease-out),fill var(--duration-fast) var(--ease-out)}.w-mark:hover .w-label,.w-mark.is-hover .w-label,.w-mark.is-active .w-label{opacity:1;fill:var(--color-accent-500)}.w-label-en{font-family:var(--font-mono);font-size:24.5px;letter-spacing:.16em;fill:#e3b778cc;dominant-baseline:middle;paint-order:stroke;stroke:#06040e99;stroke-width:5.6px;stroke-linejoin:round}.w-submark{pointer-events:none}.w-submark circle{fill:#dce6ff8c}.w-submark text{font-family:var(--font-mono);font-size:28px;letter-spacing:.02em;fill:#d6e0f4b8;dominant-baseline:middle;paint-order:stroke;stroke:#06040e99;stroke-width:5.6px;stroke-linejoin:round}.w-river-label{font-family:var(--font-serif);font-size:29.8px;letter-spacing:.3em;fill:#badceab8;text-anchor:middle;paint-order:stroke;stroke:#06040e8c;stroke-width:5.6px;stroke-linejoin:round}.w-range-label{font-family:var(--font-serif);font-size:35px;letter-spacing:.34em;fill:#d6ceff9e;text-anchor:middle;paint-order:stroke;stroke:#06040e80;stroke-width:7px;stroke-linejoin:round}.w-routes path{fill:none;stroke:#e3b77824;stroke-width:2.24;stroke-dasharray:7 10;transition:stroke var(--duration-base) var(--ease-out)}.w-routes path.is-active{stroke:#e3b7789e;animation:w-flow 12s linear infinite}@keyframes w-flow{to{stroke-dashoffset:-136}}@keyframes w-pulse{0%,to{opacity:.62}50%{opacity:.34}}.w-sea-label{font-family:var(--font-serif);font-size:52.5px;letter-spacing:.44em;fill:#d6e4ff3d;text-anchor:middle}.w-sea-label.is-calm{font-size:59.5px;fill:#d6e4ff42}.w-sea-label.is-small{font-size:36.8px;letter-spacing:.3em;fill:#d6e4ff33}.w-ocean{font-family:var(--font-serif);font-size:31.5px;letter-spacing:.5em;fill:#d6e4ff42}.w-compass circle{fill:none;stroke:#e3b77842;stroke-width:1.68}.w-compass line{stroke:#e3b77838;stroke-width:1.54}.w-compass-needle{fill:#e3b77875}.w-compass-cross{fill:#e3b77833}.w-compass text{font-family:var(--font-mono);font-size:26.2px;fill:#e3b77899;text-anchor:middle}.w-scale path{fill:none;stroke:#e3b77857;stroke-width:1.68}.w-scale text{font-family:var(--font-mono);font-size:22.8px;fill:#e3b77880}.w-frame rect{fill:none;stroke:#e3b77833;stroke-width:1.4}.w-frame rect:last-child{stroke:#e3b77817}.w-lead{margin:var(--space-4) 0 0;max-width:760px;font-size:var(--text-base);line-height:1.95;color:var(--color-text-tertiary)}.w-map-note{margin:var(--space-3) 0 0;font-size:var(--text-xs);line-height:1.8;color:var(--color-text-tertiary)}.w-map-hint{display:none;margin:var(--space-2) 0 0;text-align:center;font-size:11px;letter-spacing:.1em;color:var(--color-text-disabled)}.w-map-note-dim{color:var(--color-text-disabled)}.w-panel{margin-top:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:radial-gradient(120% 220% at 0% 0%,rgba(227,183,120,.05),transparent 58%),var(--color-bg-surface);padding:var(--space-6) var(--space-8)}.w-panel-inner{display:grid;grid-template-columns:260px minmax(0,1fr) 220px;gap:var(--space-8);align-items:start;animation:w-panel-in .3s var(--ease-out) both}.w-panel-lead,.w-panel-body{min-width:0}.w-panel-actions{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3);padding-top:var(--space-6)}@keyframes w-panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.w-panel-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.w-panel-kind{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--color-text-tertiary)}.w-panel-status{padding:2px 8px;border-radius:var(--radius-full);border:1px solid rgba(79,211,154,.3);background:#4fd39a14;font-size:11px;color:var(--color-success-badge-text, #7BE3B4)}.w-panel-name{margin:var(--space-3) 0 0;font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:600;color:var(--color-text-primary)}.w-panel-en{margin:4px 0 0;font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--color-text-disabled)}.w-panel-poem{margin:var(--space-4) 0 0;padding-left:var(--space-3);border-left:2px solid rgba(227,183,120,.45);font-family:var(--font-serif);font-size:var(--text-md);line-height:1.7;color:var(--color-accent-500)}.w-panel-desc{margin:0 0 var(--space-3);font-size:var(--text-base);line-height:1.95;color:var(--color-text-secondary)}.w-panel-subs{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md)}.w-panel-subs-title{display:block;margin-bottom:6px;font-size:11px;color:var(--color-text-tertiary)}.w-panel-subs ul{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none}.w-panel-subs li{font-size:var(--text-sm);color:var(--color-text-secondary)}.w-panel-subs li:before{content:"·";margin-right:5px;color:var(--color-accent-500)}.w-section{margin-top:var(--space-16)}.w-rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-5)}.w-rule{position:relative;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:linear-gradient(160deg,#1b1730e6,#131022e6)}.w-rule-no{font-family:var(--font-serif);font-size:34px;line-height:1;color:#e3b77873}.w-rule-title{margin:var(--space-3) 0 var(--space-2);font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-text-primary)}.w-rule-text{margin:0;font-size:var(--text-sm);line-height:1.9;color:var(--color-text-secondary)}.w-uncharted{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-5)}.w-uncharted-item{padding-left:var(--space-4);border-left:1px dashed var(--color-border-strong)}.w-uncharted-name{font-family:var(--font-mono);font-size:var(--text-sm);letter-spacing:.06em;color:var(--color-text-secondary)}.w-uncharted-text{margin:var(--space-2) 0 0;font-size:var(--text-sm);line-height:1.9;color:var(--color-text-secondary)}.w-closing{margin:var(--space-8) 0 0;text-align:center;font-family:var(--font-serif);font-size:var(--text-md);color:var(--color-text-disabled)}.world-strip{display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-6);padding:var(--space-4) var(--space-5);border:1px solid rgba(227,183,120,.2);border-radius:var(--radius-xl);background:radial-gradient(120% 200% at 0% 0%,rgba(227,183,120,.08),transparent 60%),var(--color-bg-surface);transition:border-color var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out)}.world-strip:hover{border-color:#e3b77873;transform:translateY(-2px);box-shadow:0 12px 32px #00000059}.world-strip-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:var(--radius-full);border:1px solid rgba(227,183,120,.28);color:var(--color-accent-500);--px-1: #E3B778;--px-2: #F5D9A8;--px-3: #8A6A3E}.world-strip-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.world-strip-kicker{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;color:var(--color-text-tertiary)}.world-strip-title{font-family:var(--font-serif);font-size:var(--text-md);color:var(--color-text-primary)}.world-strip-desc{font-size:var(--text-sm);color:var(--color-text-tertiary)}.world-strip-cta{display:inline-flex;align-items:center;gap:5px;flex:none;font-size:var(--text-sm);color:var(--color-accent-500)}@media(max-width:640px){.world-strip{align-items:flex-start;flex-wrap:wrap}.world-strip-cta{width:100%;padding-left:56px}}@media(max-width:1080px){.w-panel-inner{grid-template-columns:220px minmax(0,1fr);gap:var(--space-6)}.w-panel-actions{grid-column:2;padding-top:0;flex-direction:row;align-items:center;flex-wrap:wrap}}@media(max-width:1100px){.w-map{overflow:hidden;height:min(64vh,560px);border-radius:0;border-inline:none}.w-map svg{min-width:0;width:100%;height:100%}.w-map-bleed{padding-inline:0}.w-map-hint{display:block}}@media(max-width:760px){.w-rules,.w-uncharted{grid-template-columns:1fr}.w-hero{padding-block:var(--space-10) var(--space-6)}.w-panel{padding:var(--space-5)}.w-panel-inner{grid-template-columns:1fr;gap:var(--space-4)}.w-panel-actions{grid-column:auto;flex-direction:column;align-items:stretch}.w-panel-name{font-size:var(--text-2xl)}}.w-boats .boat{transform-box:fill-box}.w-boats .boat-bob{transform-box:fill-box;transform-origin:50% 62%;animation:w-bob 6.4s var(--ease-soft) infinite}.w-boats .boat:nth-child(2) .boat-bob{animation-duration:7.6s;animation-delay:-1.8s}.w-boats .boat:nth-child(3) .boat-bob{animation-duration:5.8s;animation-delay:-3.1s}.bt-wake{fill:none;stroke:#b2d8e257;stroke-width:1.26;stroke-linecap:round}.bt-hull{fill:#6b4b31;stroke:#180f0a80;stroke-width:1.12}.bt-inner{fill:#3a2618}.bt-line{stroke:#e8cea057;stroke-width:1.12;stroke-linecap:round}.bt-lamp{fill:#f6d79b}.w-herds .sp-body{fill:#e8e2d2db}.w-herds .sp-head{fill:#cec4b2e6}.w-herds .sp-leg,.w-herds .sp-shadow,.w-herds .dr-shadow{fill:#06040e57}.w-herds .sp-leg{stroke:#3a2e24b3;stroke-width:1.26;stroke-linecap:round}.w-herds .dr-body{fill:#a8805ce6}.w-herds .dr-neck,.w-herds .dr-leg,.w-herds .dr-antler{fill:none;stroke:#967050eb}.w-herds .dr-neck{stroke-width:2.1;stroke-linecap:round}.w-herds .dr-leg{stroke-width:1.4;stroke-linecap:round}.w-herds .dr-antler{stroke-width:1.1;stroke-linecap:round}.w-herds .dr-head{fill:#b28a64f2}.campfire .cf-glow{fill:#f4b06029;animation:w-ember-glow 3.2s var(--ease-soft) infinite}.campfire .cf-stone{fill:none;stroke:#968c8499;stroke-width:1.8;stroke-linecap:round}.campfire .cf-flame{fill:#f8ba68e6;transform-box:fill-box;transform-origin:50% 100%;animation:w-flicker 1.6s var(--ease-soft) infinite}.campfire .cf-flame.is-inner{fill:#ffe8b0f2;animation-duration:1.1s;animation-direction:alternate-reverse}.campfire .cf-spark{fill:none;stroke:#ffd696b3;stroke-width:1.1;stroke-linecap:round;animation:w-ember 2.4s linear infinite}.w-fx-mist ellipse{fill:#c4d6e20e;animation-name:w-mist;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate}.w-fx-smoke .w-puff{fill:#cecada4d;transform-box:fill-box;transform-origin:center;animation-name:w-puff;animation-timing-function:ease-out;animation-iteration-count:infinite}.w-fx-flies circle{fill:#e2f6b4d9;transform-box:fill-box;transform-origin:center;animation-name:w-glowfly;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.w-beam{fill:url(#w-beam-grad);opacity:.5;animation:w-beam 8s var(--ease-soft) infinite}.w-tower-halo{fill:#f6d6983d;animation:w-halo 6s var(--ease-soft) infinite}.w-bird .w-wing{fill:none;stroke:#d6e2f49e;stroke-width:1.6;stroke-linecap:round;transform-box:fill-box;transform-origin:50% 80%;animation:w-flap .66s ease-in-out infinite}.w-bird .w-wing.is-back{stroke:#d6e2f457;animation-duration:.72s;animation-direction:alternate}.w-bird-fly{animation-name:w-fly;animation-timing-function:linear;animation-iteration-count:infinite}.w-bird.is-2 .w-bird-fly{animation-name:w-fly-2}.w-bird.is-3 .w-bird-fly{animation-name:w-fly-3}.w-rivers .w-river-flow{stroke-dasharray:26 44;animation:w-stream 3.6s linear infinite}.w-shoal{animation:w-shoal 26s linear infinite}.w-constellation circle{animation:w-twinkle 5.4s var(--ease-soft) infinite}.w-constellation circle:nth-child(2n){animation-delay:-1.7s}.w-constellation circle:nth-child(3n){animation-delay:-3.4s}.w-beacons .bc-glow{animation:w-halo 3.4s var(--ease-soft) infinite}.w-beacons .bc-beam{transform-box:fill-box;transform-origin:0% 50%;animation:w-sweep 9s var(--ease-soft) infinite}.w-compass-needle{transform-box:fill-box;transform-origin:50% 50%;animation:w-needle 7.5s var(--ease-soft) infinite}.w-abyss-ring{transform-box:fill-box;transform-origin:center;animation:w-turn 44s linear infinite}.w-abyss-ring.is-inner{animation-direction:reverse;animation-duration:30s}.w-vegetation .reed-bob{transform-box:fill-box;transform-origin:50% 100%;animation:w-sway 6.8s var(--ease-soft) infinite}.w-vegetation .reed:nth-child(3n) .reed-bob{animation-duration:8.2s;animation-delay:-2.4s}.w-vegetation .reed:nth-child(4n) .reed-bob{animation-duration:5.6s;animation-delay:-4.1s}.w-waves{animation:w-drift 60s linear infinite alternate}@keyframes w-bob{0%,to{rotate:-1.5deg}50%{rotate:1.5deg}}@keyframes w-flicker{0%,to{scale:1 1;opacity:.86}50%{scale:.9 1.12;opacity:1}}@keyframes w-ember-glow{0%,to{opacity:.5}50%{opacity:.85}}@keyframes w-ember{0%{opacity:0;translate:0 0}30%{opacity:.7}to{opacity:0;translate:0 -14px}}@keyframes w-puff{0%{opacity:0;translate:0 0;scale:.5}22%{opacity:.55}to{opacity:0;translate:2px -46px;scale:2.1}}@keyframes w-mist{0%{translate:-26px 0;opacity:.55}to{translate:26px -6px;opacity:.9}}@keyframes w-glowfly{0%,to{opacity:0;translate:0 0;scale:.7}40%{opacity:.9;scale:1}70%{opacity:.25}85%{translate:4px -5px}}@keyframes w-beam{0%,to{opacity:.28}50%{opacity:.62}}@keyframes w-halo{0%,to{opacity:.45}50%{opacity:.9}}@keyframes w-flap{0%,to{scale:1 1}50%{scale:1 .45}}@keyframes w-fly{0%{translate:0 0;opacity:0}8%{opacity:.9}50%{translate:150px -46px}92%{opacity:.9}to{translate:300px 8px;opacity:0}}@keyframes w-fly-2{0%{translate:0 0;opacity:0}10%{opacity:.75}55%{translate:-120px -58px}to{translate:-240px -12px;opacity:0}}@keyframes w-fly-3{0%{translate:0 0;opacity:0}12%{opacity:.7}60%{translate:96px 40px}to{translate:190px 64px;opacity:0}}@keyframes w-stream{to{stroke-dashoffset:-70}}@keyframes w-shoal{to{stroke-dashoffset:-60}}@keyframes w-twinkle{0%,to{opacity:.32}50%{opacity:.95}}@keyframes w-sweep{0%,to{opacity:.2;rotate:-6deg}50%{opacity:.6;rotate:6deg}}@keyframes w-needle{0%,to{rotate:-1.6deg}50%{rotate:1.6deg}}@keyframes w-turn{to{rotate:360deg}}@keyframes w-sway{0%,to{rotate:-1.4deg}50%{rotate:1.4deg}}@keyframes w-drift{to{translate:14px 0}}.w-biome-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:26px 0 0;padding:0;list-style:none}.w-biome-card{--biome: #8fa8c8;--biome-soft: rgba(143, 168, 200, .2);position:relative;display:flex;gap:12px;padding:14px 16px 15px 18px;border:1px solid rgba(226,200,160,.14);border-radius:14px;overflow:hidden;background:radial-gradient(130% 100% at 0% 0%,var(--biome-soft),transparent 72%),#0a08126b}.w-biome-card:before{content:"";position:absolute;left:0;top:13px;bottom:13px;width:2px;border-radius:0 2px 2px 0;background:var(--biome);opacity:.7}.w-biome-card.is-frost{--biome: #9cbce4;--biome-soft: rgba(150, 186, 226, .16)}.w-biome-card.is-reef{--biome: #78b0bc;--biome-soft: rgba(96, 154, 168, .16)}.w-biome-card.is-pass{--biome: #b2a0a2;--biome-soft: rgba(152, 132, 134, .16)}.w-biome-card.is-calm{--biome: #6fa9a2;--biome-soft: rgba(78, 134, 128, .18)}.w-biome-card.is-moon{--biome: #6cb08c;--biome-soft: rgba(72, 136, 110, .18)}.w-biome-card.is-well{--biome: #c0b072;--biome-soft: rgba(152, 142, 84, .18)}.w-biome-card.is-fen{--biome: #6d9e8e;--biome-soft: rgba(70, 108, 96, .2)}.w-biome-card.is-grey{--biome: #a4a4b2;--biome-soft: rgba(132, 132, 142, .16)}.w-biome-card.is-drift{--biome: #c8a274;--biome-soft: rgba(152, 126, 78, .18)}.w-biome-card-no{font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--biome);opacity:.9}.w-biome-card-body{min-width:0}.w-biome-card-name{margin:0;font-family:var(--font-serif);font-size:17px;font-weight:500;letter-spacing:.06em;color:var(--color-text-primary)}.w-biome-card-note{margin:6px 0 0;font-size:13px;line-height:1.72;color:var(--color-text-tertiary)}.w-biome-card-veg{margin:9px 0 0;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--biome);opacity:.78}@media(max-width:980px){.w-biome-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.w-biome-list{grid-template-columns:1fr}}.w-art .lm-lantern{transform-box:fill-box;transform-origin:50% 0%;animation:w-lantern 5.4s var(--ease-soft) infinite}.w-art .lm-lantern-body{fill:#f8d696eb}.w-art .lm-lantern-cap{stroke:#34261ad9;stroke-width:1.4;stroke-linecap:round}.w-art .lm-book{fill:#ceb080cc}.w-art .lm-book.is-2{fill:#ac8862cc}.w-art .lm-book.is-3{fill:#e2c89abf}@keyframes w-lantern{0%,to{rotate:-3.4deg}50%{rotate:3.4deg}}@media(prefers-reduced-motion:reduce){.w-halo,.w-routes path.is-active,.w-boats .boat-bob,.campfire .cf-glow,.campfire .cf-flame,.campfire .cf-spark,.w-fx-mist ellipse,.w-fx-smoke .w-puff,.w-fx-flies circle,.w-beam,.w-tower-halo,.w-bird .w-wing,.w-bird-fly,.w-rivers .w-river-flow,.w-shoal,.w-constellation circle,.w-beacons .bc-glow,.w-beacons .bc-beam,.w-compass-needle,.w-abyss-ring,.w-vegetation .reed-bob,.w-waves,.w-art .lm-lantern{animation:none}.w-panel-inner{animation:none}}.w-micro .gs-blade{fill:none;stroke:#609c7a80;stroke-width:2.2px;stroke-linecap:butt}.w-micro .pb-face{fill:#847c9e99}.w-micro .pb-shade{fill:#4e486499}.w-micro .fl-stem{fill:none;stroke:#609c7a73;stroke-width:1.8px}.w-micro .fl-head{fill:#e4ce94bf}.w-micro .fl-cap{fill:#ba6858b3}.w-micro .fn-post,.w-micro .fn-rail{fill:none;stroke:#b08e609e;stroke-width:2px;stroke-linecap:butt}.w-micro .fn-rail{stroke:#96764e80;stroke-width:1.6px}.w-zoom{position:absolute;right:14px;bottom:14px;z-index:3;display:flex;align-items:center;gap:2px;padding:4px;border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:#0a0812d1;backdrop-filter:blur(10px);box-shadow:0 8px 24px #00000073}.w-zoom button{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--color-text-primary);font-size:17px;line-height:1;cursor:pointer;transition:background var(--duration-fast) var(--ease-out)}.w-zoom button:hover:not(:disabled){background:#e3b77829;color:var(--color-accent-500)}.w-zoom button:disabled{opacity:.3;cursor:default}.w-zoom-level{min-width:38px;text-align:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--color-text-tertiary)}.w-zoom-reset{position:absolute;right:14px;bottom:60px;z-index:3;padding:6px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:#0a0812d1;backdrop-filter:blur(10px);color:var(--color-text-secondary);font-size:12px;cursor:pointer}.w-zoom-reset:hover{color:var(--color-accent-500);border-color:#e3b77880}.w-map svg{touch-action:pan-y}.w-map.is-zoomed svg{cursor:grab;touch-action:none}.w-map.is-zoomed svg:active{cursor:grabbing}@media(max-width:620px){.w-zoom{right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));backdrop-filter:none;background:#0a0812eb}.w-zoom button{width:40px;height:40px}.w-zoom-reset{right:max(10px,env(safe-area-inset-right));bottom:max(62px,calc(env(safe-area-inset-bottom) + 62px));backdrop-filter:none;background:#0a0812eb}}.w-map{--wz: 1;--ws: 1}.w-vegetation .tree-dead{fill:none;stroke:#7e6e62b8;stroke-width:1.26;stroke-linecap:round}.w-vegetation .tree-branch{fill:none;stroke:#3a2c22a8;stroke-width:1.26;stroke-linecap:round}.w-vegetation .marsh-mud{fill:#3038349e}.w-vegetation .reed-leaf{fill:none;stroke:#70a88470;stroke-width:1.4;stroke-linecap:round}.w-knolls .knoll-rock{fill:#6a5f9c;stroke:#d6ccff29;stroke-width:.98;stroke-linejoin:round}.w-rocks .rk-crack{fill:none;stroke:#08051470;stroke-width:1.1;stroke-linecap:round}.w-ponds .pd-weed{fill:none;stroke:#689c8861;stroke-width:1.3;stroke-linecap:round}.w-hamlets .hm-post{fill:none;stroke:#96764ead;stroke-width:1.8;stroke-linecap:round}.w-hamlets .hm-fence{fill:none;stroke:#bc9866b8;stroke-width:2;stroke-linecap:butt}.w-hamlets .hm-net{fill:none;stroke:#d6ccb085;stroke-width:1.05;stroke-linecap:round}.w-hamlets .hm-veg{fill:none;stroke:#709c6c80;stroke-width:1.5;stroke-linecap:round}.w-hamlets .hm-stone{fill:#4b4272;stroke:#d6ccff33;stroke-width:.84}.w-hamlets .hm-stone2{fill:#3a3358}.w-hamlets .hm-deck{fill:#4a3a2a;stroke:#e2be8447;stroke-width:.84}.w-hamlets .hm-terrace{fill:none;stroke:#c6bcf238;stroke-width:1.5;stroke-linecap:round}.w-ruins .ru-dark{fill:#06040e85}.w-ruins .ru-arc{fill:none;stroke:#57507f;stroke-width:5;stroke-linecap:butt}.w-piers .pr-beam{fill:none;stroke:#96764eb8;stroke-width:1.8;stroke-linecap:round}.w-piers .pr-rope{fill:none;stroke:#cec4a85c;stroke-width:1;stroke-linecap:round}.w-piers .pr-crate{fill:#6a5232;stroke:#18100a80;stroke-width:.9}.w-bridges .br-stone{fill:#6a5f94;stroke:#d6ccff29;stroke-width:.84}.w-boats .bt-mast{fill:none;stroke:#3a2c22d1;stroke-width:1.4;stroke-linecap:round}.w-boats .bt-sail{fill:#e2d6bebd;stroke:#180f0a6b;stroke-width:.9;stroke-linejoin:round}.w-boats .bt-sail.is-back{fill:#c0b29c8f}.w-boats .bt-hatch{fill:#140e0a9e}.w-boats .bt-net{fill:none;stroke:#cec4a857;stroke-width:.9;stroke-linecap:round}.w-herds .sp-neck{fill:none;stroke:#cec4b2e6;stroke-width:2.2;stroke-linecap:round}.campfire .cf-wood{fill:none;stroke:#60462eeb;stroke-width:2;stroke-linecap:round}.w-micro .fl-frond{fill:none;stroke:#609c7a7a;stroke-width:1.5;stroke-linecap:round}.page.w-page .w-map.is-deep svg g:not(.w-labels) path,.page.w-page .w-map.is-deep svg g:not(.w-labels) rect,.page.w-page .w-map.is-deep svg g:not(.w-labels) circle,.page.w-page .w-map.is-deep svg g:not(.w-labels) ellipse{stroke-width:var(--ws);stroke-dasharray:none}.w-ground .gd-sand{fill:#e4cca638}.w-ground .gd-grit{fill:#0c091870}.w-ground .gd-stone{fill:#867ca875}.w-ground .gd-blade{fill:#5c9e7a85}.w-ground .gd-moss{fill:#5c7a6a12}.w-tree-fine .tf-a{fill:none;stroke:#2c5444f2;stroke-width:calc(var(--ws) * 1.6)!important;stroke-linecap:round}.w-tree-fine .tf-b{fill:none;stroke:#244638f2;stroke-width:calc(var(--ws) * 1.6)!important;stroke-linecap:round}.w-tree-fine:not(.is-pine) .tf-a{fill:#2e5846eb;stroke:none}.w-tree-fine:not(.is-pine) .tf-b{fill:#487e62e6;stroke:none}.w-tree-fine .tf-branch{fill:none;stroke:#1e3c30bf;stroke-width:calc(var(--ws) * 2.2)!important;stroke-linecap:butt}.w-tree-fine .tf-rim{fill:#35634ff2;stroke:#35634ff2;stroke-width:calc(var(--ws) * 1.4)!important;stroke-linejoin:miter}.w-tree-fine .tf-bark{fill:none;stroke:#3a2c22d9;stroke-width:calc(var(--ws) * 2)!important;stroke-linecap:round}.w-ground .gd-clump path{fill:none;stroke:#5c987666;stroke-width:calc(var(--ws) * 2)!important;stroke-linecap:round}.w-ground .gd-bed{fill:#06040e42}.w-ground .gd-boulder{fill:#70668e80}.w-ground .gd-boulder-hi{fill:#9e94c066}.w-patch .pt-a{fill:#9882c20d}.w-patch .pt-b{fill:#4e705e0b}.w-map[data-lod="4"] .w-hamlets .hm-roof,.w-map[data-lod="5"] .w-hamlets .hm-roof,.w-map[data-lod="4"] .w-ruins .ru-wall,.w-map[data-lod="5"] .w-ruins .ru-wall,.w-map[data-lod="4"] .w-art .lm-roof,.w-map[data-lod="5"] .w-art .lm-roof{fill:url(#w-tile)}.w-map[data-lod="6"] .w-hamlets .hm-roof,.w-map[data-lod="7"] .w-hamlets .hm-roof,.w-map[data-lod="6"] .w-ruins .ru-wall,.w-map[data-lod="7"] .w-ruins .ru-wall,.w-map[data-lod="6"] .w-art .lm-roof,.w-map[data-lod="7"] .w-art .lm-roof{fill:url(#w-tile-fine)}.w-map[data-lod="4"] .w-hamlets .hm-wall,.w-map[data-lod="5"] .w-hamlets .hm-wall,.w-map[data-lod="4"] .w-hamlets .hm-stone,.w-map[data-lod="5"] .w-hamlets .hm-stone,.w-map[data-lod="4"] .w-art .lm-stone,.w-map[data-lod="5"] .w-art .lm-stone{fill:url(#w-brick)}.w-map[data-lod="6"] .w-hamlets .hm-wall,.w-map[data-lod="7"] .w-hamlets .hm-wall,.w-map[data-lod="6"] .w-hamlets .hm-stone,.w-map[data-lod="7"] .w-hamlets .hm-stone,.w-map[data-lod="6"] .w-art .lm-stone,.w-map[data-lod="7"] .w-art .lm-stone{fill:url(#w-brick-fine)}.w-ground .gd-glint{fill:#b0e6ee42}.w-patch .pt-w{fill:#14344a29}.w-yard ellipse{fill:#e2c4980d}.w-hamlets .hm-eave{fill:none;stroke:#2e2214bf;stroke-width:1.5;stroke-linecap:butt}.w-hamlets .hm-plinth{fill:#140e1e57}.w-hamlets .hm-frame{fill:none;stroke:#ecd4a680;stroke-width:.85;stroke-linejoin:miter}.w-hamlets .hm-plank{fill:none;stroke:#1a120c99;stroke-width:.7;stroke-linecap:butt}.w-hamlets .hm-knob{fill:#e2ba6ce6}.w-hamlets .hm-step{fill:none;stroke:#bab0ce66;stroke-width:1.2;stroke-linecap:butt}.w-hamlets .hm-latch{fill:none;stroke:#2e221499;stroke-width:1.1;stroke-linecap:butt}.w-vegetation .tree-root{fill:none;stroke:#2a2018bf;stroke-width:1.6;stroke-linecap:round}.w-hamlets .hm-roof2{fill:#120c1a52}.w-yard ellipse{fill:url(#w-yard)}.w-vegetation .tree-tier{fill:#0c1e1842}.w-hamlets .hm-light,.w-hamlets .hm-frame{transform-box:fill-box;transform-origin:center;transform:scale(.74)}.w-hamlets .hm-light{fill:#eeca8adb}.w-map[data-lod="7"] .w-hamlets .hm-roof,.w-map[data-lod="7"] .w-ruins .ru-wall,.w-map[data-lod="7"] .w-art .lm-roof{fill:url(#w-tile-ultra)}.w-map[data-lod="7"] .w-hamlets .hm-wall,.w-map[data-lod="7"] .w-hamlets .hm-stone,.w-map[data-lod="7"] .w-art .lm-stone{fill:url(#w-brick-ultra)}.w-sky{pointer-events:none}.w-sky .sky-wash{opacity:.34}.w-sky .sky-beam{opacity:.3}.w-sky .sky-fog{opacity:.5}.w-sky .sky-moon{opacity:.55}.w-sky .sky-vignette{opacity:.9}.w-map .w-veil{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;background:radial-gradient(78% 62% at 46% 44%,rgba(190,206,236,.5),rgba(120,140,190,.16) 58%,transparent 78%),linear-gradient(180deg,#080710e6,#08071073);animation:w-veil-out 2.2s var(--ease-out) .12s both}@keyframes w-veil-out{0%{opacity:.92}to{opacity:0}}.w-map.is-zoomed .w-scale{display:none}.w-scalebar{position:absolute;left:14px;bottom:14px;z-index:3;display:none;align-items:center;gap:8px;padding:5px 10px;border:2px solid rgba(226,200,160,.24);background:#0a0812cc;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--color-text-tertiary)}.w-map.is-zoomed .w-scalebar{display:flex}.w-scalebar i{display:block;height:2px;background:#e2c8a099;box-shadow:0 0 0 1px #06050d99}@media(prefers-reduced-motion:reduce){.w-map .w-veil{display:none}}@media(max-width:620px){.w-scalebar{left:8px;bottom:8px}}.page.w-page .w-map.is-oil{--oil-ink: #172522;--oil-deep: #07141e;--oil-sea: #153543;--oil-sea-hi: #28515a;--oil-land: #505944;--oil-land-hi: #6e7352;--oil-gold: #edca83;border:2px solid #38463f;border-radius:0;background:var(--oil-deep);box-shadow:8px 8px #03080cb8,inset 0 0 0 1px #edca831a}.page.w-page .w-map.is-oil:before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background-image:repeating-linear-gradient(173deg,rgba(239,222,180,.024) 0 1px,transparent 1px 5px);mix-blend-mode:soft-light;opacity:.8}.page.w-page .w-map.is-oil:after{background:radial-gradient(115% 100% at 49% 44%,transparent 54%,rgba(2,8,12,.48) 100%)}.page.w-page .w-map.is-oil svg :is(path,ellipse,circle,rect,polyline,polygon,line){shape-rendering:geometricPrecision}#w-ocean stop:nth-child(1){stop-color:#173b46}#w-ocean stop:nth-child(2){stop-color:#0b2834}#w-ocean stop:nth-child(3){stop-color:#05141e}#w-sea stop:nth-child(1){stop-color:#28565e}#w-sea stop:nth-child(2){stop-color:#153e4a}#w-sea stop:nth-child(3){stop-color:#092834}#w-land stop:nth-child(1){stop-color:#a08b5b}#w-land stop:nth-child(2){stop-color:#7f7148}#w-land stop:nth-child(3){stop-color:#5f603e}#w-land stop:nth-child(4){stop-color:#3c4b37}#w-mt stop:nth-child(1){stop-color:#a3a494}#w-mt stop:nth-child(2){stop-color:#737c70}#w-mt stop:nth-child(3){stop-color:#414d47}.page.w-page .w-map.is-oil .w-iso-land-side,.page.w-page .w-map.is-oil .w-iso-island-side{fill:#26382f;stroke:#142820;stroke-width:4px;stroke-linejoin:round}.page.w-page .w-map.is-oil .w-grid{opacity:.22}.page.w-page .w-map.is-oil .w-plateau-shadow{fill:#030a0c57;stroke:none;filter:none}.page.w-page .w-map.is-oil .w-plateau-side{fill:#282d2085;stroke:none;filter:none}.page.w-page .w-map.is-oil .w-plateau.is-warm .w-plateau-side{fill:#4134217a}.page.w-page .w-map.is-oil .w-plateau-ring{fill:url(#w-plateau-warm);stroke:none;opacity:calc(.045 + var(--ring) * .028)}.page.w-page .w-map.is-oil .w-plateau.is-cold .w-plateau-ring{fill:url(#w-plateau-cold)}.page.w-page .w-map.is-oil .w-plateau-top{fill:url(#w-plateau-warm);stroke:none;opacity:.32;filter:none}.page.w-page .w-map.is-oil .w-plateau.is-cold .w-plateau-top{fill:url(#w-plateau-cold)}.page.w-page .w-map.is-oil .w-plateau.is-warm .w-plateau-top{fill:url(#w-plateau-warm)}.page.w-page .w-map.is-oil .w-plateau-brush{fill:url(#w-oil-canvas);stroke:#eedaa412;stroke-width:24px;stroke-dasharray:58 34 19 43;filter:none}.page.w-page .w-map.is-oil .w-coastal-clouds{pointer-events:none}.page.w-page .w-map.is-oil .w-iso-land-side{fill:#29382e;stroke-width:3px}.page.w-page .w-map.is-oil .w-coast-halo path{stroke:#ddc48938}.page.w-page .w-map.is-oil .w-shoal{stroke:#accdc138;stroke-dasharray:18 15}.page.w-page .w-map.is-oil .w-shoal.is-faint{stroke:#accdc11f}.page.w-page .w-map.is-oil .w-isles path{fill:#4c5942;stroke:#d3c08b7a}.page.w-page .w-map.is-oil .w-ranges .mt-body{fill:url(#w-iso-rock);stroke:#1d2a26bd;stroke-width:1.35px}.page.w-page .w-map.is-oil .w-ranges .mt-shade{fill:#1b272494}.page.w-page .w-map.is-oil .w-ranges .mt-snow{fill:#d8d7c2}.page.w-page .w-map.is-oil .w-ranges .mt-rock{fill:#c4be9d7a}.page.w-page .w-map.is-oil .w-ranges :is(.mt-ridge,.mt-crease,.mt-foot){stroke:#212e297a;stroke-width:1.25px;stroke-linecap:round}.page.w-page .w-map.is-oil .w-relief ellipse{opacity:.52}.page.w-page .w-map.is-oil .w-relief .w-range-massif{fill:#383a2752;stroke:#bbad7714;stroke-width:5px}.page.w-page .w-map.is-oil .w-knolls .knoll-body{fill:#657052}.page.w-page .w-map.is-oil .w-knolls .knoll-shade{fill:#2334286b}.page.w-page .w-map.is-oil .w-knolls .knoll-line{stroke:#cdc69747}.page.w-page .w-map.is-oil .w-vegetation .tree-lit,.page.w-page .w-map.is-oil .w-tree-fine .tree-lit{fill:url(#w-iso-leaf)}.page.w-page .w-map.is-oil .w-vegetation .tree-shade,.page.w-page .w-map.is-oil .w-tree-fine .tree-shade{fill:#163126a8}.page.w-page .w-map.is-oil .w-vegetation .tree-tier,.page.w-page .w-map.is-oil .w-tree-fine .tree-tier{fill:#19362840}.page.w-page .w-map.is-oil :is(.w-vegetation,.w-tree-fine) .tree-trunk{fill:#5b4a35}.page.w-page .w-map.is-oil :is(.w-vegetation,.w-tree-fine) :is(.tree-branch,.tree-root){stroke:#303020bd;stroke-linecap:round}.page.w-page .w-map.is-oil :is(.w-vegetation,.w-tree-fine) .tree-shadow{fill:#0f1d1752}.page.w-page .w-map.is-oil .w-vegetation .tundra-clump{fill:#788066}.page.w-page .w-map.is-oil .w-vegetation .tundra-shade{fill:#465446}.page.w-page .w-map.is-oil .w-vegetation .scrub-branch{stroke:#6f6847}.page.w-page .w-map.is-oil .w-vegetation .scrub-leaf{stroke:#89906b}.page.w-page .w-map.is-oil .w-vegetation .reed-stalk{stroke:#798561}.page.w-page .w-map.is-oil .w-vegetation .reed-head{stroke:#b19c67}.page.w-page .w-map.is-oil .w-vegetation .marsh-grass{stroke:#526c50}.page.w-page .w-map.is-oil :is(.w-hamlets,.w-art) :is(.hm-wall,.lm-wood){fill:url(#w-iso-wall);stroke:#2a261dad;stroke-width:.9px}.page.w-page .w-map.is-oil :is(.w-hamlets,.w-art) :is(.hm-wall2,.lm-stone2){fill:#363128bd}.page.w-page .w-map.is-oil :is(.w-hamlets,.w-art) :is(.hm-roof,.hm-roof2,.lm-roof){fill:url(#w-iso-roof);stroke:#2a201ac2;stroke-width:.95px;stroke-linejoin:round}.page.w-page .w-map.is-oil :is(.w-hamlets,.w-art) :is(.hm-stone,.lm-stone){fill:url(#w-iso-rock);stroke:#252b259e;stroke-width:.9px}.page.w-page .w-map.is-oil :is(.w-hamlets,.w-art) :is(.hm-light,.lm-light,.lm-lantern-body){fill:var(--oil-gold);filter:drop-shadow(0 0 2.5px rgba(237,202,131,.42))}.page.w-page .w-map.is-oil :is(.w-hamlets,.w-art) :is(.hm-door,.lm-door,.lm-dark){fill:#2b2a25}.page.w-page .w-map.is-oil :is(.w-hamlets,.w-art) :is(.hm-line,.hm-eave,.hm-plank,.hm-frame,.lm-line){stroke:#e0c99757;stroke-linecap:round}.page.w-page .w-map.is-oil :is(.w-hamlets,.w-art) :is(.hm-ground,.lm-ground){fill:#111d174d}.page.w-page .w-map.is-oil .w-art .lm-metal{fill:#8b8062}.page.w-page .w-map.is-oil .w-art .lm-ray{stroke:#edca83ad}.page.w-page .w-map.is-oil .w-rivers .w-river-body{fill:#28515a;stroke:#91b4a440}.page.w-page .w-map.is-oil .w-rivers .w-river-flow{stroke:#a9cdbf57}.page.w-page .w-map.is-oil .w-trails path{stroke:#cdb37a80;stroke-width:4px;stroke-dasharray:16 9}.page.w-page .w-map.is-oil .w-bridges .br-deck,.page.w-page .w-map.is-oil .w-piers .pr-deck{fill:#755c3e;stroke:#d6b77e6b}.page.w-page .w-map.is-oil .w-ponds .pd-water,.page.w-page .w-map.is-oil .w-pondbig path{fill:#254b52}.page.w-page .w-map.is-oil .w-pondbig path.is-deep{fill:#153640}.page.w-page .w-map.is-oil .w-rocks .rk-lit,.page.w-page .w-map.is-oil .w-ruins .ru-wall,.page.w-page .w-map.is-oil .w-stones .sc-stone{fill:url(#w-iso-rock)}.page.w-page .w-map.is-oil .w-rocks .rk-shade,.page.w-page .w-map.is-oil .w-ruins .ru-shade,.page.w-page .w-map.is-oil .w-stones .sc-shade{fill:#1e2b248a}.page.w-page .w-map.is-oil .w-biome{stroke:#ddcc9d2e;stroke-dasharray:22 18}.page.w-page .w-map.is-oil .w-biome-frost{fill:#b7c6b71c}.page.w-page .w-map.is-oil .w-biome-reef{fill:#588b841a}.page.w-page .w-map.is-oil .w-biome-pass{fill:#84775b17}.page.w-page .w-map.is-oil .w-biome-calm{fill:#4e7e651a}.page.w-page .w-map.is-oil .w-biome-moon{fill:#41774d1c}.page.w-page .w-map.is-oil .w-biome-well{fill:#a094541a}.page.w-page .w-map.is-oil .w-biome-fen{fill:#3962491c}.page.w-page .w-map.is-oil .w-biome-grey{fill:#87887217}.page.w-page .w-map.is-oil .w-biome-drift{fill:#a080461a}.page.w-page .w-map.is-oil :is(.w-label,.w-sea-label,.w-range-label,.w-river-label,.w-biome-labels text){fill:#e4d7b5;stroke:#0a1614d1;paint-order:stroke}.page.w-page .w-map.is-oil .w-biome-labels text{fill:#ded3aea3}.page.w-page .w-map.is-oil .w-mark.is-active .w-label{fill:#f2cf82}.page.w-page .w-map.is-oil .w-halo{fill:#edca8326}.page.w-page .w-map.is-oil .w-foot{stroke:#edca83a8}.page.w-page .w-map.is-oil .w-routes path{stroke:#b4c6ad29}.page.w-page .w-map.is-oil .w-routes path.is-active{stroke:#edca83ad}.page.w-page .w-map.is-oil .w-detail :is(path,rect){shape-rendering:geometricPrecision}.page.w-page .w-map.is-oil .w-ground .gd-sand{fill:#d5c69657}.page.w-page .w-map.is-oil .w-ground .gd-grit{fill:#3d46335c}.page.w-page .w-map.is-oil .w-ground .gd-stone{fill:#85876d6b}.page.w-page .w-map.is-oil .w-ground .gd-blade{fill:#5b704780}@media(prefers-reduced-motion:reduce){.page.w-page .w-map.is-oil:before{mix-blend-mode:normal}}@media(max-width:760px){.page.w-page .w-map.is-oil:before{mix-blend-mode:normal;opacity:.38}.page.w-page .w-map.is-oil .w-coastal-clouds{will-change:auto}}.truss-page{max-width:var(--container-max);margin:0 auto;padding:0 var(--space-6)}@media(max-width:640px){.truss-page{padding:0 var(--space-4)}}.truss-head{margin-bottom:var(--space-5)}.truss-head-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-2)}.truss-head-tools{display:flex;align-items:center;gap:var(--space-2);flex:none}.truss-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:12px;cursor:pointer;transition:border-color var(--duration-fast),color var(--duration-fast)}.truss-icon-btn:hover,.truss-icon-btn.is-on{border-color:var(--color-border-hover);color:var(--color-text-primary)}.truss-keys-panel{display:grid;gap:7px;margin-top:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-xs);line-height:1.7;color:var(--color-text-secondary)}.truss-keys-panel>div{display:grid;grid-template-columns:64px 1fr;gap:var(--space-3)}.truss-keys-panel dt{font-family:var(--font-mono);color:var(--color-accent-700);white-space:nowrap}.truss-keys-panel dd{color:var(--color-text-tertiary)}.truss-keys-panel kbd{display:inline-block;padding:0 4px;border:1px solid var(--color-border);border-radius:3px;font-family:var(--font-mono);font-size:10px;color:var(--color-text-secondary)}.truss-eyebrow{font-size:var(--text-xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-accent-700);margin-bottom:var(--space-2)}.truss-title{font-family:var(--font-serif);font-size:var(--text-4xl);font-weight:600;letter-spacing:.02em;color:var(--color-text-primary);margin-bottom:0}.truss-lead{max-width:720px;font-size:var(--text-sm);line-height:1.9;color:var(--color-text-secondary)}.truss-lead-dim{margin-left:6px;color:var(--color-text-tertiary)}.truss-workspace{display:grid;grid-template-columns:76px minmax(0,1fr) 316px;gap:var(--space-4);align-items:start}.truss-main{min-width:0}.truss-palette{display:flex;flex-direction:column;gap:var(--space-2);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-2);position:sticky;top:calc(var(--nav-height) + var(--space-4))}.truss-palette-group{display:flex;flex-direction:column;gap:2px}.truss-palette-divider{height:1px;background:var(--color-border);margin:2px 4px}.truss-tool{display:flex;flex-direction:column;align-items:center;gap:3px;width:100%;padding:6px 2px 5px;background:transparent;border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:inherit;font-size:10.5px;line-height:1.2;cursor:pointer;position:relative;user-select:none;-webkit-user-select:none;transition:background var(--duration-fast) var(--ease-soft),color var(--duration-fast) var(--ease-soft),border-color var(--duration-fast) var(--ease-soft)}.truss-tool:hover{background:var(--color-bg-active);color:var(--color-text-primary)}.truss-tool.is-active{background:var(--color-brand-100);border-color:var(--color-brand-500);color:var(--color-text-primary)}.truss-tool span:not(.truss-tool-key){white-space:nowrap}.truss-palette-hint{font-size:11px;line-height:1.4;color:var(--color-text-tertiary);text-align:center;padding:2px 0 4px}.truss-toolbar{position:relative;display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap}.truss-select{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-secondary)}.truss-select-label{color:var(--color-text-tertiary)}.truss-select-box{position:relative;display:inline-flex;align-items:center;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding-right:var(--space-2);transition:border-color var(--duration-fast) var(--ease-soft)}.truss-select-box:hover{border-color:var(--color-border-hover)}.truss-select-box:focus-within{border-color:var(--color-brand-500);box-shadow:var(--ring-brand)}.truss-select-box select{appearance:none;background:transparent;border:0;color:var(--color-text-primary);font-family:inherit;font-size:var(--text-sm);padding:6px var(--space-2) 6px var(--space-3);cursor:pointer;outline:none}.truss-select-box svg{color:var(--color-text-tertiary);pointer-events:none}.truss-btn{display:inline-flex;align-items:center;gap:6px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:inherit;font-size:var(--text-sm);padding:6px var(--space-3);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-soft),color var(--duration-fast)}.truss-btn:hover:not(:disabled){border-color:var(--color-border-hover);color:var(--color-text-primary)}.truss-settings-wrap{position:relative}.truss-settings{position:absolute;top:calc(100% + 6px);right:0;z-index:6;width:234px;max-height:min(72vh,540px);overflow-y:auto;display:grid;gap:2px;padding:6px;background:var(--color-bg-glass-strong);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);backdrop-filter:blur(10px)}.truss-switch{display:grid;grid-template-columns:16px 1fr;grid-template-rows:auto auto;column-gap:8px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast)}.truss-switch:hover{background:var(--color-bg-active)}.truss-switch input{grid-row:span 2;align-self:center;width:14px;height:14px;accent-color:var(--color-brand-500);cursor:pointer}.truss-settings-tabs{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding:2px;margin-bottom:4px;background:var(--color-bg-subtle);border-radius:var(--radius-sm)}.truss-settings-tabs button{padding:4px 6px;background:transparent;border:0;border-radius:4px;color:var(--color-text-tertiary);font-family:inherit;font-size:11px;cursor:pointer}.truss-settings-tabs button.is-on{background:var(--color-bg-surface);color:var(--color-text-primary)}.truss-settings-section{display:block;margin:6px 8px 2px;font-size:10px;letter-spacing:.08em;color:var(--color-text-tertiary)}.truss-color-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:5px 8px}.truss-color-name{font-size:var(--text-xs);color:var(--color-text-primary)}.truss-color-value{font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary);text-transform:uppercase}.truss-color-row input[type=color]{width:26px;height:20px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;cursor:pointer}.truss-preset-row{display:grid;grid-template-columns:repeat(4,1fr);gap:3px;padding:6px 8px 2px;border-top:1px solid var(--color-border);margin-top:4px}.truss-preset-row button{padding:5px 2px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-family:inherit;font-size:10px;cursor:pointer}.truss-preset-row button:hover{border-color:var(--color-border-hover);color:var(--color-text-primary)}.truss-reset-row{padding:4px 8px 6px}.truss-reset-row button{width:100%;padding:4px;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-tertiary);font-family:inherit;font-size:10px;cursor:pointer}.truss-reset-row button:hover{color:var(--color-text-primary);border-color:var(--color-border-hover)}.truss-seg-row{margin-top:4px;padding:8px 8px 4px;border-top:1px solid var(--color-border);display:grid;gap:6px}.truss-seg-title{font-size:var(--text-xs);color:var(--color-text-primary)}.truss-seg{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.truss-seg.is-3{grid-template-columns:repeat(3,1fr)}.truss-seg-btn{padding:4px 2px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-tertiary);font-family:var(--font-mono);font-size:10px;cursor:pointer;transition:border-color var(--duration-fast),color var(--duration-fast),background var(--duration-fast)}.truss-seg-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-hover)}.truss-seg-btn.is-on{background:var(--color-brand-100);border-color:var(--color-brand-500);color:var(--color-text-primary)}.truss-seg-btn:disabled{opacity:.35;cursor:not-allowed}.truss-seg-hint{font-size:10px;line-height:1.4;color:var(--color-text-tertiary)}.truss-switch-name{font-size:var(--text-xs);color:var(--color-text-primary)}.truss-switch-hint{font-size:10px;line-height:1.4;color:var(--color-text-tertiary)}.truss-btn.is-icon{padding:6px;gap:0}.truss-btn:disabled{opacity:.45;cursor:not-allowed}.truss-btn.is-on{border-color:var(--color-brand-500);background:var(--color-brand-100);color:var(--color-text-primary)}.truss-toolbar-hint{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-left:auto}.truss-stage-wrap{position:relative}.truss-notice{position:absolute;top:12px;left:50%;z-index:2;max-width:calc(100% - 32px);transform:translate(-50%);background:var(--color-bg-glass-strong);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);padding:6px 14px;font-size:var(--text-sm);color:var(--color-text-primary);pointer-events:none;animation:trussNoticeIn .2s var(--ease-out) both}@keyframes trussNoticeIn{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.truss-canvas{position:relative;height:clamp(360px,56vh,640px);background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.truss-svg{display:block;width:100%;height:100%;touch-action:none;cursor:default}.truss-svg.is-dragging{cursor:grabbing}.truss-svg.is-panning{cursor:grab}.truss-canvas:focus{outline:none}.truss-canvas:focus-visible{outline:none;box-shadow:var(--ring-brand)}.truss-svg.is-tool-node,.truss-svg.is-tool-member{cursor:crosshair}.truss-svg.is-tool-erase{cursor:cell}.truss-svg.is-tool-pin,.truss-svg.is-tool-roller,.truss-svg.is-tool-forceV,.truss-svg.is-tool-forceH{cursor:copy}.truss-svg.is-tool-select .truss-bar,.truss-svg.is-tool-select .truss-node{cursor:pointer}.truss-grid line{stroke:var(--color-border);stroke-width:1;opacity:.35}.truss-bar{stroke-linecap:round;cursor:inherit;transition:opacity var(--duration-fast) var(--ease-soft)}.truss-bar.is-tension{stroke:var(--truss-tension, var(--el-fire))}.truss-bar.is-compression{stroke:var(--truss-compression, var(--el-water))}.truss-bar.is-zero{stroke:var(--truss-zero, var(--color-text-tertiary));stroke-dasharray:7 5;stroke-linecap:butt}.truss-bar.is-unknown{stroke:var(--color-border)}.truss-bar-over{stroke:var(--color-danger-600);opacity:.28;stroke-linecap:round;pointer-events:none}.truss-bar-hit{stroke:transparent;stroke-width:18;fill:none;cursor:inherit}.truss-axes{pointer-events:none}.truss-axis{stroke:var(--truss-axis, var(--color-border-strong));stroke-width:1.3}.truss-tick{stroke:var(--truss-axis, var(--color-border-strong));stroke-width:1}.truss-tick-label{fill:var(--truss-tick, var(--color-text-tertiary));font-family:var(--font-mono);font-size:10px;font-variant-numeric:tabular-nums}.truss-origin{color:var(--truss-axis, var(--color-text-secondary))}.truss-axis-name{fill:var(--truss-tick, var(--color-text-tertiary));font-family:var(--font-mono);font-style:italic;font-size:11px}.truss-bar-deformed{stroke-width:1.3;stroke-dasharray:4 4;opacity:.5;pointer-events:none}.truss-bar-deformed.is-tension{stroke:var(--truss-tension, var(--el-fire))}.truss-bar-deformed.is-compression{stroke:var(--truss-compression, var(--el-water))}.truss-bar-deformed.is-zero{stroke:var(--truss-zero, var(--color-text-tertiary))}.truss-drag-badge{position:absolute;left:var(--space-3);bottom:var(--space-3);background:var(--color-bg-glass);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);padding:4px var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--color-text-primary);backdrop-filter:blur(6px);pointer-events:none}.truss-deform-badge{position:absolute;right:var(--space-3);bottom:var(--space-3);background:var(--color-bg-glass);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:4px var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);backdrop-filter:blur(6px);pointer-events:none}.truss-deform-progress{color:var(--color-text-tertiary)}.truss-bar-tip{fill:var(--color-text-primary);font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--color-bg-surface);stroke-width:4px;stroke-linejoin:round;pointer-events:none}.truss-bar-tip.is-name{fill:var(--color-text-secondary);font-family:var(--font-sans);font-size:11px}.truss-bar-tip.is-value{font-size:10.5px;fill:var(--color-text-secondary);opacity:.85}.truss-node{color:var(--truss-node, var(--color-text-primary));cursor:inherit}.truss-node-ring{stroke:var(--color-accent-500);stroke-width:2;opacity:.9}.truss-support path,.truss-support circle{stroke:var(--color-text-secondary);stroke-width:1.4;stroke-linejoin:round}.truss-load line{stroke:var(--color-warning-600);stroke-width:2}.truss-load text{fill:var(--color-warning-600);font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--color-bg-surface);stroke-width:3px;stroke-linejoin:round}.truss-tool-key{position:absolute;top:3px;right:4px;font-family:var(--font-mono);font-size:9px;line-height:1;color:var(--color-text-tertiary);opacity:.7}.truss-tool.is-active .truss-tool-key{color:var(--color-accent-700);opacity:1}.truss-ghost{position:absolute;transform:translate(14px,14px);z-index:4;background:var(--color-bg-glass-strong);border:1px solid var(--color-brand-500);border-radius:var(--radius-full);padding:4px 11px;font-size:var(--text-xs);color:var(--color-text-primary);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-md)}.truss-ghost.is-invalid{border-color:var(--color-danger-600);color:var(--color-text-tertiary)}.truss-inline{position:absolute;z-index:5;background:var(--color-bg-glass-strong);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:8px 10px;box-shadow:var(--shadow-lg);backdrop-filter:blur(8px)}.truss-inline-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.truss-inline-field{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--color-text-tertiary)}.truss-inline-label{color:var(--color-text-secondary)}.truss-inline-field input{width:58px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;padding:3px 6px;outline:none}.truss-inline-field input:focus{border-color:var(--color-brand-500);box-shadow:var(--ring-brand)}.truss-inline-field.is-error input{border-color:var(--color-danger-600)}.truss-inline-unit{color:var(--color-text-tertiary)}.truss-inline-ok{background:var(--color-brand-100);border:1px solid var(--color-brand-500);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-xs);padding:4px 10px;cursor:pointer}.truss-inline-note{margin-top:6px;max-width:280px;font-size:11px;line-height:1.5;color:var(--color-warning-600)}.truss-inline-note.is-armed{color:var(--color-danger-700);font-weight:500}.truss-snap-ring{stroke:var(--color-brand-500);stroke-width:2;stroke-dasharray:5 4;pointer-events:none}.truss-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);text-align:center;padding:var(--space-6);pointer-events:none}.truss-empty-title{font-family:var(--font-serif);font-size:var(--text-xl);color:var(--color-text-secondary)}.truss-empty-hint{font-size:var(--text-sm);color:var(--color-text-tertiary)}.truss-empty-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:center;margin-top:var(--space-2);pointer-events:auto}.truss-empty-actions button{background:transparent;border:1px solid var(--color-border-strong);border-radius:var(--radius-full);color:var(--color-text-secondary);font-family:inherit;font-size:var(--text-sm);padding:5px var(--space-3);cursor:pointer;transition:border-color var(--duration-fast),color var(--duration-fast)}.truss-empty-actions button:hover{border-color:var(--color-brand-500);color:var(--color-text-primary)}.truss-broken{position:absolute;top:var(--space-3);left:var(--space-3);background:var(--color-danger-50);border:1px solid var(--color-danger-600);border-radius:var(--radius-md);color:var(--color-danger-700);font-size:var(--text-xs);padding:4px var(--space-2)}.truss-legend{position:absolute;left:var(--space-3);bottom:var(--space-3);display:flex;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-tertiary);background:var(--color-bg-glass);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:4px var(--space-3);backdrop-filter:blur(6px)}.truss-legend span{display:inline-flex;align-items:center;gap:5px}.truss-legend i{display:inline-block;width:14px;height:3px;border-radius:2px}.lg-marked{background:linear-gradient(90deg,#f5a524,#22d3ee,#a78bfa)}.lg-tension{background:var(--truss-tension, var(--el-fire))}.lg-compression{background:var(--truss-compression, var(--el-water))}.lg-zero{background:repeating-linear-gradient(90deg,var(--color-text-tertiary) 0 4px,transparent 4px 7px)}.truss-status{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-2);padding:0 var(--space-1);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.truss-status-hint{margin-left:auto;font-family:var(--font-sans);color:var(--color-text-tertiary);opacity:.9}.truss-status .is-bad{color:var(--color-danger-600)}.truss-status-dim{margin-left:auto;opacity:.85}.truss-side{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.truss-tabs{display:flex;gap:2px;padding:3px;background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md)}.truss-tab{position:relative;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:5px 8px;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--color-text-tertiary);font-family:inherit;font-size:var(--text-xs);cursor:pointer;transition:background var(--duration-fast) var(--ease-soft),color var(--duration-fast) var(--ease-soft)}.truss-tab:hover{color:var(--color-text-secondary)}.truss-tab.is-on{background:var(--color-bg-surface);color:var(--color-text-primary)}.truss-tab em{font-style:normal;font-family:var(--font-mono);font-size:10px;color:var(--color-text-tertiary)}.truss-tab-dot{width:4px;height:4px;border-radius:50%;background:var(--color-brand-500)}.truss-tab-body{display:flex;flex-direction:column;gap:var(--space-3);min-height:220px}.truss-panel{background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4)}.truss-panel-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;color:var(--color-text-secondary);margin-bottom:var(--space-3)}.truss-panel-clear{background:transparent;border:0;padding:0;color:var(--color-text-tertiary);font-family:inherit;font-size:var(--text-xs);font-weight:400;cursor:pointer}.truss-panel-clear:hover{color:var(--color-text-secondary)}.truss-panel-empty{font-size:var(--text-xs);line-height:1.7;color:var(--color-text-tertiary)}.truss-report{list-style:none;display:flex;flex-direction:column;gap:var(--space-3)}.truss-report-item{display:flex;gap:var(--space-2);align-items:flex-start}.truss-report-dot{flex:none;width:6px;height:6px;border-radius:50%;margin-top:7px}.truss-report-item.is-ok .truss-report-dot{background:var(--color-success-600)}.truss-report-item.is-warn .truss-report-dot{background:var(--color-warning-600)}.truss-report-item.is-error .truss-report-dot{background:var(--color-danger-600)}.truss-report-body{min-width:0}.truss-report-title{font-size:var(--text-sm);color:var(--color-text-primary);line-height:1.5}.truss-report-item.is-error .truss-report-title{color:var(--color-danger-700)}.truss-report-text{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.6;margin-top:2px;font-variant-numeric:tabular-nums}.truss-report-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);line-height:1.6;margin-top:4px}.truss-report-jump{margin-top:6px;background:transparent;border:0;padding:0;color:var(--color-brand-500);font-family:inherit;font-size:var(--text-xs);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.truss-props-head{font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-2);font-variant-numeric:tabular-nums}.truss-props-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.truss-props-sub{margin:var(--space-3) 0 var(--space-2);font-size:var(--text-xs);color:var(--color-text-tertiary)}.truss-props-note{margin-top:var(--space-2);font-size:11px;line-height:1.6;color:var(--color-text-tertiary)}.truss-field{display:flex;align-items:center;gap:5px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:3px 6px;font-size:var(--text-xs)}.truss-field:focus-within{border-color:var(--color-brand-500)}.truss-field-label{color:var(--color-text-tertiary);flex:none}.truss-field input{width:100%;min-width:0;background:transparent;border:0;outline:none;color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-sm);font-variant-numeric:tabular-nums;padding:0}.truss-field-unit{color:var(--color-text-tertiary);flex:none}.truss-segmented{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.truss-segmented button{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-family:inherit;font-size:11px;padding:5px 2px;cursor:pointer;white-space:nowrap;transition:border-color var(--duration-fast),color var(--duration-fast)}.truss-segmented button:hover{border-color:var(--color-border-hover);color:var(--color-text-primary)}.truss-segmented button.is-active{background:var(--color-brand-100);border-color:var(--color-brand-500);color:var(--color-text-primary)}.truss-props-select{width:100%;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-xs);padding:5px 6px;cursor:pointer;outline:none}.truss-props-select:focus{border-color:var(--color-brand-500)}.truss-props-remove,.truss-props-danger{width:100%;margin-top:var(--space-3);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-tertiary);font-family:inherit;font-size:var(--text-xs);padding:5px 8px;cursor:pointer;transition:border-color var(--duration-fast),color var(--duration-fast)}.truss-props-danger:hover{border-color:var(--color-danger-600);color:var(--color-danger-700)}.truss-props-remove:hover{border-color:var(--color-border-hover);color:var(--color-text-secondary)}.truss-text-input{width:100%;padding:5px 8px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:inherit;font-size:var(--text-sm);outline:none}.truss-text-input:focus{border-color:var(--color-brand-500)}.truss-text-input::placeholder{color:var(--color-text-tertiary);font-size:var(--text-xs)}.truss-swatches{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.truss-swatch{position:relative;width:26px;height:26px;padding:0;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:transform var(--duration-fast) var(--ease-soft),border-color var(--duration-fast) var(--ease-soft)}.truss-swatch:hover{transform:translateY(-1px);border-color:var(--color-border-hover)}.truss-swatch.is-auto{width:auto;padding:0 9px;font-family:inherit;font-size:11px;color:var(--color-text-secondary)}.truss-swatch.is-on:after{content:"";position:absolute;inset:-4px;border:1.5px solid var(--color-text-primary);border-radius:calc(var(--radius-sm) + 4px);pointer-events:none}.truss-swatch.is-picker{overflow:hidden;background:conic-gradient(from 0deg,#f5a524,#22d3ee,#a78bfa,#34d399,#f472b6,#f5a524)}.truss-swatch.is-picker input{width:100%;height:100%;padding:0;border:0;opacity:0;cursor:pointer}.truss-table-id{display:inline-flex;align-items:center;gap:6px}.truss-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--color-text-tertiary)}.truss-dot.is-tension{background:var(--truss-tension, var(--el-fire))}.truss-dot.is-compression{background:var(--truss-compression, var(--el-water))}.truss-dot.is-zero{background:var(--color-text-tertiary)}.truss-kpis{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.truss-kpi{background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.truss-kpi dt{font-size:var(--text-xs);color:var(--color-text-tertiary)}.truss-kpi dd{font-family:var(--font-mono);font-size:var(--text-lg);font-variant-numeric:tabular-nums;color:var(--color-text-primary);margin:2px 0;line-height:1.2}.truss-kpi.is-tension dd{color:var(--truss-tension, var(--el-fire))}.truss-kpi.is-compression dd{color:var(--truss-compression, var(--el-water))}.truss-kpi.is-danger dd{color:var(--color-danger-600)}.truss-kpi-note{font-size:var(--text-xs);color:var(--color-text-tertiary)}.truss-reactions{list-style:none;display:flex;flex-direction:column;gap:6px}.truss-reactions li{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-secondary)}.truss-reaction-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.truss-reaction-value em{font-style:normal;color:var(--color-text-tertiary);margin-left:3px}.truss-table-wrap{max-height:320px;overflow:auto;margin:0 calc(var(--space-1) * -1)}.truss-table{width:100%;border-collapse:collapse;font-size:var(--text-xs);font-variant-numeric:tabular-nums}.truss-table th{position:sticky;top:0;background:var(--color-bg-subtle);text-align:right;font-weight:500;color:var(--color-text-tertiary);padding:4px 6px;border-bottom:1px solid var(--color-border);white-space:nowrap}.truss-table th:first-child,.truss-table td:first-child{text-align:left}.truss-table td{text-align:right;padding:4px 6px;color:var(--color-text-secondary);font-family:var(--font-mono);border-bottom:1px solid var(--color-border);white-space:nowrap}.truss-table tbody tr{cursor:pointer;transition:background var(--duration-fast)}.truss-table tbody tr:hover,.truss-table tbody tr.is-active{background:var(--color-bg-active)}.truss-table tbody tr.is-over td:last-child{color:var(--color-danger-700)}.truss-table td.is-tension{color:var(--truss-tension, var(--el-fire))}.truss-table td.is-compression{color:var(--truss-compression, var(--el-water))}.truss-table td.is-zero{color:var(--color-text-tertiary)}.truss-formula{font-family:var(--font-serif);font-size:var(--text-lg);line-height:2.4;color:var(--color-text-primary);margin:var(--space-3) 0;padding:var(--space-2) var(--space-4);background:var(--color-bg-surface);border-radius:var(--radius-md);overflow-x:auto;overflow-y:hidden;white-space:nowrap}.truss-var{font-style:italic}.truss-frac{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;margin:0 .18em;transform:translateY(-.12em)}.truss-frac-num{padding:0 .32em .1em;border-bottom:1px solid currentColor}.truss-frac-den{padding:.1em .32em 0}.truss-sqrt{display:inline-flex;align-items:center;margin:0 .08em}.truss-sqrt:before{content:"√";font-size:1.2em;line-height:1;margin-right:-.06em}.truss-sqrt-rad{border-top:1px solid currentColor;padding:.16em .28em 0;margin-top:-.1em}.truss-doc{max-width:880px}.truss-back{display:inline-flex;align-items:center;gap:6px;margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--color-text-tertiary);text-decoration:none}.truss-back:hover{color:var(--color-text-primary)}.truss-keys{margin-top:var(--space-3);font-size:var(--text-xs);line-height:2;color:var(--color-text-tertiary)}.truss-keys kbd{display:inline-block;min-width:15px;padding:0 4px;margin:0 1px;background:var(--color-bg-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:10px;line-height:1.5;text-align:center;color:var(--color-text-secondary)}.truss-head-link{display:inline-block;margin-top:0;padding:3px 10px;border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-brand-500);text-decoration:none}.truss-head-link:hover{text-decoration:underline;text-underline-offset:3px}.truss-doc-tools{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.truss-search{display:flex;align-items:center;gap:var(--space-2);padding:9px var(--space-3);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-tertiary);transition:border-color var(--duration-fast) var(--ease-soft)}.truss-search:focus-within{border-color:var(--color-brand-500)}.truss-search input{flex:1;min-width:0;background:transparent;border:0;outline:none;color:var(--color-text-primary);font-family:inherit;font-size:var(--text-sm)}.truss-search input::placeholder{color:var(--color-text-tertiary)}.truss-chips{display:flex;flex-wrap:wrap;gap:6px}.truss-chips button{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);font-family:inherit;font-size:var(--text-xs);padding:4px 12px;cursor:pointer;transition:border-color var(--duration-fast),color var(--duration-fast),background var(--duration-fast)}.truss-chips button:hover{border-color:var(--color-border-hover);color:var(--color-text-primary)}.truss-chips button.is-active{background:var(--color-brand-100);border-color:var(--color-brand-500);color:var(--color-text-primary)}.truss-doc-count{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);margin-bottom:var(--space-3)}.truss-doc-empty{padding:var(--space-8) 0;font-size:var(--text-sm);color:var(--color-text-tertiary);line-height:1.8}.truss-doc-list{display:flex;flex-direction:column;gap:var(--space-3)}.truss-doc-card{padding:var(--space-4);background:var(--color-bg-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:border-color var(--duration-base) var(--ease-soft)}.truss-doc-card.is-open{border-color:var(--color-border-strong)}.truss-doc-head{display:block;width:100%;padding:0;background:transparent;border:0;text-align:left;color:inherit;font-family:inherit;cursor:pointer}.truss-doc-row{display:flex;align-items:center;gap:var(--space-2)}.truss-doc-tag{flex:none;font-size:11px;color:var(--color-accent-700);border:1px solid var(--color-accent-700);border-radius:var(--radius-full);padding:0 7px;line-height:1.6}.truss-doc-name{font-family:var(--font-serif);font-size:var(--text-md);font-weight:500;color:var(--color-text-primary)}.truss-doc-caret{margin-left:auto;flex:none;color:var(--color-text-tertiary);transition:transform var(--duration-base) var(--ease-soft)}.truss-doc-card.is-open .truss-doc-caret{transform:rotate(180deg)}.truss-doc-summary{display:block;margin-top:4px;font-size:var(--text-sm);line-height:1.7;color:var(--color-text-secondary)}.truss-doc-body{margin-top:var(--space-2)}.truss-doc-symbols{display:grid;grid-template-columns:auto 1fr;gap:5px var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3);background:var(--color-bg-surface);border-radius:var(--radius-md);font-size:var(--text-xs)}.truss-doc-symbol{display:contents}.truss-doc-symbol dt{font-family:var(--font-mono);color:var(--color-accent-700);white-space:nowrap}.truss-doc-symbol dd{color:var(--color-text-secondary);line-height:1.6}.truss-doc-symbol dd em{font-style:normal;color:var(--color-text-tertiary)}.truss-doc-line{margin-bottom:var(--space-2);font-size:var(--text-sm);line-height:1.85;color:var(--color-text-secondary)}.truss-doc-line strong{display:inline-block;margin-right:var(--space-2);font-size:var(--text-xs);font-weight:500;letter-spacing:.04em;color:var(--color-text-primary)}.truss-doc-line.is-warn strong{color:var(--color-warning-600)}.truss-doc-link{display:inline-block;margin-top:var(--space-1);font-size:var(--text-sm);color:var(--color-brand-500);text-decoration:none}.truss-doc-link:hover{text-decoration:underline;text-underline-offset:3px}.truss-disclaimer{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--color-border);font-size:var(--text-xs);line-height:1.8;color:var(--color-text-tertiary)}.truss-disclaimer strong{color:var(--color-text-secondary);font-weight:500}@media(max-width:1023px){.truss-workspace{grid-template-columns:1fr}.truss-palette{position:static;flex-direction:row;align-items:center;gap:var(--space-2);overflow-x:auto;padding:var(--space-2);-webkit-overflow-scrolling:touch}.truss-palette-group{flex-direction:row;gap:2px}.truss-palette-divider{width:1px;height:26px;margin:0 2px;flex:none}.truss-palette-hint{display:none}.truss-tool{width:auto;min-width:56px;flex:none;padding:6px 8px}.truss-toolbar-hint{margin-left:0;flex-basis:100%}.truss-table-wrap{max-height:260px}}@media(max-width:640px){.truss-title{font-size:var(--text-3xl)}.truss-canvas{height:clamp(300px,46vh,420px)}.truss-kpis{grid-template-columns:1fr 1fr}.truss-legend{font-size:11px;gap:var(--space-2)}}@media(prefers-reduced-motion:reduce){.truss-bar,.truss-btn,.truss-select-box,.truss-table tbody tr{transition:none!important}}[data-px="1"] .world-strip{border-radius:16px}[data-px="2"] .portal-card{border-radius:12px;border-color:var(--color-border-strong)}[data-px="2"] .portal-icon{border-radius:8px}[data-px="3"] .tool-strip{border-radius:6px;border-width:2px;border-color:var(--color-border-strong)}[data-px="3"] .tool-strip-name{font-family:var(--font-mono);letter-spacing:.04em}[data-px="4"] .article-card,[data-px="4"] .home-featured .featured-card{border-radius:4px;border-width:2px;border-color:var(--color-border-strong)}[data-px="4"] .home-sidebar>*{border-radius:4px}[data-px="4"] .section-title{font-family:var(--font-mono);letter-spacing:.02em}[data-px="4"] .section-head{border-bottom:2px solid var(--color-border);padding-bottom:var(--space-3)}[data-px="4"] .empty-state-icon{--px-1: #7C7499;--px-2: #ABA5C6;--px-3: #453E63}@media(max-width:720px){[data-px="4"] .article-card,[data-px="4"] .article-card-cover{border-radius:4px}}.hb{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none;background:radial-gradient(90% 60% at 50% 0%,rgba(74,40,140,.16),transparent 70%),radial-gradient(70% 50% at 80% 22%,rgba(227,183,120,.05),transparent 70%)}.home-page{position:relative}.home-page>:not(.hb){position:relative;z-index:1}.hb-sky{position:absolute;inset:-20%;background-repeat:repeat;will-change:background-position}.hb-sky-a{background-image:radial-gradient(1px 1px at 24px 38px,rgba(255,255,255,.72),transparent 100%),radial-gradient(1px 1px at 132px 96px,rgba(255,255,255,.46),transparent 100%),radial-gradient(1px 1px at 78px 164px,rgba(214,204,255,.56),transparent 100%),radial-gradient(1px 1px at 196px 24px,rgba(255,255,255,.36),transparent 100%),radial-gradient(1px 1px at 158px 208px,rgba(227,183,120,.48),transparent 100%);background-size:240px 240px;animation:hb-drift-a 190s linear infinite}.hb-sky-b{background-image:radial-gradient(1.5px 1.5px at 62px 118px,rgba(255,255,255,.34),transparent 100%),radial-gradient(1.5px 1.5px at 246px 52px,rgba(198,182,255,.28),transparent 100%),radial-gradient(1px 1px at 308px 196px,rgba(255,255,255,.22),transparent 100%),radial-gradient(1.5px 1.5px at 148px 292px,rgba(227,183,120,.22),transparent 100%);background-size:380px 380px;animation:hb-drift-b 320s linear infinite;opacity:.85}@keyframes hb-drift-a{0%{background-position:0 0}to{background-position:240px 240px}}@keyframes hb-drift-b{0%{background-position:0 0}to{background-position:-380px 380px}}.hb-aurora{position:absolute;border-radius:50%;will-change:transform,opacity}.hb-a1{top:-18%;left:8%;width:760px;height:760px;background:radial-gradient(circle at 50% 50%,rgba(122,77,255,.17),transparent 66%);animation:hb-float-1 54s ease-in-out infinite alternate}.hb-a2{top:26%;right:-14%;width:640px;height:640px;background:radial-gradient(circle at 50% 50%,rgba(227,183,120,.11),transparent 66%);animation:hb-float-2 72s ease-in-out infinite alternate}@keyframes hb-float-1{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(90px,70px,0) scale(1.14)}}@keyframes hb-float-2{0%{transform:translateZ(0) scale(1.1)}to{transform:translate3d(-110px,-60px,0) scale(1)}}.hb-px{position:absolute;inset:0}.hb-px i{position:absolute;display:block;background:#e8e4ff;animation:hb-twinkle 5.2s steps(2,end) infinite;will-change:opacity,transform}@keyframes hb-twinkle{0%,to{opacity:.12;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}.hb-px i:nth-child(n+16){background:#e3b778}.hb-meteor{position:absolute;height:1px;width:148px;background:linear-gradient(270deg,#fff0,#ffffffd9);opacity:0;transform-origin:right center;will-change:transform,opacity}.hb-m1{top:6%;left:26%;animation:hb-meteor 17s linear infinite}.hb-m2{top:30%;left:84%;width:110px;animation:hb-meteor 23s linear 7s infinite;animation-name:hb-meteor-2}@keyframes hb-meteor{0%,88%{opacity:0;transform:rotate(-26deg) translateZ(0)}89%{opacity:1}93%{opacity:.9}to{opacity:0;transform:rotate(-26deg) translate3d(-430px,210px,0)}}@keyframes hb-meteor-2{0%,90%{opacity:0;transform:rotate(-34deg) translateZ(0)}91%{opacity:1}96%{opacity:.75}to{opacity:0;transform:rotate(-34deg) translate3d(-320px,220px,0)}}.hero-orbit{position:absolute;z-index:-1;border-radius:50%;pointer-events:none;will-change:transform}.hero-orbit:before{content:"";position:absolute;left:50%;top:0;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:#e3b778;box-shadow:0 0 10px 2px #e3b77899}.hero-orbit-a{top:-140px;left:50%;width:520px;height:520px;margin-left:-260px;animation:hb-orbit 96s linear infinite}.hero-orbit-b{top:-240px;left:50%;width:720px;height:720px;margin-left:-360px;animation:hb-orbit-rev 150s linear infinite}.hero-orbit-b:before{width:4px;height:4px;margin-left:-2px;background:#c6b6ff;box-shadow:0 0 9px 2px #c6b6ff80}@keyframes hb-orbit{0%{transform:rotate(96deg)}to{transform:rotate(456deg)}}@keyframes hb-orbit-rev{0%{transform:rotate(-108deg)}to{transform:rotate(-468deg)}}.hero-beam{position:absolute;top:-140px;left:50%;width:520px;height:520px;margin-left:-260px;z-index:-1;pointer-events:none;overflow:visible;will-change:transform}.hero-beam-a{animation:hb-beam 9s linear infinite}.hero-beam-b{animation:hb-beam-rev 15s linear infinite}@keyframes hb-beam{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes hb-beam-rev{0%{transform:rotate(0)}to{transform:rotate(-360deg)}}@media(prefers-reduced-motion:reduce){.hb-sky,.hb-aurora,.hb-px i,.hb-meteor,.hero-orbit,.hero-beam{animation:none!important}.hb-px i{opacity:.25!important}.hb-meteor{display:none}.hero-beam{opacity:.4}}@media(max-width:720px){.hb-a1{width:460px;height:460px}.hb-a2{width:400px;height:400px}}.room-page{--px-void: #08060c;--px-bg: #12101c;--px-bg-2: #1a1526;--px-bg-3: #241c33;--px-line: #3a2c4a;--px-line-hi: #5a4670;--px-ink: #f2e7d2;--px-dim: #b9a98c;--px-faint: #7c6e58;--px-gold: #e3b778;--px-gold-dim: #8a6a3e;--px-ember: #f2915f;--px-green: #7be3b4;--px-wood: #3b2a22;--px-wood-hi: #4e382c;--px-wood-lo: #241812}.room-page .room-board-wrap{position:relative;overflow:hidden;padding:16px 14px 26px;border:3px solid var(--px-line);border-radius:0;background-color:#141019;background-image:repeating-linear-gradient(to right,transparent 0 148px,#1c1526 148px 150px);box-shadow:6px 6px 0 var(--px-void)}.room-page .tavern-scene{display:block;width:100%;pointer-events:none;z-index:0}.room-page .tavern-wall{margin:-16px -14px 12px;width:calc(100% + 28px);aspect-ratio:240 / 44;height:auto}.room-page .room-board-wrap>:not(.tavern-scene){position:relative;z-index:1}@keyframes tavern-lamp{0%,to{opacity:1}50%{opacity:.78}}.room-page .tv-lamp{animation:tavern-lamp 3.6s steps(2,end) infinite}.room-page .px-table{position:relative;width:100%;max-width:820px;margin:6px auto 0}.room-page .px-table-surface{position:relative;padding:16px 16px 14px;border:3px solid var(--px-wood-hi);border-radius:0;background-color:#402d21;background-image:repeating-linear-gradient(to bottom,transparent 0 26px,#33231a 26px 28px);box-shadow:inset 0 3px #6a4b38,inset 0 0 0 999px #e3b7780d}.room-page .px-rune{position:absolute;inset:8px;border:2px dashed rgba(227,183,120,.28);pointer-events:none;animation:px-rune 3.4s steps(2,end) infinite}@keyframes px-rune{0%,to{opacity:.55}50%{opacity:1}}.room-page .px-table-edge{height:16px;margin-top:-3px;border:3px solid var(--px-wood-hi);border-top:0;background:var(--px-wood-lo);box-shadow:inset 0 3px #3b2a22}.room-page .px-table-legs{display:flex;justify-content:space-between;padding:0 42px}.room-page .px-table-legs i{position:relative;display:block;width:28px;height:48px;background:#33241d;border:3px solid var(--px-wood-hi);border-top:0;border-left-color:#4e382c}.room-page .px-table-legs i:after{content:"";position:absolute;left:-3px;right:-3px;bottom:-6px;height:6px;background:var(--px-wood-lo);border:3px solid var(--px-wood-hi);border-top:0}.room-page .px-table:after{content:"";position:absolute;left:8%;right:8%;bottom:-14px;height:8px;background:#0a0810;opacity:.75}.room-page .ddz-card,.room-page .tcard{border-radius:0;border:2px solid #2a1b16;background-color:#f2e7d2;background-image:none;box-shadow:3px 3px #120e18;color:#1a1526;font-family:var(--font-mono)}.room-page .ddz-card.is-red,.room-page .tcard.is-red{color:#b03a2e}.room-page .ddz-card:not(:disabled):hover{border-color:var(--px-gold)}.room-page .ddz-card.is-selected{border:2px solid var(--px-gold);background-color:#fff3d6;box-shadow:3px 3px 0 var(--px-gold-dim)}.room-page .turtle-back{border-radius:0;border:2px solid var(--px-gold-dim);box-shadow:2px 2px #120e18}@keyframes px-float{0%,to{transform:translateY(var(--lift, 0px))}50%{transform:translateY(calc(var(--lift, 0px) - 3px))}}.room-page .ddz-hand-inner .ddz-card{--lift: 0px;animation:px-float 2.8s steps(3,end) infinite;animation-delay:calc(var(--i, 0) * -.21s)}.room-page .ddz-hand-inner .ddz-card.is-selected{--lift: -14px}.room-page .ddz-hand-inner .ddz-card:hover,.room-page .ddz-hand-inner .ddz-card:focus-visible{animation-play-state:paused}.room-page .ddz.is-dealt .ddz-hand-inner .ddz-card{animation:ddz-card-in .32s var(--ease-out) both}.room-page .turtle-card-slot .tcard{--lift: 0px;animation:px-float 3.1s steps(3,end) infinite;animation-delay:calc(var(--i, 0) * -.24s)}.room-page .turtle-card-slot .tcard:hover{animation-play-state:paused}.room-page .tavern-door{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px 16px 8px;text-align:center}.room-page .tavern-door-frame{position:relative;display:inline-block}.room-page .tavern-door-art{display:block;width:124px;height:166px;image-rendering:pixelated}@keyframes door-glow{0%,to{opacity:.55}50%{opacity:1}}.room-page .door-light{animation:door-glow 3.2s steps(2,end) infinite}.room-page .tavern-door-plate{position:absolute;top:34%;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 10px;border:2px solid var(--px-gold-dim);background:var(--px-wood-lo);box-shadow:3px 3px 0 var(--px-void)}.room-page .tavern-door-plate-label{font-size:9px;letter-spacing:.18em;color:var(--px-faint)}.room-page .tavern-door-plate strong{font-family:var(--font-mono);font-size:15px;letter-spacing:.16em;color:var(--px-gold)}.room-page .tavern-door-hint{max-width:34ch;margin:0;font-size:var(--text-sm);line-height:1.75;color:var(--px-dim)}.room-page .tavern-door-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.room-page .room-side .card,.room-page .room-seats,.room-page .room-status,.room-page .room-chat{border-radius:0;border:2px solid var(--px-line);background:var(--px-bg-2);background-image:none;box-shadow:4px 4px 0 var(--px-void)}.room-page .room-top{border-radius:0}.room-page .room-code{font-family:var(--font-mono);color:var(--px-gold)}.room-page .room-live{border-radius:0;border-width:2px}.room-page .room-live.is-sse{border-color:#3d7a5e;background:#16302a;color:var(--px-green)}.room-page .room-live.is-poll{border-color:var(--px-gold-dim);background:#2a2118;color:var(--px-gold)}.room-page .seat,.room-page .seat-dot,.room-page .seat-tag,.room-page .seat-pick{border-radius:0}.room-page .room-result{border-radius:0;border:3px solid var(--px-gold-dim);background:var(--px-bg-2);box-shadow:6px 6px 0 var(--px-void)}.room-page .chat-msg{border-radius:0;border:2px solid var(--px-line);background:var(--px-bg-3)}.room-page .chat-msg.is-me{border-color:var(--px-gold-dim);background:#2a2118}.room-page .room-chat-input{border-radius:0;border:2px solid var(--px-line);background:var(--px-bg);color:var(--px-ink)}.room-page .room-chat-send{border-radius:0;border:2px solid var(--px-gold-dim);background:#2a2118;color:var(--px-gold);box-shadow:3px 3px 0 var(--px-void)}.room-page .btn{border-radius:0;box-shadow:3px 3px 0 var(--px-void)}.room-page .room-back,.room-page .room-copy{border-radius:0}.room-page .room-waiting-seats li{border-radius:0;border:2px solid var(--px-line);background:var(--px-bg)}.room-page .room-waiting-seats li.is-empty{border-style:dashed;color:var(--px-faint)}@media(max-width:760px){.room-page .room-board-wrap{padding:10px 8px 18px}.room-page .px-table-surface{padding:14px 10px 12px}.room-page .px-table-legs{padding:0 24px}.room-page .px-table-legs i{width:14px;height:38px}.room-page .tavern-door-art{width:96px;height:128px}}@media(prefers-reduced-motion:reduce){.room-page .tv-lamp,.room-page .px-rune,.room-page .door-light,.room-page .ddz-hand-inner .ddz-card,.room-page .turtle-card-slot .tcard{animation:none}.room-page .ddz-hand-inner .ddz-card.is-selected{transform:translateY(-14px)}}.room-page .ddz,.room-page .turtle{width:100%;padding:0;border:0;border-radius:0;background:none;background-image:none;box-shadow:none}.room-page .px-table .gb-wrap{background:#0a081475}.room-page .ddz-table-area{border:0;background:none;border-radius:0;min-height:64px}.room-page .ddz-mine,.room-page .turtle-mine{position:relative;z-index:2;margin-top:-30px;padding-inline:14px;border-top:0}.room-page .ddz-mine-head{padding-inline:4px}.room-page .ddz-opp,.room-page .turtle-opp{border-radius:0;border:2px solid var(--px-line);background:#221a2e}.room-page .ddz-opp.is-turn,.room-page .turtle-opp.is-turn{border-color:var(--px-gold-dim);background:#2a2118}.room-page .btn,.room-page .btn-primary,.room-page .btn-secondary,.room-page .btn-sm{border-radius:0;box-shadow:3px 3px 0 var(--px-void)}.room-page .btn:active{transform:translate(3px,3px);box-shadow:none}.room-page .px-table .gb-wrap{border:0;border-radius:0}.room-page .turtle-back{background-color:#2b2350;background-image:repeating-linear-gradient(to right,transparent 0 4px,#392f63 4px 6px),repeating-linear-gradient(to bottom,transparent 0 4px,#241d45 4px 6px)}.room-page .turtle-back:before{border-radius:0;border:2px solid var(--px-gold-dim);background:#3c3168}.room-page .turtle-middle{padding:8px 0 4px;background:none;border:0}.room-page .turtle-opps{align-items:start}.room-page .turtle-mine-head,.room-page .ddz-mine-head{max-width:680px;margin-inline:auto}.room-page .ddz-mine,.room-page .turtle-mine{width:100%;max-width:820px;margin-inline:auto}.room-page .turtle-hand{justify-content:center;flex-wrap:wrap}.room-page .room-waiting{width:100%;max-width:820px;border:2px dashed var(--px-line);border-radius:0;background:none}.room-page .tavern-door-art{width:148px;height:198px}.room-page .tavern-door-plate{top:20%;padding:3px 8px}.room-page .tavern-door-plate strong{font-size:13px;letter-spacing:.12em}.room-page .tavern-door-plate-label{font-size:8px}.room-page .px-table{width:100%;max-width:none;margin:6px 0 0}.room-page .px-table-surface{position:relative;isolation:isolate;min-height:420px;padding:11% 14% 42px;border:0;border-radius:0;background:none;box-shadow:none}.room-page .px-table-canvas{position:absolute;left:0;top:0;display:block;max-width:none;z-index:-2;pointer-events:none;image-rendering:pixelated;image-rendering:crisp-edges}.room-page .px-table-edge,.room-page .px-table-legs,.room-page .px-rune{display:none}.room-page .px-dealers{position:absolute;inset:0;z-index:-1;pointer-events:none;--dtop: 320px;--dk: 1}.room-page .px-dealer{position:absolute;top:calc(var(--dtop) - 152px + var(--dy, 0px));width:192px;height:152px;margin-left:-96px;transform:scale(calc(var(--ds, 1) * var(--dk, 1)));transform-origin:50% 100%;filter:drop-shadow(6px 6px 0 rgba(6,4,8,.45)) drop-shadow(0 0 4px rgba(255,224,160,.3))}.room-page .px-dealer:before{content:"";position:absolute;left:50%;top:14%;width:155%;height:104%;margin-left:-77.5%;z-index:-1;background:radial-gradient(50% 50% at 50% 50%,rgba(255,224,160,.2),transparent 72%)}.room-page .px-dealer-in,.room-page .px-dealer-body{position:absolute;inset:0}.room-page .px-dealer svg{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}.room-page .px-dealer-in{animation:px-dealer-float 8.4s steps(12,end) infinite}.room-page .px-dealer-body{animation:px-dealer-breathe 5.4s steps(9,end) infinite}.room-page .px-dealer-body svg{animation:px-dealer-sway 7.8s steps(7,end) infinite alternate;transform-origin:50% 100%}.room-page .px-dealer .eye{transform-box:fill-box;transform-origin:50% 50%;animation:px-eye-blink var(--blink, 6s) steps(1,end) infinite;filter:drop-shadow(0 0 3px rgba(240,182,99,.55))}@keyframes px-dealer-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes px-dealer-breathe{0%,to{transform:translateY(0) scaleY(1);opacity:.88}50%{transform:translateY(-2px) scaleY(1.03);opacity:1}}@keyframes px-dealer-sway{0%{transform:rotate(-1.2deg)}to{transform:rotate(1.2deg)}}@keyframes px-eye-blink{0%,91%,to{transform:scaleY(1);opacity:.92}94%,97%{transform:scaleY(.12);opacity:.6}}@media(prefers-reduced-motion:reduce){.room-page .px-dealer-in,.room-page .px-dealer-body,.room-page .px-dealer-body svg,.room-page .px-dealer .eye{animation:none}}@media(max-width:900px){.room-page .px-table-surface{min-height:360px;padding:11% 8% 32px}}.tarot-page .tarot-room{position:relative;overflow:hidden;margin-top:var(--space-2);border:1px solid rgba(227,183,120,.18);border-radius:4px;background:#0d0916;box-shadow:0 40px 100px #0000008c,0 0 0 1px #0a0612e6,inset 0 0 90px #06030ce6;max-height:2600px;transition:opacity .46s var(--ease-out),max-height .56s var(--ease-out),margin .46s var(--ease-out)}.tarot-page .tarot-room.is-result{max-height:0;opacity:0;margin-top:0;pointer-events:none}.tarot-page .tarot-scene{display:block;width:100%;pointer-events:none;z-index:0}.tarot-page .tarot-wall{aspect-ratio:320 / 56;height:auto}@keyframes tr-candle-flick{0%,to{opacity:1}50%{opacity:.82}}.tarot-page .tr-candle{animation:tr-candle-flick 2.8s steps(2,end) infinite}.tarot-page .tarot-room-floor{position:relative;z-index:1;background-color:#120d1c;background-image:repeating-linear-gradient(to right,transparent 0 116px,#1b1327 116px 118px),linear-gradient(to bottom,#06030cd9,#06030c00 22%)}.tarot-page .tarot-table{position:relative;width:100%}.tarot-page .tarot-table-surface{position:relative;overflow:hidden}.tarot-page .tarot-table-cloth,.tarot-page .tarot-table-glyph{position:absolute;top:0;left:0;pointer-events:none;image-rendering:pixelated}.tarot-page .tarot-table-glyph{transition:opacity .32s var(--ease-out);z-index:1}.tarot-page .tarot-table.is-swapping .tarot-table-glyph{opacity:.14}.tarot-page .tarot-table-pool{position:absolute;left:50%;top:30%;width:min(760px,92%);height:70%;transform:translate(-50%,-50%);z-index:1;pointer-events:none;background:radial-gradient(50% 50% at 50% 50%,rgba(240,182,99,.085),rgba(122,77,255,.045) 46%,transparent 72%);opacity:.7;transition:opacity .62s var(--ease-out),transform .62s var(--ease-out)}.tarot-page .tarot-table[data-phase=shuffle] .tarot-table-pool{opacity:1;transform:translate(-50%,-50%) scale(.9);animation:poolBreath 2.2s ease-in-out infinite}@keyframes poolBreath{0%,to{filter:brightness(1)}50%{filter:brightness(1.35)}}.tarot-page .tarot-table[data-phase=draw] .tarot-table-pool{opacity:1;transform:translate(-50%,-50%) scale(1.04)}.tarot-page .tarot-table-content{position:relative;z-index:2;padding:clamp(64px,5.4vw,88px) clamp(20px,3vw,40px) clamp(30px,4vw,52px);transition:min-height .46s var(--ease-out)}.tarot-page .tarot-table[data-phase=setup] .tarot-table-content{min-height:700px}.tarot-page .tarot-table[data-phase=shuffle] .tarot-table-content{min-height:520px}.tarot-page .tarot-table[data-phase=draw] .tarot-table-content{min-height:540px}.tarot-page .tarot-table[data-phase=result] .tarot-table-content{min-height:0}.tarot-page .tarot-setup-inner,.tarot-page .tarot-draw,.tarot-page .tarot-shuffle{position:relative;max-width:820px;margin-inline:auto}.tarot-page .tarot-setup-inner .tarot-label:first-of-type{margin-top:var(--space-6)}.tarot-page .tarot-question{background:#0a06129e;backdrop-filter:blur(6px);border-color:#e3b77833}.tarot-page .tarot-question:focus{border-color:#e3b7788c;box-shadow:0 0 0 3px #e3b7781f}.tarot-page .tarot-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-3)}.tarot-page .tarot-chip{padding:4px 12px;border:1px solid rgba(227,183,120,.24);border-radius:var(--radius-full);background:#0a061280;font-size:var(--text-xs);letter-spacing:.06em;color:var(--color-text-tertiary);transition:color .24s var(--ease-out),border-color .24s var(--ease-out),background .24s var(--ease-out)}.tarot-page .tarot-chip:hover{color:var(--color-accent-500);border-color:#e3b77880;background:#e3b77812}.tarot-page .tarot-chip:focus-visible{outline:2px solid var(--color-brand-500);outline-offset:2px}.tarot-page .tarot-chip.is-on{color:var(--color-accent-500);border-color:#e3b77899;background:#e3b77824}.tarot-page .spread-card{background:#0c0816a8;backdrop-filter:blur(7px);border-color:#e3b77829}.tarot-page .spread-card:hover{border-color:#e3b7786b}.tarot-page .spread-card-active{border-color:#e3b77899;background:radial-gradient(80% 80% at 50% 0%,rgba(227,183,120,.14),transparent 70%),#100a1cd1;box-shadow:0 0 0 1px #e3b77847,0 18px 40px #0006}.tarot-page .spread-card-active .spread-icon,.tarot-page .spread-card-active .spread-sub{color:var(--color-accent-500)}.tarot-page .tarot-shuffle{min-height:440px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-8)}.tarot-page .shuffle-deck{position:relative;width:148px;height:230px;perspective:900px}.tarot-page .shuffle-card{position:absolute;inset:0;border-radius:12px;border:1px solid rgba(227,183,120,.34);background:radial-gradient(60% 44% at 50% 32%,rgba(122,77,255,.4),transparent 70%),linear-gradient(160deg,#241a44,#14102a 62%,#1c1436);box-shadow:inset 0 0 20px #7a4dff38,0 10px 24px #00000073;animation:shuffleMix 1.9s cubic-bezier(.42,.08,.3,1) infinite;animation-delay:calc(var(--i) * 42ms);transform:rotate(var(--rot, 0deg))}.tarot-page .shuffle-card:after{content:"✦";position:absolute;inset:0;display:grid;place-items:center;font-size:18px;color:#e3b7788c}@keyframes shuffleMix{0%{transform:translateZ(0) rotate(var(--rot, 0deg))}16%{transform:translate3d(-56px,-8px,0) rotate(-9deg)}36%{transform:translate3d(50px,2px,0) rotate(8deg)}56%{transform:translate3d(-34px,-14px,0) rotate(-5deg)}74%{transform:translate3d(8px,-22px,0) rotate(1deg)}to{transform:translateZ(0) rotate(var(--rot, 0deg))}}.tarot-page .shuffle-deck:before{content:"";position:absolute;inset:-54px;border-radius:50%;background:radial-gradient(circle,rgba(227,183,120,.22),transparent 68%);animation:shuffleAura 2.4s ease-in-out infinite alternate;pointer-events:none}.tarot-page .shuffle-text{font-size:var(--text-sm);color:var(--color-text-secondary);letter-spacing:.1em;text-align:center;line-height:2}.tarot-page .shuffle-sub{display:inline-block;margin-top:2px;font-size:var(--text-xs);letter-spacing:.16em;color:var(--color-text-tertiary)}.tarot-page .shuffle-trails{position:absolute;inset:0;pointer-events:none;overflow:hidden}.tarot-page .shuffle-trail{position:absolute;left:50%;top:50%;width:180px;height:2px;margin-left:-90px;background:linear-gradient(90deg,transparent,rgba(227,183,120,.35),transparent);opacity:0;animation:trailSweep 1.9s ease-in-out infinite;animation-delay:calc(var(--i) * .16s)}@keyframes trailSweep{0%,to{opacity:0;transform:translateY(calc(var(--i) * 14px)) scaleX(.5)}40%{opacity:.9;transform:translateY(calc(var(--i) * 14px)) scaleX(1)}70%{opacity:.2;transform:translateY(calc(var(--i) * 14px)) scaleX(1.2)}}.tarot-page .tarot-board{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:clamp(14px,2.4vw,34px);margin-top:clamp(28px,4vw,52px)}.tarot-page .tarot-table[data-phase=draw] .tarot-table-content,.tarot-page .tarot-table[data-phase=shuffle] .tarot-table-content{display:flex;align-items:center}.tarot-page .tarot-table[data-phase=draw] .tarot-draw{width:100%}.tarot-page .tarot-slot{position:relative;display:flex;justify-content:center;padding-bottom:6px;perspective:1000px;flex:1 1 0;min-width:0;max-width:142px}.tarot-page .tarot-board-5 .tarot-slot{max-width:110px}.tarot-page .tarot-slot:before{content:"";position:absolute;left:50%;bottom:-12px;width:126%;height:30px;transform:translate(-50%);border-radius:50%;border:1px solid rgba(227,183,120,.16);background:radial-gradient(50% 50% at 50% 50%,rgba(240,182,99,.12),transparent 72%);opacity:.75;transition:opacity .52s var(--ease-out),border-color .52s var(--ease-out),background .52s var(--ease-out),box-shadow .52s var(--ease-out);pointer-events:none}.tarot-page .tarot-slot.is-lit:before{opacity:1;border-color:#f0b66370;background:radial-gradient(50% 50% at 50% 50%,rgba(240,182,99,.38),transparent 72%);box-shadow:0 0 22px #f0b6632e}.tarot-page .tarot-slot.is-lit:after{content:"";position:absolute;left:50%;bottom:-4px;width:150%;height:34px;border-radius:50%;border:1px solid rgba(240,182,99,.7);transform:translate(-50%) scale(.42);opacity:.9;animation:slotRing .9s cubic-bezier(.2,.7,.3,1) forwards;pointer-events:none}@keyframes slotRing{0%{opacity:.9;transform:translate(-50%) scale(.42)}to{opacity:0;transform:translate(-50%) scale(1.5)}}.tarot-page .tarot-card{width:100%;animation:cardDealFromDeck .72s cubic-bezier(.18,.72,.26,1) backwards;animation-delay:calc(var(--i, 0) * .14s + 60ms)}@keyframes cardDealFromDeck{0%{opacity:0;transform:translate3d(0,84px,0) scale(.84) rotateX(6deg) rotate(-4deg)}55%{opacity:1}78%{transform:translate3d(0,-8px,0) scale(1.015) rotateX(6deg) rotate(.6deg)}to{opacity:1;transform:rotateX(6deg)}}.tarot-page .tarot-card{transform:rotateX(6deg);transform-origin:50% 100%}.tarot-page .tarot-card.is-flipped{transform:translateY(-7px) rotateX(6deg)}.tarot-page .tarot-card-inner{transition:transform 1.06s cubic-bezier(.32,.82,.22,1)}.tarot-page .tarot-card:hover:not(.is-flipped) .tarot-card-inner{transform:translateY(-6px) rotateX(6deg)}.tarot-page .tarot-card-back-pos{letter-spacing:.2em}.tarot-page .tarot-tip{letter-spacing:.08em}.tarot-page .tarot-board-5{gap:clamp(10px,1.6vw,26px)}.tarot-page .tarot-result{animation:tarotResultIn .62s var(--ease-out) both}@keyframes tarotResultIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.tarot-page .tarot-recap{position:relative;margin-top:var(--space-6);padding:clamp(20px,2.6vw,30px) clamp(14px,2vw,26px);border:1px solid rgba(227,183,120,.22);border-radius:16px;background:radial-gradient(74% 96% at 50% 0%,rgba(122,77,255,.18),transparent 70%),linear-gradient(180deg,#241a3a,#180f28 66%,#130b1e);box-shadow:inset 0 2px #e3b7781a,inset 0 -30px 60px #00000073,0 26px 60px #00000073;overflow:hidden}.tarot-page .tarot-recap:after{content:"";position:absolute;inset:7px;border-radius:11px;border:1px solid rgba(227,183,120,.14);pointer-events:none}.tarot-page .tarot-recap .timeline-track{position:relative;z-index:1}.tarot-page .tarot-recap .timeline-node{background:#0905108c;border-color:#e3b77833}.tarot-page .tarot-recap .timeline-pos{display:inline-flex;align-items:center}.tarot-page .tarot-recap .timeline-node.is-key{border-color:#e3b77885;box-shadow:0 0 0 1px #e3b77833}.tarot-page .timeline-node{position:relative}.tarot-page .timeline-key{position:absolute;top:0;right:0;padding:1px 7px;border-bottom-left-radius:8px;font-size:9px;letter-spacing:.08em;color:#1a1020;background:linear-gradient(180deg,#e8c07a,#c9963f)}.tarot-page .tarot-recap .timeline-hint{position:relative;z-index:1}.tarot-page .tarot-recap .timeline-mini{width:72px}.tarot-page .tarot-recap .timeline-node{padding-block:18px 16px;gap:9px}.tarot-page .reading-card.is-key{border-color:#e3b77873;background:radial-gradient(90% 60% at 0% 0%,rgba(227,183,120,.08),transparent 70%),var(--color-bg-glass)}.tarot-page .reading-key-tag{position:absolute;top:-1px;right:-1px;padding:2px 10px;font-size:10px;letter-spacing:.16em;color:#1a1020;background:linear-gradient(180deg,#e8c07a,#c9963f);border-bottom-left-radius:8px}.tarot-page .reading-card{position:relative}.tarot-page .reading-note{margin-top:var(--space-3);padding-left:var(--space-3);border-left:2px solid rgba(227,183,120,.35);font-size:var(--text-sm);line-height:1.85;color:var(--color-accent-500)}.tarot-page .reading-mirror{display:flex;gap:8px;align-items:flex-start;margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:10px;background:#7a4dff14;border:1px dashed rgba(227,183,120,.22);font-size:var(--text-sm);line-height:1.8;color:var(--color-text-secondary)}.tarot-page .reading-mirror svg{flex:0 0 auto;margin-top:4px;color:var(--color-accent-500)}.tarot-page .insight-sequence{margin:0 0 var(--space-6);padding:var(--space-4) var(--space-5);border-radius:12px;border:1px solid rgba(227,183,120,.2);background:linear-gradient(90deg,rgba(227,183,120,.07),transparent 70%);font-family:var(--font-serif);font-size:var(--text-md);line-height:1.95;color:var(--color-text-primary)}.tarot-page .insight-sequence:before{content:"连读";display:block;margin-bottom:6px;font-family:var(--font-sans);font-size:10px;letter-spacing:.24em;color:var(--color-accent-500)}@media(max-width:900px){.tarot-page .tarot-table[data-phase=setup] .tarot-table-content{min-height:620px}.tarot-page .tarot-wall{aspect-ratio:320 / 62}}@media(max-width:639px){.tarot-page .tarot-table-content{padding:52px 16px 30px}.tarot-page .tarot-table[data-phase=setup] .tarot-table-content,.tarot-page .tarot-table[data-phase=shuffle] .tarot-table-content,.tarot-page .tarot-table[data-phase=draw] .tarot-table-content{min-height:0}.tarot-page .tarot-wall{aspect-ratio:320 / 74}.tarot-page .tarot-slot{max-width:104px}.tarot-page .tarot-board-5 .tarot-slot{max-width:74px}.tarot-page .tarot-board{gap:10px}.tarot-page .tarot-card-front{padding:13px 7px 9px;gap:3px}.tarot-page .tarot-front-pos{font-size:9px;letter-spacing:.16em}.tarot-page .tarot-front-roman{font-size:8px}.tarot-page .tarot-front-name{font-size:12px}.tarot-page .tarot-front-en{display:none}.tarot-page .tarot-front-rule{width:38%}.tarot-page .tarot-front-sigil svg{width:40px;height:40px}.tarot-page .tarot-front-orient{font-size:9px;padding:0 8px}.tarot-page .tarot-card-back-mandala svg{width:54px;height:54px}.tarot-page .tarot-card-back-hint{color:#e3b7786b}.tarot-page .tarot-slot:before{height:20px;bottom:-6px}}@media(max-width:720px){.tarot-page .tarot-recap .timeline-track[data-count="1"] .timeline-node,.tarot-page .tarot-recap .timeline-track[data-count="3"] .timeline-node{flex:1 1 0;min-width:0;padding-inline:6px}}@media(prefers-reduced-motion:reduce){.tarot-page .tarot-room,.tarot-page .tarot-table-content,.tarot-page .tarot-table-pool,.tarot-page .tarot-table-glyph{transition-duration:1ms}.tarot-page .tr-candle,.tarot-page .shuffle-card,.tarot-page .shuffle-deck:before,.tarot-page .shuffle-trail,.tarot-page .tarot-card,.tarot-page .tarot-slot:before,.tarot-page .tarot-slot.is-lit:after,.tarot-page .tarot-result,.tarot-page .tarot-table[data-phase=shuffle] .tarot-table-pool{animation:none!important}.tarot-page .tarot-table-glyph{opacity:1!important}}
