:root{
  --soot:#120d16; --soot2:#1b1420; --soot3:#241b2b; --bone:#ece3d0; --ash:#a39aa6;
  --stole:#7a4fb5; --stole-lt:#b49ae0; --wax:#d9b46a; --blood:#e06a6a; --blood-inv:#a32424;
  --thread:rgba(180,154,224,.2);
  --serif:'Noto Serif KR','Apple SD Gothic Neo','Nanum Myeongjo',serif;
  --latin:'Cormorant Garamond','Times New Roman',Georgia,serif;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    --soot:#ebe2d1; --soot2:#e1d6c1; --soot3:#d6c9b1; --bone:#1d1622; --ash:#4f4453;
    --stole:#5b3290; --stole-lt:#5b3290; --wax:#6b4b10; --blood:#8a1515; --blood-inv:#f19a9a;
    --thread:rgba(91,50,144,.22);
  }
}
:root[data-theme="dark"]{
  --soot:#120d16; --soot2:#1b1420; --soot3:#241b2b; --bone:#ece3d0; --ash:#a39aa6;
  --stole:#7a4fb5; --stole-lt:#b49ae0; --wax:#d9b46a; --blood:#e06a6a; --blood-inv:#a32424;
  --thread:rgba(180,154,224,.2);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-padding-top:env(safe-area-inset-top,0px);background:var(--soot)}
body{margin:0;background:var(--soot);color:var(--bone);font-family:var(--serif);font-weight:400;line-height:1.85;-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:var(--stole);color:#fff}
a{color:var(--stole-lt);text-underline-offset:3px}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--wax);outline-offset:4px}
.la{font-family:var(--latin);font-style:italic;font-weight:400;color:var(--stole-lt)}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* chrome */
.prog{position:fixed;top:0;left:0;right:0;height:2px;z-index:70;padding-top:env(safe-area-inset-top,0px)}
.prog span{display:block;height:2px;background:var(--wax);transform-origin:left;transform:scaleX(0)}
.idx-btn{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));z-index:71;
  background:color-mix(in srgb,var(--soot) 70%,transparent);backdrop-filter:blur(8px);border:1px solid var(--thread);
  padding:.45rem 1rem;font-size:14px;cursor:pointer;letter-spacing:.02em}
.idx-btn:hover{border-color:var(--wax)}
.index{position:fixed;inset:0;z-index:80;background:var(--soot2);display:none;overflow:auto;padding:calc(10vh + env(safe-area-inset-top,0px)) 8vw 8vh}
.index ol{list-style:none;margin:0 auto;padding:0;max-width:900px;counter-reset:c}
.index li{border-top:1px solid var(--thread);overflow:hidden}
.index a{display:flex;align-items:baseline;gap:1.2rem;padding:.9rem 0;text-decoration:none;color:var(--bone);font-size:clamp(22px,3.2vw,40px);font-weight:600}
.index a:hover{color:var(--wax)}
.index a::before{counter-increment:c;content:counter(c,upper-roman);font-family:var(--latin);font-style:italic;font-weight:400;color:var(--stole-lt);font-size:.6em;min-width:3.2em}
.index a .la{font-size:.55em;margin-left:auto}
.index .close{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px));background:none;border:1px solid var(--thread);padding:.45rem 1rem;cursor:pointer}

/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:grid;place-items:center;overflow:hidden;--mx:50%;--my:55%;--r:240px}
.rite-text{position:absolute;inset:-4%;font-family:var(--latin);font-style:italic;font-size:clamp(17px,1.6vw,24px);line-height:1.55;color:var(--wax);text-align:justify;user-select:none;pointer-events:none;word-spacing:.15em}
.rite-text.dim{opacity:.07}
.rite-text.lit{opacity:.9;-webkit-mask-image:radial-gradient(circle var(--r) at var(--mx) var(--my),#000 0%,rgba(0,0,0,.55) 40%,transparent 75%);mask-image:radial-gradient(circle var(--r) at var(--mx) var(--my),#000 0%,rgba(0,0,0,.55) 40%,transparent 75%)}
.glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle calc(var(--r)*1.6) at var(--mx) var(--my),rgba(217,180,106,.13),transparent 70%)}
.hero-inner{position:relative;text-align:center;padding:0 6vw}
.hero h1{margin:0;font-weight:900;font-size:clamp(64px,13vw,190px);line-height:.95;letter-spacing:-.03em;text-shadow:0 0 60px var(--soot),0 0 20px var(--soot)}
.hero h1 .ch{display:inline-block}
.hero .sub{margin:1.6rem 0 0;font-size:clamp(15px,1.4vw,19px);color:var(--ash);font-weight:400}
.hero .sub .la{display:block;font-size:1.25em;margin-bottom:.2rem}
.cue{position:absolute;bottom:4vh;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:14px;color:var(--ash)}
.cue i{width:1px;height:46px;background:linear-gradient(var(--wax),transparent);animation:drip 2.4s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* common */
section{position:relative}
.wrap{width:min(1120px,88vw);margin:0 auto}
.pad{padding:16vh 0}
.head{margin-bottom:clamp(2.5rem,6vh,4.5rem)}
.head h2{margin:0;font-weight:900;font-size:clamp(34px,5.2vw,72px);line-height:1.12;letter-spacing:-.02em;word-break:keep-all}
.head .la{display:block;margin-top:.6rem;font-size:clamp(18px,1.6vw,22px)}
.lede{max-width:36em;font-size:17.5px;color:var(--ash);word-break:keep-all;margin:-1.5rem 0 3rem}
.kicker{font-family:var(--latin);font-style:italic;color:var(--wax);font-size:19px}
.src{display:block;font-size:14px;color:var(--ash);margin-top:.6rem}
.src::before{content:"출처 ";color:var(--stole-lt)}

/* prologue */
.prologue{padding:28vh 0 22vh}
.prologue p{max-width:22em;margin:0 auto;font-size:clamp(24px,3.4vw,46px);line-height:1.6;font-weight:400;text-align:center;word-break:keep-all}
.prologue .w{opacity:.12;display:inline-block}
.prologue cite{display:block;text-align:center;margin-top:3rem;font-style:normal;color:var(--ash);font-size:15px}

/* etymology */
.ety-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,5rem);align-items:end;border-top:1px solid var(--thread);padding:clamp(2rem,5vh,3.5rem) 0}
.ety-word{font-family:var(--latin);font-size:clamp(48px,8vw,120px);line-height:1;color:var(--bone);white-space:nowrap;overflow:hidden}
.ety-word.long{white-space:normal;font-size:clamp(40px,5.6vw,84px)}
.ety-word.kr{font-family:var(--serif);font-weight:900}
.ety-word .g{display:inline-block}
.ety-tr{display:block;font-family:var(--latin);font-style:italic;color:var(--stole-lt);font-size:20px;margin-top:.5rem}
.ety-tr .pr{font-family:var(--serif);font-style:normal;font-weight:600;color:var(--wax);margin:0 .7rem;font-size:.95em}
.ety-tr .lg{font-family:var(--serif);font-style:normal;color:var(--ash);font-size:.75em}
.ety-tr .ex{display:block;font-size:.8em;margin-top:.3rem;color:var(--ash)}
.ety-row p{margin:0;word-break:keep-all;font-size:16.5px;max-width:30em}
.ety-row p b{font-weight:600;color:var(--wax)}

