:root{--jt-ink-deepest:#0a0a0b;--jt-ink-deep:#111113;--jt-ink-base:#18181b;--jt-ink-subtle:#27272a;--jt-ink-muted:#3f3f46;--jt-ink-dim:#52525b;--jt-ink-soft:#71717a;--jt-ink-light:#a1a1aa;--jt-shu:#c53030;--jt-shu-bright:#e53e3e;--jt-shu-deep:#9b2c2c;--jt-shu-glow:rgba(197,48,48,.15);--jt-shu-subtle:rgba(197,48,48,.08);--jt-kin:#d69e2e;--jt-kin-subtle:rgba(214,158,46,.1);--jt-space-xs:4px;--jt-space-sm:8px;--jt-space-md:16px;--jt-space-lg:24px;--jt-space-xl:40px;--jt-space-2xl:64px;--jt-space-3xl:96px;--jt-radius-sm:6px;--jt-radius-md:8px;--jt-radius-lg:12px;--jt-radius-xl:16px;--jt-radius-full:9999px;--jt-text-primary:#fff;--jt-text-secondary:#a1a1aa;--jt-chip-bg:hsla(0,0%,100%,.05);--jt-chip-bg-hover:hsla(0,0%,100%,.1);--jt-border-subtle:hsla(0,0%,100%,.04);--jt-track-bg:hsla(0,0%,100%,.06);--jt-glow-border:hsla(0,0%,100%,.03);--jt-glow-border-hover:hsla(0,0%,100%,.06);--jt-ease:cubic-bezier(0.16,1,0.3,1);--jt-duration-fast:150ms;--jt-duration-base:250ms;--jt-duration-slow:500ms}html:not(.dark){--jt-ink-deepest:#fafafa;--jt-ink-deep:#fff;--jt-ink-base:#f5f5f5;--jt-ink-subtle:#e5e5e5;--jt-ink-muted:#a3a3a3;--jt-ink-dim:#737373;--jt-ink-soft:#525252;--jt-ink-light:#404040;--jt-shu:#dc2626;--jt-shu-bright:#ef4444;--jt-shu-deep:#b91c1c;--jt-shu-glow:rgba(220,38,38,.12);--jt-shu-subtle:rgba(220,38,38,.06);--jt-text-primary:#18181b;--jt-text-secondary:#52525b;--jt-chip-bg:rgba(0,0,0,.04);--jt-chip-bg-hover:rgba(0,0,0,.08);--jt-border-subtle:rgba(0,0,0,.06);--jt-track-bg:rgba(0,0,0,.06);--jt-glow-border:rgba(0,0,0,.04);--jt-glow-border-hover:rgba(0,0,0,.08)}.bg-jt-deepest{background-color:var(--jt-ink-deepest)}.bg-jt-deep{background-color:var(--jt-ink-deep)}.bg-jt-base{background-color:var(--jt-ink-base)}.bg-jt-card{background-color:var(--jt-ink-deep);border:1px solid var(--jt-border-subtle)}.jt-card{background:var(--jt-ink-deep);border-radius:var(--jt-radius-md);padding:var(--jt-space-md);transition:background var(--jt-duration-base) var(--jt-ease),transform var(--jt-duration-base) var(--jt-ease);position:relative;overflow:hidden}.jt-card:before{content:"";position:absolute;inset:0;opacity:.012;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.jt-card:hover{background:var(--jt-ink-base)}.jt-play-fab{width:48px;height:48px;border-radius:50%;background:var(--jt-shu);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 16px rgba(0,0,0,.3);transition:transform var(--jt-duration-fast) var(--jt-ease),background var(--jt-duration-fast) var(--jt-ease),box-shadow var(--jt-duration-fast) var(--jt-ease);cursor:pointer}.jt-play-fab:hover{transform:scale(1.06);background:var(--jt-shu-bright);box-shadow:0 8px 24px var(--jt-shu-glow)}.jt-play-fab:active{transform:scale(.96)}.jt-play-fab svg{color:#fff;fill:#fff;width:20px;height:20px;margin-left:2px}.jt-play-fab-sm{width:36px;height:36px}.jt-play-fab-sm svg{width:16px;height:16px}.jt-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--jt-space-lg)}.jt-section-title{font-size:1.375rem;font-weight:700;color:var(--jt-text-primary);letter-spacing:-.02em;line-height:1.2}.jt-section-link{font-size:.75rem;font-weight:600;color:var(--jt-ink-light);text-transform:uppercase;letter-spacing:.1em;transition:color var(--jt-duration-fast)}.jt-chip,.jt-section-link:hover{color:var(--jt-text-primary)}.jt-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--jt-radius-full);font-size:.8125rem;font-weight:600;background:var(--jt-chip-bg);border:none;transition:background var(--jt-duration-fast) var(--jt-ease);cursor:pointer;white-space:nowrap}.jt-chip:hover{background:var(--jt-chip-bg-hover)}.jt-chip[data-active=true]{background:var(--jt-text-primary);color:var(--jt-ink-deepest)}.jt-progress-track{height:4px;background:var(--jt-track-bg);border-radius:2px;overflow:hidden;cursor:pointer;position:relative}.jt-progress-track:hover{height:6px}.jt-progress-fill{height:100%;background:var(--jt-shu);border-radius:2px;position:relative;transition:width .1s linear}.jt-progress-track:hover .jt-progress-fill:after{content:"";position:absolute;right:-5px;top:50%;transform:translateY(-50%);width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 2px 4px rgba(0,0,0,.3)}.jt-dynamic-bg{position:relative}.jt-dynamic-bg:before{content:"";position:absolute;top:0;left:0;right:0;height:40vh;background:var(--jt-gradient,linear-gradient(180deg,var(--jt-shu-subtle) 0,transparent 100%));pointer-events:none;transition:background 1s var(--jt-ease);z-index:0}.jt-heading-xl{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.04em;line-height:1.1}.jt-heading-lg,.jt-heading-xl{font-family:Inter,Noto Sans JP,sans-serif;color:var(--jt-text-primary)}.jt-heading-lg{font-size:1.375rem;font-weight:700;letter-spacing:-.02em;line-height:1.2}.jt-heading-serif{font-family:var(--font-serif);font-weight:600;letter-spacing:0;line-height:1.3;font-feature-settings:"palt" 1,"pkna" 1,"kern" 1,"liga" 1;-webkit-font-smoothing:antialiased}.jt-heading-editorial,.jt-heading-serif{text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale}.jt-heading-editorial{font-family:var(--font-display);font-weight:500;letter-spacing:.01em;line-height:1.25;font-feature-settings:"palt" 1,"pkna" 1,"kern" 1,"liga" 1,"ss01" 1;-webkit-font-smoothing:antialiased;font-synthesis:none}.jt-prose-editorial{font-family:var(--font-serif);font-feature-settings:"palt" 1,"pkna" 1,"kern" 1,"liga" 1;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;line-height:1.85;letter-spacing:.01em;word-break:normal;overflow-wrap:anywhere;hyphens:auto}.jt-body{font-size:.875rem;line-height:1.6;color:var(--jt-ink-light)}.jt-caption{font-size:.6875rem;line-height:1.4;color:var(--jt-ink-soft);letter-spacing:.02em}.jt-mono{font-family:SF Mono,Fira Code,monospace;font-variant-numeric:tabular-nums}.jt-cover-play{position:relative;overflow:hidden;border-radius:var(--jt-radius-md)}.jt-cover-play .jt-play-fab{position:absolute;bottom:8px;right:8px;opacity:0;transform:translateY(8px);transition:opacity var(--jt-duration-base) var(--jt-ease),transform var(--jt-duration-base) var(--jt-ease)}.jt-cover-play:hover .jt-play-fab{opacity:1;transform:translateY(0)}.jt-shu-accent{width:3px;height:20px;background:var(--jt-shu);border-radius:2px;flex-shrink:0}.jt-washi-overlay{position:absolute;inset:0;pointer-events:none;opacity:.02;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='w'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.015' numOctaves='5' seed='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E")}.jt-sumi-glow{box-shadow:0 0 0 1px var(--jt-glow-border);transition:box-shadow var(--jt-duration-slow) var(--jt-ease)}.jt-sumi-glow:hover{box-shadow:0 0 0 1px var(--jt-glow-border-hover),0 8px 32px rgba(0,0,0,.12),0 0 60px var(--jt-shu-glow)}.jt-scroll{scrollbar-width:thin;scrollbar-color:var(--jt-ink-subtle) transparent}.jt-scroll::-webkit-scrollbar{width:5px;height:5px}.jt-scroll::-webkit-scrollbar-track{background:transparent}.jt-scroll::-webkit-scrollbar-thumb{background:var(--jt-ink-subtle);border-radius:3px}.jt-scroll::-webkit-scrollbar-thumb:hover{background:var(--jt-ink-muted)}.lang-transition-active *{transition:opacity .15s ease-out,transform .15s ease-out}.lang-transition-fade{opacity:.4;transform:translateY(1px)}@supports (view-transition-name:none){::view-transition-new(lang-text),::view-transition-old(lang-text){animation-duration:.2s;animation-timing-function:ease-out}::view-transition-old(lang-text){animation-name:fade-out}::view-transition-new(lang-text){animation-name:fade-in}@keyframes fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-2px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}}