/* GetLayers material layers stay behind the original art and the readable text. */
.hero-art{animation:castle-drift 18s ease-in-out infinite alternate;animation-play-state:paused}
.hero.is-running .hero-art{animation-play-state:running}
.hero h1 .title-last{width:fit-content;max-width:100%;padding-right:.13em}
:root{--trans-paint:linear-gradient(110deg,#5bcefa 0%,#5bcefa 12%,#f5a9b8 28%,#fff 46%,#fff 54%,#f5a9b8 72%,#5bcefa 88%,#5bcefa 100%)}
.trans-word{background-image:var(--trans-paint);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:trans-colors 7s linear infinite;animation-play-state:paused;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.trans-word.is-word-moving{animation-play-state:running}
:root[data-theme='light'] .trans-word:not(.title-last){background-image:var(--trans-paint),linear-gradient(#24131d,#24131d);background-size:200% 100%,100% 100%;background-clip:text,padding-box;-webkit-background-clip:text,padding-box;padding:.02em .12em;margin:0 -.12em;border-radius:.15em}
@media(forced-colors:active){.trans-word{background:none!important;color:CanvasText!important;-webkit-text-fill-color:CanvasText!important;animation:none!important}}
@keyframes trans-colors{from{background-position:0% 50%}to{background-position:200% 50%}}
@keyframes castle-drift{from{transform:scale(1.025) translateX(0)}to{transform:scale(1.095) translateX(-1.2%)}}
.hero-glass{position:absolute;inset:42% -8% 0 25%;z-index:-2;mix-blend-mode:screen;opacity:.42;pointer-events:none;mask-image:linear-gradient(transparent,#000 32%,#000 76%,transparent),linear-gradient(90deg,transparent,#000 46%);mask-composite:intersect}
.hero-glass canvas{width:100%;height:100%;display:block}
canvas[data-atmosphere]{opacity:0}
canvas[data-atmosphere][data-ready='true']{opacity:1}
.reading-stage{position:relative;isolation:isolate;clip-path:inset(0);background:var(--void)}
.reading-material{position:fixed;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(99deg,#170d20 0px,#331329 24px,#100b15 53px,#482031 76px,#160c1c 105px)}
.reading-material canvas{width:100%;height:100%;display:block}
.reading-material:after{content:'';position:absolute;inset:0;background:#0b07093d}
.reading-grid{position:relative;background-image:url('art/paper-grain.svg'),linear-gradient(90deg,transparent 0%,#0b07096b 15%,#0b0709e8 31%,#0b0709ef 71%,#0b0709d1 87%,transparent 100%)}
.reading-aside{padding:0;background:none}
.reader-motion{display:grid;place-items:center;width:30px;height:32px;padding:0;border:1px solid var(--line);background:var(--surface);color:var(--silver);font:11px var(--mono)}
.reader-motion .pause-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
:root[data-theme='light'] .reading-material{background:repeating-linear-gradient(99deg,#eee3dc,#dbc2cc 24px,#e7d5d3 53px,#c9a3b0 76px,#eee3dc 105px)}
:root[data-theme='light'] .reading-material:after{background:#f2ede74d}
:root[data-theme='light'] .reading-grid{background-image:url('art/paper-grain.svg'),linear-gradient(90deg,transparent 0%,#f2ede78b 15%,#f2ede7ed 31%,#f2ede7ef 71%,#f2ede7db 87%,transparent 100%)}

/* Stable frosted surfaces share the existing scene; only control reflections move. */
:root{--glass-fill:#27131e9e;--glass-fallback:#271a24;--glass-edge:#e6a2bb52;--glass-highlight:#fff3f145;--glass-rose:#f5a9b81a;--glass-shadow:#03010359;--glass-button:#e7b9cf0d;--glass-glint:#fff1f12e}
:root[data-theme='light']{--glass-fill:#f2e1e7ba;--glass-fallback:#eedee3;--glass-edge:#926d8657;--glass-highlight:#ffffffc4;--glass-rose:#dba9be21;--glass-shadow:#754c6d1f;--glass-button:#ffffff38;--glass-glint:#ffffff9c}
.masthead,.readerbar,.contents,.spoiler,.site-footer{background-color:var(--glass-fallback);background-image:linear-gradient(120deg,var(--glass-highlight) -60%,transparent 35%,var(--glass-rose) 100%);border:1px solid var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-highlight),inset 0 -1px 0 var(--glass-rose),0 12px 32px -20px var(--glass-shadow)}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.masthead,.readerbar,.contents,.spoiler,.site-footer{background-color:var(--glass-fill);-webkit-backdrop-filter:blur(10px) saturate(125%);backdrop-filter:blur(10px) saturate(125%)}}
.masthead{--bone:#efe8e4;--silver:#b8bcc6;--accent:#ff5a6e;--glass-edge:#e6a2bb52;--glass-button:#e7b9cf0d;--glass-glint:#fff1f12e;--glass-rose:#f5a9b81a;--glass-highlight:#fff3f145;top:0;height:90px;padding:0;border:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--bone);isolation:isolate}
.masthead:before{content:'';position:absolute;inset:0 calc(-1 * var(--rail));z-index:-1;background:linear-gradient(110deg,#24121b59,#170c1333 55%,#3a172a3d);border-bottom:1px solid #efd2df29;box-shadow:inset 0 -1px 0 #ffffff05;-webkit-backdrop-filter:blur(6px) saturate(115%);backdrop-filter:blur(6px) saturate(115%);pointer-events:none}
.masthead-label,.masthead .language button{color:var(--silver)}
.masthead .language button[aria-pressed='true']{color:var(--bone);border-color:var(--accent)}
.masthead .language button{background:none;border-radius:0}
.readerbar{border-left:0;border-right:0}
.contents{padding:20px 17px 6px;border-radius:16px}
.contents summary{border-color:var(--glass-edge)}
.aside-note{border-color:var(--glass-edge);margin-top:30px}
.spoiler{border-radius:14px;border-left:2px solid var(--accent)}
.site-footer{position:relative;border-width:1px 0 0;background-image:linear-gradient(105deg,var(--glass-rose),transparent 45%,var(--glass-rose));box-shadow:inset 0 1px 0 var(--glass-highlight),0 -16px 40px -28px var(--glass-shadow)}
.footer-meta{margin-bottom:0}
.theme-toggle,.pause-motion,.reader-motion,.language button,.footer-links a{position:relative;isolation:isolate;overflow:hidden;border-radius:8px;background:var(--glass-button);transition:background-color .2s,border-color .2s,box-shadow .2s}
.theme-toggle{border-radius:50%;border-color:var(--glass-edge)}
.pause-motion{--glass-fill:#27131e9e;--glass-edge:#e6a2bb52;--glass-highlight:#fff3f145;--glass-rose:#f5a9b81a;--glass-glint:#fff1f12e;position:absolute;background:var(--glass-fill);color:#efe8e4;border-color:var(--glass-edge);box-shadow:inset 0 1px 0 var(--glass-highlight);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.reader-motion{border-color:var(--glass-edge)}
.footer-links a{padding:12px 16px;border:1px solid var(--glass-edge);text-decoration:none;box-shadow:inset 0 1px 0 var(--glass-highlight)}
.theme-toggle:after,.pause-motion:after,.reader-motion:after,.language button:after,.footer-links a:after{content:'';position:absolute;inset:-20% -80%;z-index:-1;background:linear-gradient(110deg,transparent 35%,var(--glass-glint) 50%,transparent 65%);transform:translateX(-65%);pointer-events:none}
@media(hover:hover){:is(.theme-toggle,.pause-motion,.reader-motion,.language button,.footer-links a):hover{background-color:var(--glass-rose);border-color:var(--glass-highlight)}:is(.theme-toggle,.pause-motion,.reader-motion,.language button,.footer-links a):hover:after{transform:translateX(65%);transition:transform .7s ease}}
:is(.theme-toggle,.pause-motion,.reader-motion,.language button,.footer-links a):is(:active,:focus-visible){background-color:var(--glass-rose);box-shadow:inset 0 1px 0 var(--glass-highlight),0 0 16px var(--glass-rose)}
:is(.theme-toggle,.pause-motion,.reader-motion,.language button,.footer-links a):is(:active,:focus-visible):after{transform:translateX(65%);transition:transform .5s ease}
@media(max-width:760px){.hero-glass{inset:38% -30% 0 -8%;opacity:.54}.masthead{top:0;margin:0 var(--rail);height:76px;padding:0;border-radius:0}.readerbar-inner{padding:0 18px}.readerbar-controls{gap:6px}.readerbar-title{font-size:9px!important;letter-spacing:0!important;white-space:normal;max-width:180px;line-height:1.5!important}.reader-motion{width:26px;min-width:26px}.reading-grid{padding-left:28px;padding-right:28px;background-image:url('art/paper-grain.svg'),linear-gradient(90deg,#0b070954,#0b0709e8 12%,#0b0709ec 88%,#0b070954)}:root[data-theme='light'] .reading-grid{background-image:url('art/paper-grain.svg'),linear-gradient(90deg,#f2ede750,#f2ede7eb 12%,#f2ede7ed 88%,#f2ede750)}.contents{padding:10px 17px 14px}.footer-links{gap:12px;flex-wrap:wrap}.footer-links a{padding:12px}.readerbar,.contents,.spoiler,.site-footer{-webkit-backdrop-filter:blur(10px) saturate(115%);backdrop-filter:blur(10px) saturate(115%)}}
@media(prefers-reduced-motion:reduce){.hero-art{animation:none!important;transform:none}}
@media print{.hero-glass,.reading-material,.reader-motion{display:none!important}.reading-stage{clip-path:none;background:#fff}.reading-grid{background-image:none}.reading-aside{display:none}.hero-art{animation:none}.trans-word,.hero h1 .title-last,:root[data-theme='light'] .trans-word:not(.title-last){background:none;color:#111;-webkit-text-fill-color:#111;animation:none;padding:0;margin:0}.spoiler{background:#fff;border-color:#999;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}}