/* doctrine */
.split{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:stretch}
.paths{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--thread)}
.path{padding:2rem 1rem 0 0}
.path .bar{display:block;width:1px;height:180px;background:var(--bone);opacity:.5;transform-origin:top;margin-bottom:1.4rem}
.path:nth-child(1) .bar{background:linear-gradient(var(--wax),transparent);opacity:1}
.path:nth-child(2) .bar{height:120px}
.path:nth-child(3) .bar{height:240px;background:linear-gradient(var(--bone),var(--blood))}
.path h3{margin:0;font-size:clamp(22px,2.4vw,30px);font-weight:600}
.path .la{font-size:17px}
.paths-note{grid-column:1/-1;margin:2.5rem 0 0;color:var(--ash);max-width:34em;word-break:keep-all}
.fallen{position:relative;border-left:1px solid var(--thread);padding-left:clamp(1.5rem,4vw,3.5rem);overflow:hidden;min-height:420px}
.fallen h3{margin:0 0 .3rem;font-size:clamp(26px,3vw,40px);font-weight:900}
.fallen p{word-break:keep-all;max-width:24em}
.streak{position:absolute;top:-30%;right:12%;width:2px;height:55%;background:linear-gradient(transparent,var(--stole-lt) 70%,#fff);filter:drop-shadow(0 0 8px var(--stole-lt));transform:rotate(18deg);opacity:0}
.fallen .big{display:block;font-family:var(--latin);font-style:italic;font-size:clamp(70px,9vw,130px);line-height:1;color:var(--stole);opacity:.35;margin-top:2rem}
.decree{margin-top:clamp(4rem,10vh,7rem);display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,3.5rem)}
.decree div{border-top:1px solid var(--thread);padding-top:1.2rem}
.decree .yr{font-family:var(--latin);font-weight:600;font-size:30px;color:var(--wax);line-height:1}
.decree h4{margin:.6rem 0 .4rem;font-size:19px;font-weight:600;word-break:keep-all}
.decree p{margin:0;color:var(--ash);font-size:15.5px;word-break:keep-all}
.decree blockquote{margin:.8rem 0 0;font-family:var(--latin);font-style:italic;color:var(--stole-lt);font-size:17px;line-height:1.5}

/* chronicle */
.chron{overflow:hidden;background:var(--soot2)}
.chron-pin{height:100vh;display:flex;flex-direction:column;justify-content:center}
.chron .head{width:min(1120px,88vw);margin:0 auto 4vh}
.chron .head h2{font-size:clamp(30px,4.4vw,60px)}
.track{display:flex;width:max-content;padding:0 6vw;position:relative}
.track::before{content:"";position:absolute;left:0;right:0;top:4.3rem;height:1px;background:var(--thread)}
.ev{width:min(76vw,360px);padding-right:clamp(2rem,3.5vw,3.5rem);position:relative}
.ev .yr{display:block;font-family:var(--latin);font-weight:600;font-size:clamp(30px,3vw,44px);line-height:1;color:var(--wax);height:3.6rem;white-space:nowrap}
.ev .node{display:block;width:9px;height:9px;border-radius:50%;background:var(--soot2);border:1px solid var(--stole-lt);margin:.85rem 0 1.3rem}
.ev h3{margin:0 0 .5rem;font-size:clamp(18px,1.6vw,22px);font-weight:600;line-height:1.45;word-break:keep-all}
.ev p{margin:0;color:var(--ash);font-size:15px;line-height:1.8;word-break:keep-all}
.ev .place{display:block;font-family:var(--latin);font-style:italic;color:var(--stole-lt);font-size:16px;margin-bottom:.2rem}
.ev.warn .yr{color:var(--blood)} .ev.warn .node{border-color:var(--blood);background:var(--blood)}
.ev.now .node{background:var(--wax);border-color:var(--wax);box-shadow:0 0 14px var(--wax)}
.chron-foot{width:min(1120px,88vw);margin:5vh auto 0;display:flex;align-items:center;gap:1.2rem;font-size:14px;color:var(--ash)}
.chron-bar{flex:1;height:1px;background:var(--thread);position:relative}
.chron-bar span{position:absolute;inset:0;background:var(--wax);transform-origin:left;transform:scaleX(0)}

/* codex */
.filters{display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;margin:0 0 2rem;padding:0;list-style:none}
.filters button{background:none;border:0;border-bottom:1px solid transparent;padding:.3rem 0;cursor:pointer;color:var(--ash);font-size:15.5px}
.filters button sup{font-family:var(--latin);color:var(--stole-lt);font-size:14px;margin-left:.2rem}
.filters button[aria-pressed="true"]{color:var(--bone);border-bottom-color:var(--wax)}
.trad-note{min-height:3.4em;color:var(--ash);font-size:15px;max-width:44em;word-break:keep-all;margin:0 0 2rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));border-top:1px solid var(--thread);border-left:1px solid var(--thread)}
.entry{border-right:1px solid var(--thread)!important;border-bottom:1px solid var(--thread)!important;background:var(--soot);padding:1.3rem 1.2rem 1.2rem;text-align:left;border:0;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;min-height:230px;transition:background .3s}
.entry:hover{background:var(--soot2)}
.entry.hide{display:none}
.entry .sig{width:60px;height:60px;margin-bottom:.9rem}
.sig circle,.sig path{fill:none;stroke:var(--stole-lt);stroke-width:1.4}
.sig .dot{fill:var(--wax);stroke:none}
.sig .draw{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.1s cubic-bezier(.6,0,.2,1)}
.entry:hover .sig .draw,.entry:focus-visible .sig .draw,.entry.seen .sig .draw{stroke-dashoffset:0}
.entry h3{margin:0;font-size:21px;font-weight:600;line-height:1.35;word-break:keep-all}
.entry .orig{font-family:var(--latin);font-style:italic;color:var(--stole-lt);font-size:16px;line-height:1.3}
.entry .short{margin:.55rem 0 0;font-size:14px;line-height:1.7;color:var(--ash);word-break:keep-all;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.entry .meta{margin-top:auto;padding-top:.8rem;font-size:14px;color:var(--wax);display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem}
.modal{position:fixed;inset:0;z-index:85;display:none;place-items:center;background:rgba(10,7,12,.8);backdrop-filter:blur(6px);padding:5vh 4vw}
.panel{position:relative;background:var(--soot2);width:min(760px,100%);max-height:88vh;overflow:auto;padding:clamp(1.6rem,4vw,3rem);border:1px solid var(--thread);display:grid;grid-template-columns:130px 1fr;gap:2rem}
.panel .sig{width:130px;height:130px}
.panel h3{margin:0;font-size:clamp(28px,3.4vw,42px);font-weight:900;line-height:1.2;word-break:keep-all}
.panel .orig{font-family:var(--latin);font-style:italic;color:var(--stole-lt);font-size:21px}
.panel dl{display:grid;grid-template-columns:auto 1fr;gap:.25rem 1rem;margin:1.2rem 0;font-size:14px}
.panel dt{color:var(--wax)} .panel dd{margin:0;color:var(--ash)}
.panel p{word-break:keep-all;font-size:16.5px;margin:0}
.panel .x{position:absolute;top:12px;right:12px;background:none;border:1px solid var(--thread);width:38px;height:38px;cursor:pointer;display:grid;place-items:center;padding:0}
.panel nav{grid-column:1/-1;display:flex;justify-content:space-between;border-top:1px solid var(--thread);padding-top:1rem;font-size:14px}
.panel nav button{background:none;border:0;cursor:pointer;color:var(--ash)} .panel nav button:hover{color:var(--wax)}

/* taxonomy */
.tax-block{border-top:1px solid var(--thread);padding:clamp(3rem,8vh,5rem) 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.tax-block h3{margin:.3rem 0 .8rem;font-size:clamp(24px,2.8vw,36px);font-weight:900;line-height:1.3;word-break:keep-all}
.tax-block p{word-break:keep-all;font-size:16px;color:var(--ash);max-width:30em}
.rings svg{width:100%;height:auto;overflow:visible}
.rings circle{fill:none;stroke:var(--stole-lt);stroke-width:1}
.rings text{font-family:var(--serif);font-size:15px;fill:var(--bone)}
.rings text.l{font-family:var(--latin);font-style:italic;font-size:14px;fill:var(--stole-lt)}
.sins{display:grid;grid-template-columns:1fr auto 1fr;font-size:16px}
.sins .hd{font-size:14px;color:var(--ash);padding-bottom:.6rem;border-bottom:1px solid var(--thread)}
.sins .hd.r{text-align:right}
.sins .c{padding:.7rem 0;border-bottom:1px solid var(--thread)}
.sins .sin{text-align:center;padding:.7rem 1.4rem;border-bottom:1px solid var(--thread);color:var(--wax);font-weight:600;white-space:nowrap}
.sins .r{text-align:right}
.sins .c.diff{color:var(--stole-lt);font-weight:600}
.sins .c .la{font-size:14px;display:block;color:var(--ash)}
.hier{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.hier div{border-top:2px solid var(--stole);padding-top:.9rem}
.hier h4{margin:0;font-size:16px;font-weight:600}
.hier .la{font-size:15px;display:block;margin-bottom:.6rem}
.hier ul{list-style:none;margin:0;padding:0;font-size:15px;line-height:2}
.ranks{display:flex;flex-direction:column;gap:.9rem}
.rank{display:grid;grid-template-columns:5.5rem 1fr 2.5rem;align-items:center;gap:1rem;font-size:15px}
.rank .bar{height:10px;background:var(--thread);position:relative}
.rank .bar span{position:absolute;inset:0;background:linear-gradient(90deg,var(--stole),var(--stole-lt));transform-origin:left}
.rank b{font-family:var(--latin);font-weight:600;font-size:22px;color:var(--wax);text-align:right}
.kinds{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--thread)}
.kinds div{background:var(--soot);padding:1.2rem}
.kinds h4{margin:0;font-size:19px;font-weight:600}
.kinds .la{font-size:15px}
.kinds p{margin:.4rem 0 0;font-size:14.5px;color:var(--ash)}

/* wound */
.wound-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.ice svg{width:100%;height:auto;display:block;overflow:visible}
.wound-copy p{word-break:keep-all;max-width:26em;font-size:17px}
.wound-copy p.lead{font-size:clamp(22px,2.4vw,30px);font-weight:600;line-height:1.55}
.weak{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:2rem 0 0;padding:0;list-style:none}
.weak li{font-size:15px;color:var(--ash);border-bottom:1px solid var(--thread);padding-bottom:.2rem}

/* discernment */
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}
.col h3{margin:0 0 .2rem;font-size:clamp(22px,2.4vw,30px);font-weight:900}
.col .la{display:block;margin-bottom:1.5rem;font-size:17px}
.signs{list-style:none;margin:0;padding:0}
.signs li{border-top:1px solid var(--thread);padding:1.1rem 0 1.1rem 3.2rem;position:relative;word-break:keep-all;font-size:16px}
.signs li svg{position:absolute;left:0;top:1.2rem;width:34px;height:34px}
.signs li svg *{fill:none;stroke:var(--wax);stroke-width:1.4}
.signs li small{display:block;color:var(--ash);font-size:14px;margin-top:.2rem}
.signs li em{font-style:normal;font-size:14px;color:var(--soot);background:var(--wax);padding:.05rem .45rem;margin-left:.4rem;vertical-align:2px}
.icd{border:1px solid var(--thread);padding:1.5rem;margin-top:1.2rem}
.icd .code{font-family:var(--latin);font-weight:600;font-size:46px;line-height:1;color:var(--stole-lt)}
.icd p{font-size:15.5px;word-break:keep-all;margin:.8rem 0 0}
.icd ul{margin:.8rem 0 0;padding-left:1.1rem;font-size:15px;color:var(--ash)}
.spectrum{margin-top:clamp(4rem,10vh,6rem)}
.spec-line{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--thread);position:relative}
.spec-line div{padding:1rem .7rem 0 0;font-size:14px;word-break:keep-all}
.spec-line div b{display:block;font-size:17px;font-weight:600;color:var(--bone)}
.spec-line div span{color:var(--ash)}
.spec-line div:first-child b{color:var(--wax)}
.spec-fill{position:absolute;top:-1px;left:0;height:1px;width:100%;background:linear-gradient(90deg,var(--wax),var(--blood));transform-origin:left}

