:root{--ink:#263c4a;--muted:#687575;--paper:#fffdf5;--gold:#bc914c;--blue:#315f71;--line:#d8c9a7}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 20% 0,#fff9e5,transparent 65%),linear-gradient(130deg,#e5eee9,#e6edf2 65%,#eae5ed);font:17px/1.6 Georgia,"Times New Roman",serif;min-height:100vh}
#hub:not([hidden]){position:relative;isolation:isolate;min-height:100svh;padding-top:.25rem}
#hub:not([hidden])::before{content:"";position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,#17133452 0%,#100f2ad1 100%),url("assets/hub-journey-fog-background-v1.png") center/cover no-repeat}
#hub:not([hidden])::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 8% 74%,#9b78c342,transparent 36%),radial-gradient(ellipse at 94% 64%,#8a63bb4f,transparent 34%)}
button,input,a{-webkit-tap-highlight-color:transparent}
button,input{font:inherit}
button,a{touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.45}
button,a,input{outline-offset:5px}
:focus-visible{outline:3px solid #417b97}
h1,h2{font-weight:400;line-height:1.12;text-wrap:balance}
h1{font-size:clamp(2.5rem,5vw,4.5rem)}
h2{font-size:clamp(2rem,3.3vw,3.6rem)}
p{margin:0 0 1.2rem}
.primary{display:inline-flex;align-items:center;justify-content:center;gap:2rem;min-height:54px;padding:.9rem 1.7rem;border:1px solid #487285;border-radius:6px;background:var(--blue);color:#fffdf2;text-decoration:none;font:500 1rem/1.4 Georgia,serif;box-shadow:0 6px 18px #264c6220;transition:background .25s,transform .25s}
.primary:hover{background:#244e60;transform:translateY(-2px)}
.text-button{border:0;background:transparent;color:var(--ink);padding:.8rem;font-size:.95rem;min-height:44px}
.eyebrow{color:#856a42;font:600 .7rem/1.5 Arial,sans-serif;text-transform:uppercase;letter-spacing:.2em}
.cover{position:relative;isolation:isolate;min-height:max(780px,100svh);overflow:hidden;display:grid;place-items:center;padding:5rem 1rem 11rem;background:#f3f3e9}
.cover::before{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,#f7f6eac9,#fff8e7e8 48%,#eff3efe0),url("missing-lantern/assets/hero-empty-platform-v1.png") center/cover}
.cover__content{text-align:center;z-index:2;position:relative}
.brand{width:280px;height:145px;object-fit:contain;margin-bottom:1rem;background:#fff;border-radius:50%;padding:2px 20px}
.cover h1{font-size:clamp(3.4rem,6vw,6.8rem);margin:0 0 2rem;letter-spacing:-.055em;text-shadow:0 3px 28px #fffffff0}
.cover h1 em{font-weight:400;color:#476b6b}
.cover__heroes{position:absolute;inset:0;pointer-events:none}
.cover__hero{position:absolute;left:50%;top:50%;object-fit:contain;width:clamp(68px,9vw,150px);height:clamp(68px,9vw,150px);opacity:0;transform:translate(-50%,-50%);animation:appear 2.5s ease both;animation-delay:calc(var(--order)*.24s);filter:drop-shadow(0 12px 20px #60533120)}
.cover__hero--tuman{left:50%;top:calc(50% - min(36vw,36svh));width:clamp(90px,12vw,190px);height:clamp(90px,12vw,190px);animation:appear-fog 3s ease both;filter:drop-shadow(0 18px 28px #2e155f66)}
.cover__hero--leks{left:calc(50% + min(21.17vw,21.17svh));top:calc(50% - min(29.12vw,29.12svh))}
.cover__hero--grammi{left:calc(50% + min(34.24vw,34.24svh));top:calc(50% - min(11.12vw,11.12svh))}
.cover__hero--spiki{left:calc(50% + min(34.24vw,34.24svh));top:calc(50% + min(11.12vw,11.12svh))}
.cover__hero--lissi{left:calc(50% + min(21.17vw,21.17svh));top:calc(50% + min(29.12vw,29.12svh))}
.cover__hero--villi{left:50%;top:calc(50% + min(36vw,36svh));bottom:auto;width:clamp(68px,9vw,150px);height:clamp(68px,9vw,150px)}
.cover__hero--viktori{left:calc(50% - min(21.17vw,21.17svh));top:calc(50% + min(29.12vw,29.12svh))}
.cover__hero--kingsli{left:calc(50% - min(34.24vw,34.24svh));top:calc(50% + min(11.12vw,11.12svh))}
.cover__hero--frosti{left:calc(50% - min(34.24vw,34.24svh));top:calc(50% - min(11.12vw,11.12svh))}
.cover__hero--ridi{left:calc(50% - min(21.17vw,21.17svh));top:calc(50% - min(29.12vw,29.12svh))}
@keyframes appear{from{opacity:0;transform:translate(-50%,calc(-50% + 12px))}to{opacity:1;transform:translate(-50%,-50%)}}
@keyframes appear-fog{from{opacity:0}to{opacity:.9}}
.ticket-office{min-height:100svh;display:grid;grid-template-columns:1.1fr 1fr;position:relative;padding:4.5rem clamp(1rem,6vw,7rem);gap:0;align-items:stretch}
.ticket-office__back{position:absolute;top:1rem;left:clamp(1rem,6vw,7rem)}
.ticket-office__scene{min-height:650px;border-radius:180px 8px 8px 8px;overflow:hidden;box-shadow:0 20px 60px #40505225}
.ticket-office__scene img{display:block;width:100%;height:100%;object-fit:cover;object-position:38% center}
.ticket-office__paper{align-self:center;position:relative;z-index:1;margin-left:-2rem;padding:2.5rem clamp(1.5rem,4vw,5rem);background:var(--paper);border:1px solid var(--line);box-shadow:0 15px 45px #55452c12;max-width:650px;border-radius:4px}
.ticket-office__paper::before{content:"";position:absolute;inset:10px;border:1px solid #d8c9a759;pointer-events:none}
.ticket-office__villi{width:112px;height:112px;object-fit:contain;float:right;margin:0 0 1rem 1rem}
.ticket-office h1{margin:.5rem 0 1.4rem;font-size:clamp(2.5rem,4vw,4rem)}
.ticket-office form{display:grid;gap:.7rem;clear:both}
.ticket-office label{font-size:.9rem}
.ticket-office input{width:100%;min-width:0;min-height:54px;padding:.6rem .8rem;border:1px solid #bcbaa4;border-radius:4px;background:#fffefb;color:var(--ink);letter-spacing:.04em}
.ticket-office form .primary{margin-top:.3rem}
.feedback{color:#8e3e44;min-height:1.5rem;font-size:.95rem;margin:0}
.demo-note{font: .75rem/1.6 Arial,sans-serif;color:var(--muted);margin:1.3rem 0 0}
.demo-note code{white-space:nowrap}
.library{width:min(1440px,calc(100% - 5rem));margin:auto;padding:0 0 2.5rem}
.library__header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:88px;background:#eaf0eae8;backdrop-filter:blur(12px);padding:.5rem 0;margin-bottom:1rem}
#hub:not([hidden]) .library__header{background:#1d183bc9;color:#fffaf0}
#hub:not([hidden]) .text-button{color:#fffaf0}
.achievement-bookmark{align-self:flex-start;display:inline-flex;gap:1.5rem;align-items:center;min-height:58px;padding:.8rem 1.3rem;color:#fffaf0;background:#527672;border-radius:0 0 5px 5px;text-decoration:none;font-size:.95rem;box-shadow:0 6px 12px #23484420;border-bottom:3px solid #c9ae6c}
#hub:not([hidden]) .achievement-bookmark{background:#4d3974;box-shadow:0 6px 14px #100b2b75}
.achievement-bookmark:hover,#hub:not([hidden]) .achievement-bookmark:hover{background:#3f6662}
#hub:not([hidden]) .achievement-bookmark:hover{background:#3e2c64}
.achievement-bookmark span{font-size:1.4rem}
.travel-book{position:relative;perspective:2400px;filter:drop-shadow(0 22px 25px #43544b29);scroll-margin-top:100px}
.travel-book::before{content:"";position:absolute;inset:12px -9px -13px;background:#8eaa9c;border:1px solid #688b80;border-radius:7px;box-shadow:0 4px 0 #759084,0 8px 0 #506c60;z-index:-1}
#hub:not([hidden]) .travel-book{filter:drop-shadow(0 22px 28px #100b2b8c)}
#hub:not([hidden]) .travel-book::before{background:#5a467c;border-color:#342452;box-shadow:0 4px 0 #49386a,0 8px 0 #2b2045}
.travel-book__pages{position:relative;display:grid;grid-template-columns:1fr 1fr;min-height:620px;background:var(--paper);border-radius:5px;transform-style:preserve-3d}
.travel-book__pages::after{content:"";position:absolute;pointer-events:none;top:0;bottom:0;left:50%;width:38px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#887a581b 42%,#8a79532f 49%,#fffdf599 53%,transparent);z-index:5}
.book-page-wrap{min-width:0;position:relative}
.book-page{height:100%;min-height:620px;padding:clamp(1.5rem,4vw,4rem);position:relative;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse at 40% 0,#fffef9,transparent 65%),var(--paper);overflow:hidden}
.book-page h2{margin:.5rem 0 1.7rem}
.book-page h2:focus{outline:none}
.book-page--portrait{align-items:center;background:radial-gradient(ellipse,#e8eddf 5%,#fffdf5 68%)}
.welcome-portrait{width:min(100%,360px);height:auto;margin:1.4rem 0}
.signature{font-style:italic;font-size:1.15rem;color:#738473;margin:1rem 0 0}
.book-page--welcome .primary{align-self:flex-start;margin-top:1rem}
.welcome-copy{color:var(--muted);font-size:1.15rem;line-height:1.9}
.travel-book__pages--full{grid-template-columns:1fr}
.travel-book__pages--full::after{opacity:.25}
.book-page--map{text-align:center;padding:2rem 3rem;align-items:center}
.book-page--map h2{margin:.2rem 0 1rem;font-size:2.4rem}
.map-preview{padding:0;border:0;background:transparent;cursor:zoom-in;display:block;width:100%;max-width:1000px}
.map-preview img{display:block;width:100%;max-height:540px;object-fit:contain;border-radius:3px}
.map-caption{font-style:italic;color:var(--muted);font-size:.95rem;margin:1rem 0 0}
.book-page--chapter{padding:2rem;justify-content:center}
.chapter-card{display:flex;flex-direction:column;align-items:stretch;width:100%;text-align:center;color:var(--ink);background:transparent;border:0;padding:0;min-width:0;font:inherit}
button.chapter-card:hover .chapter-art{box-shadow:0 15px 26px #77643a26;transform:translateY(-3px)}
.chapter-art{position:relative;display:grid;place-items:center;aspect-ratio:16/10;width:100%;overflow:hidden;background:#f0eadb;border:1px solid #c8b78c55;border-radius:3px;transition:transform .4s,box-shadow .4s}
.chapter-art img{display:block;width:100%;height:100%;object-fit:contain}
.chapter-card h2{font-size:clamp(1.65rem,2.6vw,2.6rem);margin:1.8rem .5rem 1.1rem;overflow-wrap:anywhere}
.progress-trail{width:68%;height:3px;background:#d7d6c9;display:block;border-radius:50%;margin:.8rem auto 0;text-align:left}
.progress-trail i{display:block;height:100%;width:8%;border-radius:50%;background:#d5af59;box-shadow:0 0 9px #e6b950c9,0 0 20px #eed297}
.chapter-card--revision .progress-trail i{width:45%}
.chapter-card--pending .progress-trail i{width:75%}
.chapter-card--approved .progress-trail i{width:100%}
.chapter-card--fog .progress-trail i{width:0;box-shadow:none}
.unwritten-scene{width:100%;height:100%;background:radial-gradient(ellipse at 25% 80%,#e6e6e6,transparent 65%),linear-gradient(140deg,#e4e9e7,#d9d8e2)}
.chapter-fog{position:absolute;inset:-10%;background:radial-gradient(ellipse at 20% 55%,#f4f2f9eb,transparent 60%),radial-gradient(ellipse at 90% 20%,#b7aec8b0,transparent 65%),linear-gradient(20deg,#d7d9e0d9,#ece9f5ad);filter:blur(9px)}
.chapter-card--fog h2{color:#777a86}
.book-page--unwritten{text-align:center;background:radial-gradient(ellipse at bottom,#e4e2ed,transparent 70%),var(--paper)}
.book-page--unwritten h2{color:#87918e;font-style:italic}
.book-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:2rem 0 0}
.book-controls button{border:1px solid #9caea5;border-radius:5px;color:var(--ink);background:#fffdf599;min-height:48px;padding:.65rem 1.2rem}
.book-controls p{font-size:.85rem;color:var(--muted);margin:0;text-align:center}
.turning-leaf{position:absolute;z-index:10;inset:0 auto 0 50%;width:50%;overflow:hidden;background:var(--paper);transform-origin:left center;backface-visibility:hidden;will-change:transform,filter;animation:turn-next 1.3s cubic-bezier(.22,.67,.24,1) forwards;box-shadow:-12px 0 35px #5a523528}
.turning-leaf::before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;background:linear-gradient(90deg,#34284b26 0%,transparent 18%,#fffdf180 48%,transparent 78%,#2c214426 100%);mix-blend-mode:multiply;animation:leaf-light-next 1.3s ease-in-out both}
.turning-leaf--previous{left:0;transform-origin:right center;animation-name:turn-previous}
.turning-leaf--previous::before{animation-name:leaf-light-previous}
.leaf-snapshot{display:grid;grid-template-columns:1fr 1fr;width:200%;height:100%;margin-left:-100%}
.leaf-snapshot>.book-page:only-child{grid-column:1/-1}
.turning-leaf--previous .leaf-snapshot{margin-left:0}
@keyframes turn-next{0%{transform:rotateY(0) rotateZ(0) skewY(0);filter:drop-shadow(-7px 0 7px #261c3a18)}16%{transform:translateX(-1.5%) rotateY(-16deg) rotateZ(.45deg) skewY(-.45deg);filter:drop-shadow(-16px 2px 13px #261c3a44)}48%{transform:translateX(-6%) rotateY(-88deg) rotateZ(1.1deg) skewY(-1.1deg);filter:drop-shadow(-26px 5px 20px #261c3a66)}72%{transform:translateX(-3%) rotateY(-145deg) rotateZ(-.5deg) skewY(.5deg);filter:drop-shadow(-16px 2px 15px #261c3a42)}100%{transform:rotateY(-180deg) rotateZ(0) skewY(0);filter:drop-shadow(-7px 0 7px #261c3a10)}}
@keyframes turn-previous{0%{transform:rotateY(0) rotateZ(0) skewY(0);filter:drop-shadow(7px 0 7px #261c3a18)}16%{transform:translateX(1.5%) rotateY(16deg) rotateZ(-.45deg) skewY(.45deg);filter:drop-shadow(16px 2px 13px #261c3a44)}48%{transform:translateX(6%) rotateY(88deg) rotateZ(-1.1deg) skewY(1.1deg);filter:drop-shadow(26px 5px 20px #261c3a66)}72%{transform:translateX(3%) rotateY(145deg) rotateZ(.5deg) skewY(-.5deg);filter:drop-shadow(16px 2px 15px #261c3a42)}100%{transform:rotateY(180deg) rotateZ(0) skewY(0);filter:drop-shadow(7px 0 7px #261c3a10)}}
@keyframes leaf-light-next{0%,100%{opacity:.2;transform:translateX(0)}48%{opacity:.8;transform:translateX(-12%)}}
@keyframes leaf-light-previous{0%,100%{opacity:.2;transform:translateX(0)}48%{opacity:.8;transform:translateX(12%)}}
dialog{border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);width:min(560px,calc(100% - 2rem));padding:2.5rem;max-height:90svh;box-shadow:0 30px 80px #21394640}
dialog::backdrop{background:#203e4f85;backdrop-filter:blur(5px)}
dialog h2{font-size:2rem;margin:1rem 0}
.dialog-close{position:absolute;right:.7rem;top:.7rem;border:0;background:#e8eadf;color:var(--ink);width:44px;height:44px;border-radius:50%;font-size:1.5rem}
.map-dialog{width:min(1440px,calc(100% - 2rem));max-width:1440px;padding:1.4rem}
.map-dialog h2{font-size:1.5rem;margin:.3rem 3rem 1rem 0}
.map-dialog img{display:block;width:100%;max-height:calc(90svh - 6rem);object-fit:contain}
@media(max-width:1000px){.cover{min-height:850px}.cover h1{font-size:4.5rem}.ticket-office{padding:4.5rem 1.5rem}.ticket-office__paper{padding:2rem}.ticket-office__scene{min-height:640px}.library{width:calc(100% - 2rem)}.book-page{padding:2rem;min-height:580px}.book-page--chapter{padding:1.4rem}}
@media(max-width:760px){
  .cover{min-height:max(780px,100svh);padding:8rem 1rem 18rem}
  .cover h1{font-size:clamp(3.1rem,9vw,4.5rem)}
  .brand{width:240px;height:125px}
  .ticket-office{display:block;padding:4rem 1rem 2rem}
  .ticket-office__scene{height:220px;min-height:0;border-radius:80px 5px 0 0}
  .ticket-office__scene img{object-position:center 44%}
  .ticket-office__paper{margin:-1rem .5rem 0;padding:2rem 1.4rem;max-width:none}
  .ticket-office__villi{width:84px;height:84px}
  .ticket-office h1{font-size:2.6rem}
  .library__header{min-height:76px;gap:.3rem;margin-bottom:.5rem}
  .library__header .text-button{padding:.6rem .3rem;font-size:.8rem}
  .achievement-bookmark{padding:.65rem .7rem;gap:.3rem;font-size:.8rem;min-height:52px}
  .achievement-bookmark span{display:none}
  .travel-book__pages{display:flex;flex-direction:column;min-height:0}
  .travel-book__pages::after{display:none}
  .book-page{min-height:0;padding:2rem 1.3rem}
  .book-page-wrap--right{border-top:1px solid #e2d7bd}
  .welcome-portrait{width:min(70%,240px);margin:.5rem 0}
  .book-page--portrait{padding:1.5rem}
  .signature{margin:.5rem 0 0;font-size:1rem}
  .book-page--welcome h2{font-size:2.3rem}
  .welcome-copy{font-size:1rem}
  .book-page--map h2{font-size:2rem}
  .book-page--map{padding:2rem .7rem}
  .map-preview{margin:.7rem 0}
  .map-caption{padding:0 .5rem}
  .book-page--chapter{padding:2rem 1rem}
  .chapter-card h2{font-size:1.85rem;margin:1.2rem .3rem .7rem}
  .book-page--unwritten{min-height:250px}
  .book-controls{gap:.4rem;flex-wrap:wrap;margin-top:1.6rem}
  .book-controls p{order:3;width:100%;margin-top:.7rem}
  .book-controls button{padding:.65rem 1rem}
  .turning-leaf{display:none}
  .book-page-wrap,.travel-book__pages--full>.book-page{animation:appear .55s ease both}
  dialog{padding:2.7rem 1.3rem 1.5rem}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.cover__hero{opacity:1}.cover__hero--tuman{opacity:.9}}
/* Полные оригинальные сцены вписаны в рамку без искажения пропорций. */
.chapter-art>img,.chapter-illustration{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:370px){.cover__hero{width:62px;height:62px}.cover__hero--tuman{width:82px;height:82px}.cover h1{font-size:2.8rem}.ticket-office__villi{width:68px;height:68px}}

/* Фон кассы: окно слева, форма на спокойной правой стороне иллюстрации. */
.ticket-office{display:flex;justify-content:flex-end;align-items:center;isolation:isolate;padding:5rem 5vw;min-height:max(760px,100svh);background:#eed9b2}
.ticket-office__scene{position:absolute;inset:0;z-index:-1;min-height:0;border-radius:0;box-shadow:none}
.ticket-office__scene img{width:100%;height:100%;object-fit:cover;object-position:left center}
.ticket-office__back{z-index:2;left:2rem;background:#fff0d3e8;border:1px solid #d7bb84;border-radius:5px;padding:.55rem 1rem}
.ticket-office__paper{flex:0 1 44%;width:44%;max-width:620px;margin:0;padding:2.5rem clamp(1.5rem,3vw,3.5rem);background:#fff2dcd9;border-color:#d1b780;box-shadow:0 15px 45px #6c482421;backdrop-filter:blur(3px)}
.ticket-office input{background:#fff8e9e6}
@media(max-width:1000px) and (min-width:761px){.ticket-office{padding:5rem 3vw}.ticket-office__paper{flex-basis:47%;width:47%;padding:2rem 1.5rem}.ticket-office__villi{width:84px;height:84px}.ticket-office h1{font-size:2.8rem}}
@media(max-width:760px){
  .ticket-office{display:block;padding:0 0 2rem;min-height:100svh;background:linear-gradient(#e9cc94,#f5e6ca)}
  .ticket-office__scene{position:relative;inset:auto;z-index:0;height:clamp(280px,78vw,440px);min-height:0;border-radius:0}
  .ticket-office__scene img{object-position:left center}
  .ticket-office__back{left:1rem;top:1rem}
  .ticket-office__paper{width:auto;max-width:none;margin:-.7rem 1rem 0;padding:2rem 1.4rem;background:#fff1dbe8}
}

/* Арочное кассовое окошко; фон сцены и работа формы остаются прежними. */
.ticket-office__paper{
  padding:13px;border:1px solid #b99352;border-radius:160px 160px 12px 12px;
  background:repeating-linear-gradient(92deg,#ffffff00 0 8px,#e7b96a16 9px,#291a1010 11px),
    linear-gradient(105deg,#65432c,#ae7846 20%,#735036 50%,#a77443 80%,#583e2c);
  box-shadow:inset 0 0 0 3px #d0a663,inset 0 0 0 6px #315e59,0 8px 20px #4a321d26;
  backdrop-filter:none;overflow:visible
}
.ticket-office__paper::before{
  inset:9px;border:1px solid #d9bb79;border-radius:151px 151px 5px 5px;z-index:1
}
.ticket-office__paper::after{
  content:"";position:absolute;left:-7px;right:-7px;bottom:-9px;height:22px;
  border:1px solid #987042;border-radius:4px;
  background:linear-gradient(#d6ac6d,#93643c 38%,#674730 70%,#aa7a49);
  box-shadow:0 4px 7px #523d2420;pointer-events:none
}
.ticket-office__interior{
  padding:4.5rem clamp(1.25rem,2.8vw,3rem) 2rem;
  border:1px solid #e3bd76;border-radius:145px 145px 3px 3px;
  background:radial-gradient(ellipse at 50% 0,#ffe3a4 0,transparent 56%),linear-gradient(100deg,#f0dcad,#fff1cf 45%,#f4dfb4);
  box-shadow:inset 0 5px 17px #9e631526;
}
.ticket-office__interior h1{max-width:calc(100% - 35px);font-size:clamp(2.5rem,3.8vw,3.8rem)}
.ticket-office__villi{
  position:absolute;z-index:3;float:none;right:-38px;top:120px;
  width:132px;height:132px;margin:0;object-fit:contain
}
.ticket-office__bell{
  position:absolute;z-index:2;top:25px;left:calc(50% - 15px);width:30px;height:22px;
  border:1px solid #9e7238;border-radius:18px 18px 3px 3px;
  background:linear-gradient(100deg,#a67835,#ffdfa1 38%,#d4a54d 70%,#9c6a28);
  box-shadow:inset 0 2px 1px #ffedc7;pointer-events:none
}
.ticket-office__bell::before{content:"";position:absolute;top:-5px;left:11px;width:6px;height:5px;border-radius:50%;background:#b28741}
.ticket-office__bell::after{content:"";position:absolute;left:-4px;right:-4px;bottom:-4px;height:4px;border:1px solid #8b642f;border-radius:3px;background:#d3ad65}
.ticket-office #access-code{
  min-height:58px;border:1px solid #b69858;border-radius:2px;
  background:linear-gradient(90deg,#e1c997 0 8px,transparent 8px calc(100% - 8px),#e1c997 calc(100% - 8px)),#fff3d8;
  padding:.7rem 1.1rem;box-shadow:inset 0 0 0 4px #fff0ce,0 3px 0 #c8a46e55
}
.ticket-office #access-form>.primary{
  min-height:56px;border:1px solid #b89959;border-radius:7px;
  background:linear-gradient(#4e8077,#2d5d56 55%,#264f4c);
  color:#fff1c9;box-shadow:inset 0 0 0 3px #ffffff12,inset 0 1px 0 #fff1b580,0 3px 0 #795633;
  letter-spacing:.035em
}
.ticket-office #access-form>.primary:hover{background:linear-gradient(#5a8c82,#376c62 55%,#2c5a52)}
@media(max-width:1000px) and (min-width:761px){
  .ticket-office__paper{padding:11px}
  .ticket-office__interior{padding:4.2rem 1.2rem 1.7rem}
  .ticket-office__villi{width:98px;height:98px;right:-20px;top:118px}
  .ticket-office__interior h1{font-size:2.6rem;max-width:calc(100% - 30px)}
}
@media(max-width:760px){
  .ticket-office__paper{padding:10px;margin:-.7rem 1.8rem 0 1rem;border-radius:115px 115px 10px 10px;
    background:repeating-linear-gradient(92deg,#ffffff00 0 8px,#e7b96a16 9px,#291a1010 11px),linear-gradient(105deg,#65432c,#ae7846 20%,#735036 50%,#a77443 80%,#583e2c)}
  .ticket-office__paper::before{inset:7px;border-radius:108px 108px 5px 5px}
  .ticket-office__interior{padding:4.1rem 1rem 1.7rem;border-radius:103px 103px 3px 3px}
  .ticket-office__interior h1{font-size:2.45rem;max-width:calc(100% - 25px)}
  .ticket-office__villi{width:90px;height:90px;right:-22px;top:115px}
  .ticket-office__interior .eyebrow{max-width:85%;font-size:.65rem;letter-spacing:.16em}
  .ticket-office__interior .demo-note{font-size:.7rem}
}
@media(max-width:370px){
  .ticket-office__interior{padding-left:.8rem;padding-right:.8rem}
  .ticket-office__interior h1{font-size:2.1rem}
  .ticket-office__villi{width:76px;height:76px;top:115px}
}

/* Штамп проводника внутри арки; размеры и содержимое карточки не меняются. */
.ticket-office .ticket-office__villi{top:20px;right:65px;width:100px;height:100px}
@media(max-width:1200px) and (min-width:761px){
  .ticket-office .ticket-office__villi{top:18px;right:65px;width:56px;height:56px}
}
@media(max-width:760px){
  .ticket-office .ticket-office__villi{top:20px;right:56px;width:56px;height:56px}
}
/* Оглавление личного маршрута и подписи станций. */
.book-page--contents{justify-content:flex-start;padding:2.5rem 3rem}
.book-page--contents>h2{margin:.4rem 0 2rem}
.contents-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(5,auto);grid-auto-flow:column;gap:1.7rem 4rem}
.contents-station{position:relative;display:grid;grid-template-columns:2.2rem minmax(0,1fr);gap:.8rem;align-items:start}
.contents-station::before{content:"";position:absolute;left:.95rem;top:2.5rem;bottom:-1.5rem;width:1px;background:#d7c89c}
.contents-station::after{content:"";position:absolute;left:.72rem;top:2.15rem;width:.5rem;height:.5rem;border:1px solid #b6934a;background:#fff1cd;transform:rotate(45deg)}
.station-number{font:1.3rem/1.4 Georgia,serif;color:#aa823a}
.contents-station h3{font:600 1.05rem/1.4 Georgia,serif;color:#315e59;margin:0 0 .3rem;text-transform:uppercase;letter-spacing:.035em}
.contents-level{font:.75rem/1.4 Arial,sans-serif;color:#7b6a4a;margin:.25rem 0}
.contents-station ul{list-style:none;padding:0;margin:0}
.contents-link{display:block;width:100%;text-align:left;border:0;border-bottom:1px dotted #cbbc9b;background:transparent;color:#263c4a;padding:.5rem 0 .65rem;font:1.05rem/1.4 Georgia,serif}
.contents-link:hover{color:#855d1f;background:#f5e6bd40}
.contents-link small{display:block;margin-top:.3rem;font:.8rem/1.5 Arial,sans-serif;color:#6d705f}
.contents-link--locked{color:#687277;cursor:default}
html[data-book-language-locked="true"] .language-switch{display:none}

/* Логотип остаётся читаемым на любом фоне, потому что его исходник содержит белое поле. */
.school-corner-logo{position:fixed;right:1rem;bottom:1rem;z-index:25;display:block;width:168px;padding:.3rem .45rem;background:#fff;border:1px solid #d8c9a7;border-radius:8px;box-shadow:0 8px 24px #233b4226;line-height:0}
.school-corner-logo img{display:block;width:100%;height:auto}
body:has(#cover:not([hidden])) .school-corner-logo{display:none}
@media(max-width:760px){.school-corner-logo{right:.65rem;bottom:.65rem;width:124px;padding:.2rem .3rem}}
.station-plate{display:block;align-self:center;max-width:100%;padding:.45rem .75rem;margin:0 0 1.1rem;border:1px solid #d5bc7e;border-radius:3px;background:#f7edcf;color:#365c59;font:600 .7rem/1.6 Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}
.mission-lock{position:absolute;z-index:1;left:calc(50% - 17px);top:calc(50% - 7px);width:34px;height:29px;border:1px solid #9e8551;border-radius:5px;background:linear-gradient(120deg,#f7e6b9,#c5ae7d);font-size:0;box-shadow:0 2px 7px #66527415}
.mission-lock::before{content:"";position:absolute;left:6px;top:-20px;width:18px;height:22px;border:3px solid #a9905c;border-bottom:0;border-radius:12px 12px 0 0}
.mission-lock::after{content:"";position:absolute;left:14px;top:9px;width:5px;height:9px;border-radius:4px;background:#766849}
.closed-status{color:#756647;font:.75rem/1.4 Arial,sans-serif;text-transform:uppercase;letter-spacing:.08em;margin:0 0 .35rem}
.closed-caption{color:#676c74;font-size:.95rem;margin:0}
.chapter-card--fog h2{color:#546368}
@media(max-width:760px){
 .book-page--contents{padding:2rem 1.2rem}
 .contents-list{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-flow:row;gap:1.5rem}
 .contents-station{grid-template-columns:1.9rem minmax(0,1fr);gap:.5rem}
 .contents-station h3{font-size:.95rem}
 .contents-link{font-size:1rem;overflow-wrap:anywhere}
 .station-plate{font-size:.65rem}
}

/* Язык оболочки расположен вне текста и кнопок перелистывания. */
.language-switch{position:fixed;right:4px;top:45%;z-index:30;display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 2px;background:#fff7e6f2;border:1px solid #cbb47e;border-radius:8px;color:#80714f}
.language-switch button{width:36px;min-height:40px;padding:0;border:0;border-radius:4px;background:transparent;color:#43665f;font:600 .72rem/1 Arial,sans-serif}
.language-switch button[aria-pressed="true"]{background:#315e59;color:#fff3d8}
.language-switch>span{font-size:.7rem;line-height:1}
.library{width:min(1440px,calc(100% - 6rem))}
.contents-station--future>div{position:relative;isolation:isolate}
.contents-station--future>div::before{content:"";position:absolute;inset:-.3rem -.5rem;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 75% 65%,#dcd9e870,transparent 72%);filter:blur(6px)}
.contents-station--future .contents-link{font-size:.9rem;color:#687277}
@media(max-width:1000px){
 body{padding-top:44px}
 .language-switch{top:0;right:0;left:0;height:44px;flex-direction:row;justify-content:flex-end;padding:2px 12px;border:0;border-bottom:1px solid #ddcfab;border-radius:0;background:#fff7e6f5}
 .language-switch button{width:42px;min-height:36px}
 .language-switch>span{margin:0 4px}
 .library{width:calc(100% - 2rem)}
 .library__header{top:44px}
 .travel-book{scroll-margin-top:140px}
}
