/* TBFL Living Book / Luminous Editorial System | Phase 1
   Intentionally scoped to .tbfl-root; zero theme-wide selectors. No network fonts. */
.tbfl-root {
 --tbfl-paper:#fcfaf6; --tbfl-cream:#f4f1ed; --tbfl-ink:#263246;
 --tbfl-forest:#273448; --tbfl-moss:#596f70; --tbfl-gold:#ad775d;
 --tbfl-line:#e2e0dd; --tbfl-muted:#616c78;
 --tbfl-porcelain:#fffefc; --tbfl-lilac:#efedf5; --tbfl-seaglass:#e5f0ec;
 --tbfl-copper:#b3785f; --tbfl-accent:#46568d; --tbfl-shadow:0 18px 54px rgba(42,47,64,.07);
 --tbfl-serif:"Iowan Old Style","Baskerville","Palatino Linotype","Book Antiqua",Georgia,serif;
 color:var(--tbfl-ink)!important; background:var(--tbfl-paper)!important;
 font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif!important;
 font-size:16px;line-height:1.62; color-scheme:light; -webkit-font-smoothing:antialiased;
}
/* Cool paper is an optional reading atmosphere, never a dark page. */
.tbfl-root.tbfl-night {
 --tbfl-paper:#f1f3f6; --tbfl-cream:#e6eaf0; --tbfl-porcelain:#fafbfc;
 --tbfl-ink:#263349; --tbfl-forest:#3e4a65; --tbfl-moss:#52657c;
 --tbfl-gold:#946953; --tbfl-line:#d5dce6; --tbfl-muted:#58677c;
 --tbfl-lilac:#e8ebf4; --tbfl-seaglass:#e3efee; --tbfl-accent:#46568d;
}
.tbfl-root h1,.tbfl-root h2,.tbfl-root h3,.tbfl-root h4 {
 font-family:var(--tbfl-serif)!important;font-weight:500;letter-spacing:-.047em;color:var(--tbfl-ink)!important;
}
.tbfl-root :focus-visible {outline:3px solid #4059af;outline-offset:4px}
.tbfl-root a,.tbfl-root button { -webkit-tap-highlight-color:transparent }
.tbfl-root button:focus-visible,.tbfl-root a:focus-visible,.tbfl-root summary:focus-visible {outline-offset:4px}
.tbfl-root button,.tbfl-root input,.tbfl-root select {font:inherit}
.tbfl-root .tbfl-kicker,.tbfl-root .tbfl-eyebrow {font-size:11px;font-weight:740;letter-spacing:.185em;color:#586783}
.tbfl-topbar {
 position:sticky;top:0;z-index:18;min-height:78px;
 padding:13px clamp(20px,5vw,100px);gap:clamp(12px,2.1vw,26px);
 background:color-mix(in srgb,var(--tbfl-porcelain) 94%,transparent);
 border-bottom:1px solid var(--tbfl-line); box-shadow:0 1px 0 #ffffffba;
}
@supports (backdrop-filter:blur(12px)){.tbfl-topbar {backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}}
.tbfl-topbar .tbfl-wordmark {font-size:15px;letter-spacing:-.035em;font-weight:750;gap:9px;color:var(--tbfl-ink)}
.tbfl-topbar .tbfl-wordmark>small {color:#798291;font-size:9px;letter-spacing:.16em}
.tbfl-topbar nav{gap:clamp(12px,2vw,28px)}
.tbfl-topbar nav a {font-size:12px;font-weight:650;letter-spacing:.015em;color:var(--tbfl-muted)}
.tbfl-topbar nav a:hover{color:var(--tbfl-accent)}
.tbfl-lang-label select{min-height:38px;border-color:#dbdbe1;background:var(--tbfl-porcelain);border-radius:14px;padding:7px 12px;box-shadow:0 4px 16px #24304106}
.tbfl-theme-toggle {width:40px;height:40px;border-radius:13px;background:var(--tbfl-porcelain);border-color:var(--tbfl-line);box-shadow:0 2px 10px #27304308}
.tbfl-hero {
 position:relative; isolation:isolate; min-height:clamp(555px,70vh,800px);
 background:radial-gradient(ellipse at 74% 42%,#e6e3f1 0%,transparent 47%),
 radial-gradient(ellipse at 92% 18%,#e4eee8 0%,transparent 42%),
 linear-gradient(125deg,#fffdf9 12%,#f7f3ef 62%,#f4f1ef 100%)!important;
 color:var(--tbfl-ink)!important;
 grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr);gap:clamp(30px,4vw,85px);
 padding:clamp(75px,10vw,145px) clamp(24px,8vw,152px) clamp(70px,8vw,118px);
 border-bottom:1px solid var(--tbfl-line);
}
.tbfl-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(#66738915 .8px,transparent .8px);background-size:20px 20px;mask-image:linear-gradient(to right,transparent 35%,black 100%);opacity:.3}
.tbfl-hero .tbfl-eyebrow{color:#6a668a;background:#ffffffae;border:1px solid #e9e5ed;border-radius:999px;padding:10px 17px;margin-bottom:30px}
.tbfl-hero h1 {font-size:clamp(55px,6.2vw,102px);line-height:.97;max-width:840px;margin-bottom:32px!important;color:var(--tbfl-ink)!important;text-wrap:balance;letter-spacing:-.067em}
.tbfl-hero h1 em {font-family:var(--tbfl-serif);font-weight:400;color:#796e9b!important;white-space:normal}
.tbfl-hero-sub {font-family:var(--tbfl-serif);font-size:clamp(20px,2.2vw,30px);line-height:1.35;color:#566075;letter-spacing:-.023em;max-width:590px}
.tbfl-byline {font-size:12px;color:#805e5a;letter-spacing:.015em}
.tbfl-hero-copy{font-size:15px;line-height:1.85;color:#505c69;max-width:620px}
.tbfl-actions{gap:12px;margin-top:30px}
.tbfl-main-button,.tbfl-secondary-button{font-size:13px;font-weight:690;padding:15px 23px;min-height:50px;border-radius:16px;box-shadow:0 7px 20px #20263a0b;transition:transform .25s,box-shadow .25s,border-color .25s,background .25s}
.tbfl-main-button{background:#303b5a!important;color:#fff!important;border:1px solid #303b5a!important}
.tbfl-secondary-button{color:#344258!important;background:#fffdf9!important;border:1px solid #d5d7de!important}
.tbfl-main-button:hover,.tbfl-secondary-button:hover{transform:translateY(-2px);box-shadow:0 12px 27px #27304420}
.tbfl-hero-facts{margin-top:40px;font-size:11px;color:#697485;letter-spacing:.05em}
.tbfl-hero-facts span+span:before{color:#a3a5ac}
.tbfl-hero-art{
 min-height:460px;perspective:1000px;border-radius:34px;
 background:linear-gradient(150deg,#ffffff96,#f4ecf36b 45%,#e7edea5e);
 border:1px solid #ffffffbc;box-shadow:0 30px 75px #4c50791c;
 overflow:hidden;
}
.tbfl-hero-art::before{content:"";position:absolute;inset:12% 14%;border-radius:49% 44% 45% 49%;background:radial-gradient(circle at 33% 32%,#ffffffd9 0%,#e2dce8 60%,#b4b8d271);box-shadow:16px 25px 45px #3d476d21, inset 4px 7px 25px #ffffffd6;transform:rotate(-12deg)}
.tbfl-hero-art::after{content:"";position:absolute;inset:24% 21%;border:1px solid #ffffffe6;border-radius:46% 54% 42% 58%;transform:rotate(36deg)}
.tbfl-orbit{border-color:#ffffffd8;box-shadow:0 5px 20px #606b9a0e}
.tbfl-orbit-a{width:min(29vw,385px);height:min(29vw,385px);background:transparent;border-color:#afabc384}
.tbfl-orbit-b{width:min(23vw,294px);height:min(23vw,294px);border-color:#ffffffe6}
.tbfl-art-core{color:#46516d;font-family:var(--tbfl-serif);font-size:clamp(23px,3vw,45px);font-weight:500;letter-spacing:.09em;line-height:1.63;text-shadow:0 2px 15px #ffffffaa}
.tbfl-art-mini{color:#77818e;bottom:21px;font-weight:650;font-size:10px;letter-spacing:.16em}
.tbfl-hero-photo{border:1px solid #ffffffbc!important;border-radius:32px!important;box-shadow:0 30px 75px #3e46611c!important;background:#f0e6dc!important;min-height:430px}
.tbfl-hero-photo figcaption{background:linear-gradient(transparent,#25314599)!important;padding:45px 23px 19px!important}
.tbfl-intro {padding:clamp(78px,10vw,145px) clamp(24px,9vw,155px) clamp(48px,7vw,102px);gap:7vw;align-items:start;background:var(--tbfl-paper)}
.tbfl-intro h2{font-size:clamp(44px,4.6vw,75px);line-height:1.03;letter-spacing:-.062em}
.tbfl-intro p{font-family:var(--tbfl-serif);font-size:clamp(20px,2vw,28px);line-height:1.57;letter-spacing:-.018em;color:#4c5a69}
.tbfl-feature-grid {gap:18px;padding:0 clamp(24px,9vw,155px) clamp(82px,10vw,160px)}
.tbfl-feature {min-height:315px;padding:clamp(25px,2.6vw,38px);border-radius:26px;border:1px solid #e4e2e7;background:linear-gradient(150deg,#fffefc 5%,#f9f7f5);box-shadow:0 8px 32px #3f465507;transition:transform .3s ease,box-shadow .3s ease,border-color .3s}
.tbfl-feature:nth-child(2){background:linear-gradient(150deg,#f9f8fd,#f0edf8)}
.tbfl-feature:nth-child(3){background:linear-gradient(150deg,#f8fdfa,#eaf2ee)}
.tbfl-feature:hover{transform:translateY(-7px);border-color:#b9b6cf;box-shadow:0 21px 55px #34426017}
.tbfl-feature h3{font-size:clamp(29px,2.8vw,40px);line-height:1.13;letter-spacing:-.045em;margin:22px 0 15px}
.tbfl-feature p{font-size:14px;line-height:1.8;color:#596473}
.tbfl-feature-more{color:#4c5983;font-size:12px}
.tbfl-contents-section{background:#f7f5f2!important;padding:clamp(75px,9vw,130px) clamp(23px,10vw,180px) clamp(75px,10vw,136px)}
.tbfl-section-head{margin-bottom:42px}
.tbfl-section-head h2,.tbfl-archive-section h2{font-size:clamp(42px,4.8vw,74px);line-height:1.07;letter-spacing:-.055em}
.tbfl-toc-search-label{font-size:12px;color:#647081;min-width:min(320px,100%);font-weight:570}
.tbfl-toc-search{background:#fffefa;border-radius:14px;padding:13px 17px;min-height:49px;border:1px solid #dedde3;box-shadow:0 7px 25px #34426009}
.tbfl-part {margin:8px 0;background:#fffefa;border:1px solid #e4e2e2;border-radius:20px;overflow:hidden;box-shadow:0 4px 16px #39435506}
.tbfl-part>summary{grid-template-columns:85px minmax(0,1fr) auto;gap:20px;padding:24px 28px;min-height:95px}
.tbfl-part>summary::after{grid-column:4;color:#7a779c;background:#efedf5;border-radius:50%;width:35px;height:35px;display:grid;place-items:center;font-size:24px;font-weight:350}
.tbfl-part>summary strong{font-family:var(--tbfl-serif);font-size:clamp(20px,2.1vw,31px);line-height:1.25;letter-spacing:-.025em}
.tbfl-part-count {font-size:12px;color:#768293}
.tbfl-part[open] {border-color:#cfccd9;box-shadow:0 17px 42px #273c5810}
.tbfl-part[open]>summary{border-bottom:1px solid #efedee}
.tbfl-part ol{margin:0;padding:8px clamp(18px,3vw,50px) 22px}
.tbfl-part li>a {border-bottom:1px solid #efeeed;border-radius:10px;grid-template-columns:48px minmax(0,1fr) 22px;gap:18px;font-size:15px;min-height:54px;align-items:center;padding:13px 18px;color:#374357}
.tbfl-part li>a:hover{background:#f3f2f7;color:#222f4b}
.tbfl-part li>a span{color:#7a8393;font-size:12px}
.tbfl-part li>a strong{font-weight:570;line-height:1.5}
.tbfl-archive-section{padding:clamp(85px,10vw,150px) clamp(24px,9vw,155px);gap:7vw}
.tbfl-archive-section>div:first-child>p{font-size:15px;line-height:1.9;color:#5e6b79}
.tbfl-archive-grid{gap:17px}
.tbfl-archive-card{min-height:242px;padding:29px;border:1px solid #e4e4e9;border-radius:24px;background:var(--tbfl-porcelain);box-shadow:0 10px 40px #33415b08;transition:transform .3s,box-shadow .3s}
.tbfl-archive-card:hover{transform:translateY(-5px);box-shadow:0 19px 50px #34415b19}
.tbfl-archive-symbol{color:#7b7397;font-size:31px}
.tbfl-archive-card h3{font-size:clamp(24px,2.3vw,31px);margin:15px 0}
.tbfl-archive-card p{color:#667281;font-size:13px}
.tbfl-archive-card small{color:#58648a}
.tbfl-footer{color:#667181!important;background:#f7f6f4!important;border-top:1px solid #e3e2e2;padding:34px clamp(25px,6vw,100px)}
.tbfl-footer p{margin:0!important}
.tbfl-home-media{background:#f8f6f3;padding:60px clamp(24px,9vw,155px)}
.tbfl-home-media h2{font-size:clamp(32px,4vw,60px)}
.tbfl-root.tbfl-night .tbfl-hero{background:linear-gradient(115deg,#f6f7fa,#e8eaf2,#e8f0ef)!important}
.tbfl-root.tbfl-night .tbfl-contents-section{background:#e9edf2!important}
.tbfl-root.tbfl-night .tbfl-part,.tbfl-root.tbfl-night .tbfl-archive-card{background:#fafbfc}
.tbfl-root.tbfl-night .tbfl-intro p,.tbfl-root.tbfl-night .tbfl-hero-copy {color:#526071}
@media(max-width:1199px){.tbfl-hero{padding-inline:clamp(28px,5vw,72px)}.tbfl-hero h1{font-size:clamp(52px,6vw,80px)}.tbfl-hero-art{min-height:360px}}
@media(max-width:780px){
 .tbfl-topbar{min-height:65px;padding:10px 17px;gap:10px}.tbfl-root .tbfl-lang-label select{font-size:12px!important;line-height:1.25}.tbfl-topbar .tbfl-wordmark{font-size:13px}
 .tbfl-hero{padding:70px 24px 45px;gap:40px;min-height:auto;grid-template-columns:1fr}
 .tbfl-hero h1{font-size:clamp(50px,10vw,78px);line-height:1.01;max-width:660px}
 .tbfl-hero-art{min-height:290px;border-radius:24px}.tbfl-orbit-a{width:245px;height:245px}.tbfl-orbit-b{width:170px;height:170px}
 .tbfl-hero-photo{min-height:350px}
 .tbfl-intro{padding:75px 24px 50px;grid-template-columns:1fr;gap:20px}.tbfl-intro h2{font-size:clamp(42px,9vw,70px)}
 .tbfl-feature-grid{padding:0 24px 80px;grid-template-columns:1fr;gap:15px}.tbfl-feature{min-height:230px}
 .tbfl-contents-section{padding:75px 18px}.tbfl-section-head{display:block}.tbfl-toc-search-label{max-width:none}
 .tbfl-part>summary{grid-template-columns:45px minmax(0,1fr);padding:20px 16px;gap:8px;min-height:80px}
 .tbfl-part>summary strong{font-size:22px}.tbfl-part>summary::after{grid-column:3;width:30px;height:30px}
 .tbfl-part ol{padding:8px 13px 18px}.tbfl-part li>a{grid-template-columns:28px minmax(0,1fr) 18px;gap:9px;font-size:14px;padding:11px 6px}
 .tbfl-archive-section{padding:80px 23px;grid-template-columns:1fr}.tbfl-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .tbfl-footer{display:grid;gap:12px}
}
@media(max-width:480px){.tbfl-archive-grid{grid-template-columns:1fr}.tbfl-hero-art{min-height:255px}.tbfl-art-core{font-size:26px}.tbfl-hero h1{font-size:clamp(45px,11vw,58px)}.tbfl-topbar .tbfl-wordmark small{display:none}}
@media(prefers-reduced-motion:reduce){.tbfl-root .tbfl-main-button,.tbfl-root .tbfl-secondary-button,.tbfl-root .tbfl-feature,.tbfl-root .tbfl-archive-card{transition:none!important;transform:none!important}}