/* pre */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2rem;counter-reset:s}
.steps li{border-top:1px solid var(--thread);padding-top:1.2rem;word-break:keep-all;font-size:15.5px;color:var(--ash)}
.steps li b{display:block;color:var(--bone);font-weight:600;font-size:18px;margin-bottom:.4rem}
.steps li::before{counter-increment:s;content:counter(s,lower-roman) ".";font-family:var(--latin);font-style:italic;color:var(--wax);font-size:20px;display:block;margin-bottom:.4rem}

/* rite */
.rite{height:100vh;overflow:hidden;position:relative;background:var(--soot)}
.rite-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 55%,rgba(122,79,181,.2),transparent 60%);transition:background 1s}
.rite[data-stage="1"] .rite-bg{background:radial-gradient(ellipse at 30% 55%,rgba(122,79,181,.06),transparent 60%)}
.rite[data-stage="2"] .rite-bg{background:radial-gradient(ellipse at 30% 55%,rgba(163,36,36,.3),transparent 60%)}
.rite[data-stage="3"] .rite-bg{background:radial-gradient(ellipse at 30% 50%,rgba(217,180,106,.08),transparent 70%)}
.rite-inner{position:relative;height:100%;display:grid;grid-template-columns:1fr 1fr;align-items:center;width:min(1120px,88vw);margin:0 auto;gap:4vw}
.eye-wrap{position:relative;height:62vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3vh}
.eye{width:min(36vw,380px);overflow:visible}
#eyeOutline{fill:none;stroke:var(--bone);stroke-width:1.4;transition:stroke .5s}
.iris{fill:none;stroke:var(--stole-lt);stroke-width:1.3;transition:stroke .4s,stroke-width .4s}
.pupil{fill:var(--bone)}
.rite[data-stage="2"] #eyeOutline,.rite[data-stage="2"] .iris{stroke:var(--blood)}
.rite[data-stage="2"] .iris{stroke-width:3}
.wave{width:min(36vw,380px);height:auto;overflow:visible}
#wave{fill:none;stroke:var(--stole-lt);stroke-width:1.3;transition:stroke .4s}
.rite[data-stage="2"] #wave{stroke:var(--blood);stroke-width:1.8}
.voice-cap{font-size:14px;color:var(--ash);letter-spacing:.04em;min-height:1.4em}
.name{position:absolute;inset:0;display:grid;place-items:center;text-align:center;opacity:0;pointer-events:none}
.name .q{font-family:var(--latin);font-style:italic;color:var(--ash);font-size:clamp(18px,1.8vw,24px)}
.name .a{display:block;font-family:var(--latin);font-weight:600;font-size:clamp(60px,9vw,130px);letter-spacing:.12em;line-height:1;margin-top:.6rem}
.stages{position:relative;height:60vh}
.stage{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center}
.stage .n{font-family:var(--latin);font-style:italic;font-size:22px;color:var(--wax)}
.stage h3{margin:.2rem 0 .1rem;font-weight:900;font-size:clamp(46px,6.5vw,96px);line-height:1.05;letter-spacing:-.02em}
.stage .la{font-size:20px}
.stage p{max-width:22em;word-break:keep-all;font-size:17px;margin-top:1.4rem}
.dots{position:absolute;right:max(3vw,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:14px}
.dots span{width:6px;height:6px;border-radius:50%;border:1px solid var(--ash);transition:.4s}
.dots span.on{background:var(--wax);border-color:var(--wax);transform:scale(1.4)}

/* cases */
.cases{list-style:none;margin:0;padding:0}
.case{border-top:1px solid var(--thread)}
.case:last-child{border-bottom:1px solid var(--thread)}
.case button{width:100%;background:none;border:0;cursor:pointer;display:grid;grid-template-columns:7rem 1fr auto;gap:1.5rem;align-items:baseline;text-align:left;padding:1.4rem 0}
.case .yr{font-family:var(--latin);font-weight:600;font-size:34px;line-height:1;color:var(--wax)}
.case .t{font-size:clamp(19px,2vw,25px);font-weight:600;word-break:keep-all}
.case .t .la{display:block;font-size:16px;font-weight:400}
.case .pm{font-family:var(--latin);font-size:28px;color:var(--stole-lt);transition:transform .4s}
.case[aria-expanded="true"] .pm{transform:rotate(45deg)}
.case .body{overflow:hidden}
.case .inner{display:grid;grid-template-columns:7rem 1fr;gap:1.5rem;padding:0 0 1.8rem}
.case .inner div{max-width:40em;word-break:keep-all;font-size:16px}
.case .inner p{margin:0 0 .8rem}
.case .lesson{color:var(--stole-lt);font-family:var(--serif);border:1px solid var(--thread);background:color-mix(in srgb,var(--stole) 8%,transparent);padding:.7rem 1rem}

/* search */
.searchbar{display:flex;align-items:center;gap:1rem;border-bottom:1px solid var(--stole-lt);margin:0 0 1.4rem;padding:.2rem 0}
.searchbar input{flex:1;min-width:0;background:none;border:0;color:var(--bone);font:inherit;font-size:clamp(17px,1.8vw,22px);padding:.7rem 0;outline:none}
.searchbar input::placeholder{color:var(--ash);opacity:.7;font-size:.8em}
.searchbar:focus-within{border-bottom-color:var(--wax)}
.searchbar .count{font-family:var(--latin);font-size:18px;color:var(--wax);white-space:nowrap}
.empty{color:var(--ash);padding:2rem 0;font-size:16px}
mark{background:color-mix(in srgb,var(--wax) 35%,transparent);color:inherit;padding:0 .1em}
.jamo{display:flex;flex-wrap:wrap;gap:.2rem;margin:0 0 2rem}
.jamo button{background:none;border:1px solid var(--thread);min-width:2.2rem;height:2.2rem;cursor:pointer;color:var(--bone);font-size:15px}
.jamo button:hover{border-color:var(--wax);color:var(--wax)}
.jamo button[disabled]{opacity:.25;cursor:default}
.gl-group h3{position:sticky;top:env(safe-area-inset-top,0px);z-index:2;margin:0;padding:.6rem 0;background:var(--soot);font-size:28px;font-weight:900;color:var(--wax);border-bottom:1px solid var(--thread)}
.gl-row{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:.4rem 2rem;padding:1.1rem 0;border-bottom:1px solid var(--thread)}
.gl-row dt{font-size:19px;font-weight:600;line-height:1.4;word-break:keep-all}
.gl-row dt .la{display:block;font-size:15px;font-weight:400;margin-top:.15rem}
.gl-row .pr{font-family:var(--serif);font-style:normal;font-weight:600;color:var(--wax);margin:0 .15rem}
.gl-row dd{margin:0;font-size:15.5px;color:var(--ash);word-break:keep-all}
.gl-row .cat{display:inline-block;font-size:14px;color:var(--soot);background:var(--stole-lt);padding:.05rem .5rem;margin-right:.5rem;vertical-align:1px}
.gl-row .go{background:none;border:0;border-bottom:1px solid var(--wax);color:var(--wax);cursor:pointer;font-size:14px;padding:0;margin-left:.4rem}
.gl-row.hide,.gl-group.hide{display:none}
.gloss .gl-group dl{display:block;margin:0}
@media (max-width:860px){.gl-row{grid-template-columns:1fr}}
/* glossary */
.gloss dl{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(2rem,4vw,4rem)}
.term{border-top:1px solid var(--thread);padding:1.6rem 0 2.4rem}
.term dt{font-size:clamp(22px,2.2vw,28px);font-weight:900;line-height:1.25}
.term dt .la{display:block;font-size:16px;font-weight:400;margin-top:.25rem}
.term dd{margin:.8rem 0 0;color:var(--ash);font-size:15px;word-break:keep-all}

/* sources */
.biblio{columns:2;column-gap:4rem;font-size:15px;margin:0;padding:0;list-style:none}
.biblio li{break-inside:avoid;border-top:1px solid var(--thread);padding:.9rem 0;word-break:keep-all}
.biblio li .la{display:block;font-size:15px}
.biblio li small{color:var(--ash);display:block}


/* rite order */
.order{margin-top:clamp(4rem,10vh,6rem)}
.order-note{color:var(--ash);font-size:15px;max-width:40em;word-break:keep-all;margin:0 0 2rem}
.order-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);gap:0;counter-reset:o;position:relative}
.order-list::before{content:"";position:absolute;left:0;right:0;top:1.05rem;height:1px;background:var(--thread)}
.order-list li{position:relative;padding:2.6rem .8rem 1.6rem 0;font-size:14px;color:var(--ash);word-break:keep-all}
.order-list li::before{counter-increment:o;content:counter(o);position:absolute;top:0;left:0;width:2.1rem;height:2.1rem;display:grid;place-items:center;border:1px solid var(--stole-lt);border-radius:50%;background:var(--soot);font-family:var(--latin);font-weight:600;color:var(--wax);font-size:16px}
.order-list li b{display:block;color:var(--bone);font-size:16px;font-weight:600;margin-bottom:.2rem}
.order-list li:nth-child(11)::before{background:var(--stole);color:#fff;border-color:var(--stole)}
/* science */
.sci-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(2rem,5vw,5rem);padding:clamp(3rem,8vh,5rem) 0;border-top:1px solid var(--thread);align-items:start}
.sci-block.wide{grid-template-columns:minmax(0,1fr)}
.sci-block>*{min-width:0}
#wound{overflow:hidden}
.sci-block h3{margin:.3rem 0 .9rem;font-size:clamp(24px,2.8vw,36px);font-weight:900;line-height:1.3;word-break:keep-all}
.sci-block p{word-break:keep-all;font-size:16px;color:var(--ash);max-width:36em}
.sci-block .hint{color:var(--wax);font-size:14px}
.ddx{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--thread);border:1px solid var(--thread)}
.ddx-h{grid-column:1/-1;margin:0;padding:.9rem 1.1rem;background:var(--soot);color:var(--wax);font-size:14px}
.ddx div{background:var(--soot);padding:1.1rem;display:flex;flex-direction:column;gap:.35rem}
.ddx b{font-size:17px;font-weight:600}
.ddx span{font-size:14px;color:var(--ash);word-break:keep-all;line-height:1.75}
.ddx em{font-style:normal;font-size:14px;color:var(--stole-lt);margin-top:auto}
.agency{border:1px solid var(--thread);padding:clamp(1rem,3vw,2rem);background:var(--soot)}
.ag-scroll{overflow-x:auto}
.agency svg{width:100%;min-width:560px;height:auto;display:block}
.ag-ctl label{white-space:nowrap}
.ag-box rect{fill:var(--soot2);stroke:var(--stole-lt);stroke-width:1.2}
.ag-box text{fill:var(--bone);font-family:var(--serif);font-size:17px;font-weight:600;text-anchor:middle}
.ag-box text.s{fill:var(--ash);font-size:14px;font-weight:400}
#agCmp rect{transition:stroke .3s,fill .3s}
#agCmp.ok rect{stroke:var(--wax);fill:color-mix(in srgb,var(--wax) 14%,var(--soot2))}
#agCmp.bad rect{stroke:var(--blood);fill:color-mix(in srgb,var(--blood) 22%,var(--soot2))}
.ag-line{fill:none;stroke:var(--ash);stroke-width:1.3}
#agEff,#agPl{stroke:var(--wax);stroke-dasharray:6 5}
.pk{fill:var(--bone)} .pk.pred{fill:var(--wax)}
.ag-ctl{display:flex;align-items:center;gap:1rem;margin:1.2rem 0 1rem;font-size:15px}
.ag-ctl input{flex:1;accent-color:var(--wax)}
.ag-ctl output{font-family:var(--latin);font-weight:600;font-size:22px;color:var(--wax);min-width:2.5em;text-align:right}
.ag-out{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 2rem}
.ag-out .lab{display:block;font-size:14px;color:var(--ash);margin-bottom:.3rem}
.meter{display:block;height:8px;background:var(--thread)}
.meter i{display:block;height:100%;width:20%;background:linear-gradient(90deg,var(--wax),var(--blood))}
.verdict{grid-column:1/-1;margin:.6rem 0 0;font-size:clamp(20px,2.2vw,26px);font-weight:900}
.verdict.bad{color:var(--blood)}
.studies{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--thread)}
.studies article{padding:1.4rem 0;border-bottom:1px solid var(--thread)}
.studies .yr{font-family:var(--latin);font-weight:600;font-size:30px;color:var(--wax);line-height:1}
.studies h4{margin:.4rem 0 .5rem;font-size:19px;font-weight:600;word-break:keep-all}
.studies p{margin:0 0 .5rem;font-size:15px;color:var(--ash);max-width:none}
.studies em{font-style:italic;font-family:var(--latin);font-size:15px;color:var(--stole-lt)}
.trauma{border:1px solid var(--thread);padding:1.6rem;background:var(--soot)}
.bar2{display:grid;grid-template-columns:5.5rem 1fr 3.5rem;gap:1rem;align-items:center;margin-bottom:.9rem;font-size:15px}
.bar2 .tr{height:12px;background:var(--thread)}
.bar2 .tr i{display:block;height:100%;width:var(--w);background:linear-gradient(90deg,var(--stole),var(--stole-lt));transform-origin:left}
.bar2 .n{font-family:var(--latin);font-weight:600;color:var(--wax);text-align:right}
.trauma p{font-size:14px;color:var(--ash);margin:.4rem 0 1.4rem}
.trauma blockquote{margin:0;padding:.7rem 1rem;border:1px solid var(--thread);background:color-mix(in srgb,var(--stole) 6%,transparent);font-size:15.5px;color:var(--bone);word-break:keep-all;line-height:1.85}
.evi{border-top:1px solid var(--thread)}
.evi-row{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr) minmax(0,15rem);gap:1.5rem;padding:1.1rem 0;border-bottom:1px solid var(--thread);font-size:15px;word-break:keep-all}
.evi-row span:first-child{font-weight:600;color:var(--bone)}
.evi-row span:nth-child(2){color:var(--ash)}
.evi-row span:last-child{color:var(--stole-lt);font-size:14px}
.evi-row.hd span{font-size:14px;color:var(--wax)!important;font-weight:400}
.risk{display:flex;flex-direction:column;gap:1px;background:var(--thread);border:1px solid var(--thread)}
.risk div{background:var(--soot);padding:1.3rem}
.risk b{font-size:17px;color:var(--wax)}
.risk .bad b{color:var(--blood)}
.risk p{margin:.4rem 0 0;font-size:15px}
.limit{border-top:1px solid var(--thread);padding-top:clamp(3rem,8vh,5rem)}
.limit p{font-size:clamp(18px,2vw,23px);line-height:1.8;color:var(--bone);max-width:34em;word-break:keep-all;margin:.6rem 0 0}
@media (max-width:860px){
  .order-list{grid-template-columns:1fr 1fr}
  .order-list::before{display:none}
  .sci-block{grid-template-columns:1fr}
  .ddx{grid-template-columns:1fr}
  .ag-out{grid-template-columns:1fr}
  .evi-row{grid-template-columns:1fr;gap:.4rem}
  .evi-row.hd{display:none}
}
/* epilogue one-line fix */
#epi h2{max-width:none}
.epi h2 .seg{display:inline-block}
.epi>div{width:100%}
.epi h2 .l1{display:block;white-space:nowrap;font-size:min(3.9vw,52px)}
.epi h2 .l2{display:block;font-size:clamp(17px,2.4vw,30px);font-weight:600;color:var(--ash);margin-top:.8rem;line-height:1.6}
.epi h2 .l2{max-width:30em;margin-left:auto;margin-right:auto;word-break:keep-all;text-wrap:balance}


