@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/cormorant-garamond-normal-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/cormorant-garamond-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;src:url(/fonts/cormorant-garamond-italic-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;src:url(/fonts/cormorant-garamond-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Literata';font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/literata-normal-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Literata';font-style:normal;font-weight:200 900;font-display:swap;src:url(/fonts/literata-normal-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Literata';font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/literata-italic-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Literata';font-style:italic;font-weight:200 900;font-display:swap;src:url(/fonts/literata-italic-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Ночная библиотека Астролябиуса. Латунь — только действия и совпадение 4 из 4. */
html.astro{
 --bg:#0c1524;--bg-raise:#132036;--text:#ede4d3;--muted:#a99f8d;--line:#ede4d324;
 --brass:#d6b66d;--brass-hover:#e6cb8d;--on-brass:#141b28;--robe:#7f9fd6;
 --paper:#f3ead8;--paper-ink:#1d2433;--paper-muted:#5f584c;--paper-line:#dccdb2;--paper-accent:#7a5a24;
 --display:'Cormorant Garamond','Iowan Old Style',Georgia,serif;
 --body:'Literata','Iowan Old Style',Georgia,serif;
 --gutter:clamp(20px,5vw,64px);--measure:36rem;
 font-size:calc(16px * var(--scale,1));color-scheme:dark;
}
html.astro[data-fs=l]{--scale:1.12}
html.astro[data-fs=xl]{--scale:1.25}
html.astro[data-theme=light]{
 --bg:#f1e9da;--bg-raise:#e8dcc6;--text:#1b2333;--muted:#5b5549;--line:#1b233324;
 --brass:#1d3f78;--brass-hover:#163160;--on-brass:#f6efe2;--robe:#1d3f78;
 --paper:#fffaf1;--paper-line:#e4d6bd;
 color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.7 var(--body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.08;margin:0;text-wrap:balance}
p{margin:0}
a{color:inherit}
img{display:block;max-width:100%}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:12px;z-index:10;background:var(--brass);color:var(--on-brass);padding:.5rem .9rem;text-decoration:none}
[hidden]{display:none!important}

.kicker{font:italic 500 1.2rem/1.3 var(--display);color:var(--brass)}
.fine{font-size:.86rem;line-height:1.55;color:var(--muted)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.4rem;border:1px solid var(--brass);border-radius:2px;background:var(--brass);color:var(--on-brass);font:600 1.22rem/1 var(--display);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background-color .2s,border-color .2s}
.button:hover{background:var(--brass-hover);border-color:var(--brass-hover)}
.button:disabled{opacity:.6;cursor:wait}
.text-link{font:italic 500 1.2rem/1.2 var(--display);color:var(--text);text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:.3em}
.text-link:hover{color:var(--brass)}

/* Шапка лежит поверх сцены */
.top{position:absolute;inset:0 0 auto;z-index:3;display:flex;align-items:center;gap:1rem 2rem;padding:1.1rem var(--gutter) 2.2rem;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 92%,transparent),color-mix(in srgb,var(--bg) 55%,transparent) 62%,transparent)}
.brand{display:inline-flex;align-items:center;gap:.6rem;font:600 1.5rem/1 var(--display);text-decoration:none;color:var(--text)}
.brand svg{width:24px;height:24px;color:var(--brass)}
.top nav{display:flex;gap:1.6rem;margin-left:auto;font:500 1.15rem/1 var(--display)}
.top nav a{text-decoration:none;padding:.3rem 0;border-bottom:1px solid transparent}
.top nav a:hover{border-bottom-color:var(--brass)}
.tools{display:flex;align-items:center;gap:.5rem}
.sizes{display:flex;border:1px solid var(--line)}
.tools button{background:color-mix(in srgb,var(--bg) 55%,transparent);border:1px solid var(--line);color:var(--text);min-height:34px;padding:0 .7rem;font:500 1rem/1 var(--display);cursor:pointer}
.sizes button{border:0;padding:0 .5rem;min-width:30px}
.sizes button[data-font=base]{font-size:.85rem}.sizes button[data-font=xl]{font-size:1.15rem}
.sizes button[aria-pressed=true]{color:var(--brass);box-shadow:inset 0 -2px var(--brass)}

/* Первый экран: иллюстрация уходит под правый край, текст — в ночи слева */
.hero{position:relative;min-height:max(640px,min(100svh,940px));display:flex;align-items:center;overflow:hidden;isolation:isolate}
.scene-art{position:absolute;inset:0 0 0 34%;margin:0;z-index:-1}
.scene-art img{width:100%;height:100%;object-fit:cover;object-position:32% 45%;animation:arrive 1.6s cubic-bezier(.2,.7,.2,1) both}
.scene-art::after{content:'';position:absolute;inset:0;background:
 linear-gradient(90deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 78%,transparent) 16%,color-mix(in srgb,var(--bg) 34%,transparent) 42%,transparent 58%),
 linear-gradient(180deg,color-mix(in srgb,var(--bg) 80%,transparent) 0%,transparent 22%,transparent 70%,var(--bg) 100%)}
html.astro[data-theme=dark] .scene-art img{filter:saturate(.9) brightness(.86)}
.hero-text{position:relative;width:min(100%,68%);padding:7.5rem var(--gutter) 4rem}
.hero h1{margin:.55rem 0 1.15rem;font-size:clamp(1.9rem,2.35vw,2.65rem);line-height:1.12;letter-spacing:-.01em}
.hero h1 em{display:block;margin-top:.12em;font-style:italic;font-weight:500;color:#f6f0e4}
html.astro[data-theme=light] .hero h1 em{color:#3c4a62}
.letter{max-width:46rem;padding-left:1.1rem;border-left:1px solid var(--brass)}
.letter p{font:italic 500 clamp(1.25rem,1.6vw,1.42rem)/1.45 var(--display)}
.pilot{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .7rem;max-width:46rem;margin:1.25rem 0 0;color:var(--muted);font:500 .92rem/1.45 var(--body)}
.pilot span{padding:.16rem .48rem .12rem;border:1px solid color-mix(in srgb,var(--brass) 58%,transparent);background:color-mix(in srgb,var(--brass) 10%,transparent);color:var(--brass);font:600 .95rem/1 var(--display);letter-spacing:.06em}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem;margin:1.15rem 0 0}
@keyframes arrive{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}

/* Метод */
.method,.example,.limits,.request,.bottom{width:min(100%,1140px);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.method{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,440px);gap:3rem 5rem;align-items:center;padding-top:6rem;padding-bottom:6rem}
.method-text{display:contents}
.method h2,.method-text>p,.levels,.axiom{grid-column:1}
.method h2,.example h2,.limits h2,.request h2{font-size:clamp(2.1rem,3.4vw,3rem);margin-bottom:1.1rem}
.lenses{grid-column:2;grid-row:1 / span 4;align-self:center;justify-self:center;width:min(100%,440px);margin:0}
.lens-plate{position:relative;padding:2.6em .1em 2.2em;font-size:1.05rem}
.lens-names{position:absolute;inset:0;margin:0;padding:0;list-style:none;pointer-events:none}
.lens-names li{position:absolute;max-width:48%;font:italic 500 1em/1.2 var(--display);color:var(--text)}
.lens-names .nw{top:0;left:0}
.lens-names .ne{top:0;right:0;text-align:right}
.lens-names .sw{bottom:0;left:0}
.lens-names .se{bottom:0;right:0;text-align:right}
.lenses img{display:block;width:100%;height:auto;object-fit:contain;background:none;border:0;box-shadow:none}
.lenses figcaption{margin:.75rem 0 0;text-align:center;font:italic 500 1.05rem/1.35 var(--display);color:var(--muted)}
.method-text>p:not(.fine){max-width:var(--measure);color:var(--text)}
.levels{margin:2rem 0 1.4rem}
.levels div{display:grid;grid-template-columns:8.2rem minmax(0,1fr);gap:1rem;align-items:center;padding:.85rem 0;border-top:1px solid var(--line)}
.levels div:last-child{border-bottom:1px solid var(--line)}
.levels dt{justify-self:start;padding:0;border:0;background:none;font:600 1.35rem/1.2 var(--display)}
.levels dd{margin:0}
.levels .core dt{color:var(--brass)}
.levels .pair dt{color:var(--robe);font-weight:500}
.levels .fork dt{color:var(--muted);font-style:italic;font-weight:500}
html.astro[data-theme=light] .levels .core dt{color:#1d3f78}
html.astro[data-theme=light] .levels .pair dt{color:#6d7f9e}
html.astro[data-theme=light] .levels .fork dt{color:#8a8174}
.axiom{max-width:var(--measure);margin:1.3rem 0 0;padding-left:1.1rem;border-left:1px solid var(--brass);font:italic 500 1.28rem/1.45 var(--display);color:var(--text)}
/* Пример — разворот книги, лежащей на столе */
.example{padding-top:2rem;padding-bottom:6rem}
.example-head{max-width:var(--measure);margin-bottom:2.2rem}
.spread{display:grid;grid-template-columns:1.25fr 1fr;background:#fffaf1;color:var(--paper-ink);border:1px solid #c4b08a;box-shadow:0 18px 40px -22px #1d243366;position:relative}
.spread::before{content:'';position:absolute;top:0;bottom:0;left:55.5%;width:36px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#00000014 45%,#0000001f 50%,#00000014 55%,transparent);pointer-events:none}
.page{padding:2.6rem 2.8rem}
.fragment-row{display:flex;align-items:center;gap:.85rem;margin-bottom:.35rem}
.vignette{width:88px;height:88px;object-fit:contain;flex:none;pointer-events:none}
.page .kicker{color:var(--paper-accent)}
.page h3{margin:.6rem 0 1rem;font-size:clamp(1.6rem,2.4vw,2.1rem);line-height:1.15;color:var(--paper-ink)}
.page p{color:var(--paper-ink)}
.page .link{margin-top:1.1rem;padding-left:1rem;border-left:2px solid var(--paper-accent);font-style:italic}
.margin{background:linear-gradient(90deg,#0000000a,transparent 30%)}
.marks{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;margin:1rem 0 1.2rem}
.marks button{background:none;border:0;border-bottom:1px dashed var(--paper-accent);padding:.28rem 0 .18rem;color:var(--paper-ink);font:500 1.2rem/1.3 var(--display);cursor:pointer}
.marks button::before{content:'';display:inline-block;width:.5rem;height:.5rem;margin-right:.55rem;border-radius:50%;background:var(--paper-accent);vertical-align:.12em}
.marks button::after{content:'+';margin-left:.4rem;color:var(--paper-accent);font:600 .9em/1 var(--display)}
.marks .silent{opacity:.5;color:var(--paper-muted);font-style:italic;border:1px dashed var(--paper-muted);padding:.18rem .5rem .14rem}
.marks .silent::before{background:none;border:1px dashed var(--paper-muted)}
.marks .silent::after{content:none}
.marks button[aria-pressed=true]{border-bottom-style:solid;border-bottom-width:2px;border-bottom-color:var(--paper-accent)}
.marks .silent[aria-pressed=true]{opacity:.85;border-style:dashed;border-color:var(--paper-accent)}
.mark-note{min-height:4.8em;font-size:.98rem;line-height:1.55;color:var(--paper-ink)}
.reel{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"prev window next" "count count count" "fine fine fine";align-items:center;gap:.7rem  .55rem}
.reel-prev{grid-area:prev}.reel-window{grid-area:window}.reel-next{grid-area:next}
.reel-count{grid-area:count;margin:0;text-align:center;font:500 1.05rem/1 var(--display);color:var(--muted)}
.reel>.fine{grid-area:fine;max-width:42rem}
.reel-window{overflow:hidden;touch-action:pan-y;padding:4px 2px 16px}
.reel-track{display:flex;align-items:stretch;transition:transform .35s ease}
.reel-track>.spread{flex:0 0 100%;min-width:0;margin:0}
.reel-arrow{width:44px;height:44px;padding:0;border:1px solid #c9b898;border-radius:50%;background:#f7f1e4;color:#1d2433;cursor:pointer;display:grid;place-items:center;box-shadow:0 2px 10px #00000055}
.reel-arrow svg{width:22px;height:22px}
.reel-arrow:hover{border-color:#7a5a24;color:#7a5a24}
.page .fine{color:var(--paper-muted);margin-top:.8rem}

/* Честность */
.limits{padding-top:1rem;padding-bottom:5rem}
.limits p{max-width:40rem;color:var(--muted)}
.limits h2{font-size:clamp(1.7rem,2.6vw,2.2rem)}

/* Анкета */
.request{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:3rem 4.5rem;align-items:start;padding-top:5rem;padding-bottom:6rem;border-top:1px solid var(--line)}
.request-text p{max-width:30rem;margin-bottom:.9rem}
.request-still{display:block;width:min(240px,100%);height:auto;margin:1.5rem 0 .4rem;pointer-events:none}
.success-robot{display:block;width:min(210px,70%);height:auto;margin:0 auto 1rem;pointer-events:none}
.request-text strong{font-weight:600}
.invite{grid-template-columns:minmax(0,1fr)}
.card{background:var(--paper);color:var(--paper-ink);padding:2.2rem;box-shadow:0 30px 60px -30px #000a}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.2rem}
.wide{grid-column:1/-1}
.card label{display:block;font-size:.92rem;font-weight:500;color:var(--paper-ink)}
.card input,.card select{display:block;width:100%;margin-top:.4rem;padding:.7rem .75rem;min-height:46px;border:1px solid #c9b998;border-radius:2px;background:#fffdf8;color:var(--paper-ink)}
.time-pair{display:flex;align-items:center;gap:.45rem}
.time-pair select{flex:1 1 0;min-width:0}
.time-pair .colon{margin-top:.4rem;color:var(--paper-muted);font:600 1.3rem/1 var(--display)}
.place-box{position:relative;display:block}
.suggest{position:absolute;z-index:4;left:0;right:0;top:calc(100% + 4px);margin:0;padding:.25rem 0;list-style:none;background:#fffdf8;border:1px solid #c9b998;max-height:40vh;overflow:auto;box-shadow:0 14px 30px -18px #1d243355}
.suggest button{display:block;width:100%;text-align:left;background:none;border:0;padding:.55rem .8rem;color:var(--paper-ink);font:500 1rem/1.35 var(--body);cursor:pointer}
.suggest button[aria-selected=true],.suggest button:hover{background:#f3ead8}
.card input:disabled{background:#efe7d8;color:var(--paper-muted)}
.card small{display:block;margin-top:.35rem;font-size:.8rem;line-height:1.45;font-weight:400;color:var(--paper-muted)}
.card .consent{display:flex;gap:.7rem;align-items:flex-start;margin:1.4rem 0;font-size:.86rem;font-weight:400;line-height:1.5}
.consent input{width:18px;height:18px;min-height:0;margin:.15rem 0 0;flex:none;accent-color:var(--paper-accent)}
.consent a{text-underline-offset:3px}
.card .submit{width:100%}
html.astro[data-theme=dark] .card .submit{background:#1d3f78;border-color:#1d3f78;color:#f6efe2}
html.astro[data-theme=dark] .card .submit:hover{background:#163160;border-color:#163160}
.error{margin:0 0 1rem;padding:.75rem 1rem;background:#fbe9e3;border-left:3px solid #9a3b2c;color:#7d2c20;font-size:.92rem}
.success h3{margin:.4rem 0 .8rem;font-size:2rem;color:var(--paper-ink)}
.success p{margin-bottom:.6rem}
.success .kicker{color:var(--paper-accent)}

.bottom{display:flex;justify-content:space-between;gap:2rem;padding-top:1.6rem;padding-bottom:2.6rem;border-top:1px solid var(--line);font-size:.84rem;color:var(--muted)}
.bottom p{max-width:42rem}
.bottom a{color:var(--muted)}

@media (max-width:900px){
 .top{position:relative;flex-wrap:wrap;background:var(--bg);padding-bottom:1rem}
 .top nav{order:3;flex:1 0 100%;margin-left:0;gap:1.3rem}
 .tools{margin-left:auto}
 .hero{display:block;min-height:0}
 .scene-art{position:relative;inset:auto;height:min(62svh,560px)}
 .scene-art img{object-position:42% 40%}
 .scene-art::after{background:linear-gradient(180deg,transparent 55%,var(--bg) 100%)}
 .hero-text{width:100%;margin-top:-3.5rem;padding:0 var(--gutter) 3rem}
 .method{grid-template-columns:1fr;padding-top:3.5rem;padding-bottom:3.5rem}
 .method-text{display:block}
 .lenses{grid-column:auto;grid-row:auto;width:min(100%,340px);margin:1.4rem auto}
 .spread{grid-template-columns:1fr}
 .spread::before{display:none}
 .reel{grid-template-columns:1fr 1fr;grid-template-areas:"window window" "prev next" "count count" "fine fine"}
 .reel-prev{justify-self:end}
 .reel-next{justify-self:start}
 .margin{background:none;border-top:1px solid var(--paper-line)}
 .request{grid-template-columns:1fr;padding-top:3.5rem}
}
@media (max-width:767px){
 .hero{display:block;min-height:0}
 .scene-art{position:relative;inset:auto;width:100%;height:auto}
 .scene-art picture{display:block;width:100%}
 .scene-art img{width:100%;height:auto;object-fit:contain;object-position:center top}
 .scene-art::after{display:none}
 html.astro[data-theme=dark] .scene-art img{filter:none}
 .hero-text{width:100%;margin-top:-42vw;padding:0 var(--gutter) 2.6rem;background:linear-gradient(180deg,transparent 0%,var(--bg) 22%)}
 .vignette{width:60px;height:60px}
 .request-still{display:none}
 .success-robot{width:min(150px,62%)}
}
@media (max-width:560px){
 .brand{font-size:1.3rem}
 .hero h1{font-size:1.95rem}
 .page,.card{padding:1.6rem 1.3rem}
 .fields{grid-template-columns:1fr}
 .levels div{grid-template-columns:7.4rem minmax(0,1fr)}
 .bottom{flex-direction:column;gap:.8rem}
}
@media (prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .scene-art img,.reel-track{animation:none;transition:none}
}