/* debunk layer */
.now-ev{margin:.8rem 0 0!important;padding:.7rem .9rem;border:1px solid color-mix(in srgb,var(--bone) 22%,transparent);background:color-mix(in srgb,var(--bone) 6%,transparent);font-size:14px!important;color:var(--bone)!important;line-height:1.75;word-break:keep-all}
.now-ev b,.now-box b{display:block;font-size:14px;letter-spacing:.04em;color:var(--wax);margin-bottom:.2rem}
.now-box{margin:2.5rem 0 0;padding:1.1rem 1.3rem;border:1px solid var(--bone);font-size:16px;line-height:1.85;max-width:44em;word-break:keep-all}
.ev .now-ev{font-size:14px!important}
.ev.sci .yr{color:var(--bone)} .ev.sci .node{background:var(--bone);border-color:var(--bone)}
.ev.sci h3{color:var(--bone)}
.ev .tag{font-family:var(--serif);font-style:normal;font-size:14px;font-weight:600;background:var(--bone);color:var(--soot);padding:.05rem .4rem;margin-right:.5rem;vertical-align:2px}
.solved{display:inline-block;margin-left:0;font-size:14px;font-weight:600;color:var(--soot);background:var(--bone);padding:.02rem .4rem}
.stage .sci{font-size:14.5px!important;color:var(--ash);border:1px solid color-mix(in srgb,var(--bone) 30%,transparent);padding:.5rem .8rem;margin-top:.8rem!important}
#mSci[hidden]{display:none}
.flip-all{background:none;border:1px solid var(--bone);color:var(--bone);padding:.5rem 1.1rem;cursor:pointer;margin-bottom:1.6rem}
.flip-all:hover{background:var(--bone);color:var(--soot)}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;perspective:1400px}
.card{position:relative;height:300px;cursor:pointer;background:none;border:0;padding:0;text-align:left}
.card .in{position:absolute;inset:0;transform-style:preserve-3d}
.card .f,.card .b{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;padding:1.4rem;display:flex;flex-direction:column;border:1px solid var(--thread)}
.card .f{background:var(--soot2)}
.card .f .who{font-size:clamp(22px,2.2vw,28px);font-weight:900;line-height:1.3;word-break:keep-all}
.card .f .la{font-size:15px;margin-top:.3rem}
.card .f .q{margin-top:auto;font-size:14px;color:var(--ash);word-break:keep-all}
.card .f .q::after{content:"";display:inline-block;width:1em;height:1em;margin-left:.35em;vertical-align:-.12em;background:var(--wax);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-3-6.7L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 1 1-3-6.7L21 8'/%3E%3Cpath d='M21 3v5h-5'/%3E%3C/svg%3E") center/contain no-repeat}
.card .b{background:var(--bone);color:var(--soot);transform:rotateY(180deg);border-color:var(--bone)}
.card .b .lab{font-size:14px;font-weight:600;color:var(--blood-inv)}
.card .b .what{font-size:clamp(22px,2.2vw,28px);font-weight:900;line-height:1.3;margin:.2rem 0 .7rem;word-break:keep-all}
.card .b p{font-size:14px;line-height:1.75;margin:0;word-break:keep-all}
.card .b em{margin-top:auto;font-style:normal;font-size:14px}
.toll-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;gap:1px;background:var(--thread);border:1px solid var(--thread)}
.toll-grid div{background:var(--soot);padding:1.6rem 1.2rem;display:flex;flex-direction:column;gap:.6rem}
.toll-grid .num{white-space:nowrap;font-family:var(--latin);font-weight:600;font-size:clamp(34px,3.6vw,58px);line-height:1;color:var(--blood)}
.toll-grid .zero .num{color:var(--bone)}
.toll-grid span{font-size:14.5px;color:var(--ash);word-break:keep-all;line-height:1.75}
.toll-grid em{margin-top:auto;font-style:normal;font-size:14px;color:var(--stole-lt)}
@media (max-width:860px){.toll-grid{grid-template-columns:1fr 1fr}.toll-grid .zero{grid-column:1/-1}}


/* guide layer */
.today{list-style:none;margin:0;padding:0;counter-reset:t;border-top:1px solid var(--thread)}
.today li{border-bottom:1px solid var(--thread)}
.today a{display:grid;grid-template-columns:3.2rem minmax(0,1fr) auto;gap:1rem;align-items:baseline;padding:1.3rem 0;text-decoration:none;color:var(--bone)}
.today a::before{counter-increment:t;content:counter(t);font-family:var(--latin);font-weight:600;font-size:30px;color:var(--wax);line-height:1}
.today a::after{content:"";align-self:center;width:1.1em;height:1.1em;background:var(--ash);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .3s}
.today a:hover::after{transform:translateX(6px);background:var(--wax)}
.today b{display:block;font-size:clamp(19px,2.2vw,27px);font-weight:900;line-height:1.4;word-break:keep-all}
.today .tx{display:block}
.today .sub{display:block;font-size:15px;color:var(--ash);margin-top:.3rem;word-break:keep-all}
.today.end a::before{content:"";align-self:center;width:1.6rem;height:1.6rem;background:var(--bone);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/contain no-repeat}
.today-sec.end{background:var(--soot2)}
.bridge{margin-top:clamp(3rem,8vh,5rem);display:grid;grid-template-columns:1fr auto 1fr;gap:1.4rem;align-items:stretch;border:1px solid var(--thread)}
.bridge>div{padding:1.2rem 1.4rem}
.bridge>div:last-child{background:color-mix(in srgb,var(--bone) 7%,transparent)}
.bridge span{display:block;font-size:14px;color:var(--wax);margin-bottom:.3rem}
.bridge>div:first-child span{color:var(--ash)}
.bridge p{margin:0;font-size:15.5px;line-height:1.75;word-break:keep-all;max-width:none}
.bridge>div:first-child p{color:var(--ash)}
.bridge i{align-self:center;width:28px;height:1px;background:var(--bone);position:relative}
.bridge i::after{content:"";position:absolute;right:0;top:-4px;border:4px solid transparent;border-left:7px solid var(--bone);border-right:0}
.bridge-sec{padding:0 0 clamp(4rem,10vh,6rem);background:var(--soot)}
.help-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--thread);border:1px solid var(--thread)}
.help-grid div{background:var(--soot);padding:1.4rem;display:flex;flex-direction:column;gap:.6rem}
.help-grid b{font-size:20px;font-weight:900}
.help-grid p{margin:0;font-size:14.5px;color:var(--ash);line-height:1.8;word-break:keep-all}
.help-grid em{margin-top:auto;font-style:normal;font-size:14px;color:var(--stole-lt)}
.help-grid .urgent b{color:var(--blood)}
.help-row{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(2rem,4vw,4rem);margin-top:clamp(2.5rem,6vh,4rem)}
.help-row b{display:block;font-size:20px;font-weight:900;margin-bottom:.8rem}
.help-row ul{margin:0;padding-left:1.1rem;color:var(--ash);font-size:15.5px;line-height:1.9;word-break:keep-all}
.lines{border:1px solid var(--bone);padding:1.4rem}
.lines p{margin:.5rem 0 0;font-size:14.5px;color:var(--ash);word-break:keep-all}
.lines .ln{display:block;font-family:var(--latin);font-weight:600;font-size:34px;color:var(--bone);line-height:1.1}
.lines .sm{font-size:14px;margin-top:1rem}
@media (max-width:860px){
  .help-grid{grid-template-columns:1fr}
  .help-row{grid-template-columns:1fr}
  .bridge{grid-template-columns:1fr}
  .bridge i{justify-self:center;transform:rotate(90deg)}
}

/* epilogue */
.epi{min-height:100vh;display:grid;place-items:center;text-align:center;padding:14vh 6vw;overflow:hidden}
.candle{width:16px;margin:0 auto 3rem;position:relative;height:120px}
.flame{position:absolute;left:50%;top:0;width:14px;height:34px;margin-left:-7px;border-radius:50% 50% 45% 45%/65% 65% 35% 35%;background:radial-gradient(ellipse at 50% 80%,#fff 0%,#ffe7a8 30%,var(--wax) 60%,transparent 75%);filter:blur(.4px) drop-shadow(0 0 18px rgba(217,180,106,.8));transform-origin:50% 90%;animation:flick 1.8s ease-in-out infinite}
.wick{position:absolute;left:50%;top:32px;width:2px;height:8px;margin-left:-1px;background:#3a2c20}
.stick{position:absolute;left:0;right:0;top:40px;bottom:0;background:linear-gradient(90deg,#cdbfa2,#f3ead6 45%,#bfae8c);border-radius:2px 2px 0 0}
@keyframes flick{0%,100%{transform:scale(1,1) rotate(-1deg)}30%{transform:scale(.94,1.06) rotate(1.5deg)}60%{transform:scale(1.04,.96) rotate(-2deg)}80%{transform:scale(.97,1.03) rotate(1deg)}}
.epi h2{margin:0 auto;font-weight:900;font-size:clamp(28px,4.2vw,56px);line-height:1.4;word-break:keep-all;max-width:15em}
.epi .la{display:block;font-size:clamp(18px,1.6vw,22px);margin-top:1.4rem}
.epi .note{margin:4rem auto 0;max-width:36em;font-size:14px;color:var(--ash);line-height:1.9;word-break:keep-all}

@media (max-width:860px){
  .split,.wound-grid,.two,.tax-block,.ety-row{grid-template-columns:1fr}
  .fallen{border-left:0;border-top:1px solid var(--thread);padding:2rem 0 0;min-height:360px}
  .decree,.hier{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .gloss dl{grid-template-columns:1fr}
  .biblio{columns:1}
  .rite-inner{grid-template-columns:1fr;grid-template-rows:40vh 1fr;align-content:center}
  .eye-wrap{height:40vh;gap:2vh}
  .eye,.wave{width:min(60vw,260px)}
  .stages{height:44vh}
  .stage h3{font-size:clamp(40px,12vw,64px)}
  .stage p{font-size:15.5px}
  .spec-line{grid-template-columns:repeat(2,1fr);row-gap:1rem}
  .case button{grid-template-columns:4.5rem 1fr auto;gap:1rem}
  .case .yr{font-size:26px}
  .case .inner{grid-template-columns:1fr}
  .panel{grid-template-columns:1fr}
  .panel .sig{width:90px;height:90px}
  .path .bar{height:110px}.path:nth-child(2) .bar{height:70px}.path:nth-child(3) .bar{height:150px}
  .kinds{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.cue i,.flame{animation:none}}

/* 사이트 공통 장치 — 좌측 상단 복귀(차례 버튼과 같은 모양), 맨 아래 사이트 링크·저작권 */
.site-back{position:fixed;top:calc(14px + env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));z-index:71;
  display:inline-flex;align-items:center;gap:.4rem;min-height:38px;padding:.45rem .9rem .45rem .6rem;font-size:14px;color:var(--bone);text-decoration:none;
  background:color-mix(in srgb,var(--soot) 70%,transparent);backdrop-filter:blur(8px);border:1px solid var(--thread)}
.site-back svg{flex-shrink:0;display:block}
.site-back:hover,.site-back:focus-visible{border-color:var(--wax)}
@media (max-width:600px){.site-back span{display:none}.site-back{padding:.45rem .6rem}.site-back::after{content:"";position:absolute;inset:-4px}}
.site-foot{border-top:1px solid var(--thread);padding:2.4rem max(16px,6vw) calc(2.4rem + env(safe-area-inset-bottom,0px));font-size:14px;color:var(--ash);text-align:center}
.site-foot .site-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.4rem;margin:0 0 1.2rem}
.site-foot .site-nav a{color:var(--bone);text-decoration:none;padding:.4rem 0}
.site-foot .site-nav a:hover,.site-foot .site-nav a:focus-visible{color:var(--wax);text-decoration:underline}
.site-foot p{margin:.2rem 0}

/* 프셀로스 동심원 — 좁은 화면에선 도식 글자가 14px 밑으로 줄어 목록으로 따로 보인다 */
.ring-legend{display:none}
@media (max-width:1180px){
  .rings .rl{display:none}
  .ring-legend{display:grid;gap:.5rem;margin:1rem 0 0;padding:0;list-style:none;counter-reset:rg}
  .ring-legend li{display:grid;grid-template-columns:2rem 3.5rem minmax(0,1fr);align-items:baseline;gap:.5rem;border-bottom:1px solid var(--thread);padding:.4rem 0;font-size:15px}
  .ring-legend li::before{counter-increment:rg;content:counter(rg);font-family:var(--latin);font-weight:600;color:var(--wax)}
  .ring-legend .la{font-size:15px}
}
.biblio li small{font-size:14px}
/* 비교기 도식은 좁은 화면에서 0.74배로 줄어든다 — 그만큼 글자를 키워 둔다 */
@media (max-width:860px){
  .ag-box text{font-size:20px;transform:translateY(-3px)}
  .ag-box text.s{font-size:19px;transform:translateY(4px)}
}
/* 동심원 라벨이 고리 선과 겹친다 — 바탕색 테두리로 선을 가린다 */
.rings text{paint-order:stroke;stroke:var(--soot);stroke-width:5px;stroke-linejoin:round}
