.ab{--ab-text:#eef2ff;--ab-dim:#eef2ff8c;--ab-gold:#ffd68c;background:var(--space);min-height:100vh;color:var(--ab-text);font-family:var(--font-sans);font-weight:300;overflow-x:clip}.ab-story{height:1845vh;position:relative}.ab-stage{background:var(--space);height:100svh;position:sticky;top:0;overflow:hidden}.ab-canvas{width:100%;height:100%;animation:1.2s ease-out both ab-fade-in;position:absolute;inset:0}@keyframes ab-fade-in{0%{opacity:0}}.ab-hero{text-align:center;pointer-events:none;padding:0 16px;position:absolute;top:60%;left:0;right:0}.ab-hero h1{letter-spacing:.22em;font-size:clamp(25px,4vw,52px);font-weight:200;line-height:1.75}.ab-hero p{font-family:"Avenir Next", var(--font-sans);letter-spacing:.5em;color:var(--ab-dim);text-transform:uppercase;margin-top:14px;font-size:11px}.ab-hero h1,.ab-hero p{opacity:0;filter:blur(8px);animation:2.6s cubic-bezier(.2,.7,.2,1) forwards ab-rise;transform:translateY(14px)}.ab-hero h1{animation-delay:.5s}.ab-hero p{animation-delay:1.7s}@keyframes ab-rise{to{opacity:1;filter:blur();transform:none}}.ab-say{text-align:center;opacity:0;pointer-events:none;text-shadow:0 0 24px #000,0 0 8px #000;padding:0 18px;position:absolute;top:max(28px,7vh);left:0;right:0}.ab-say h2{letter-spacing:.18em;font-size:clamp(19px,2.5vw,31px);font-weight:300;line-height:1.75}.ab-say p{letter-spacing:.12em;color:#eef2ffb8;margin-top:12px;font-size:clamp(12px,1.2vw,14.5px);line-height:1.95}.ab-no{font-family:"Avenir Next", var(--font-sans);letter-spacing:.4em;color:var(--ab-gold);margin-bottom:8px;font-size:11px;font-weight:500;display:block}.ab[lang=en] .ab-say h2,.ab[lang=en] .ab-hero h1{letter-spacing:.06em}.ab[lang=en] .ab-say p{letter-spacing:.03em}.ab-flash{opacity:0;pointer-events:none;text-shadow:0 0 12px #000,0 0 4px #000;background:#00000080;border-left:1px solid #ffd68cb3;border-radius:0 8px 8px 0;max-width:min(300px,60vw);padding:6px 10px 7px 12px;transition:opacity .5s;position:absolute;top:0;left:0}.ab-flash-where{letter-spacing:.26em;color:var(--ab-gold);font-size:10px}.ab-flash-title{margin-top:4px;font-size:13.5px;line-height:1.5}.ab-letter{--ab-ink:#2c2519;--ab-ink2:#2c25199e;--ab-post:#a8452f;width:min(440px,100vw - 32px);color:var(--ab-ink);font-family:var(--font-serif);opacity:0;pointer-events:none;transform-origin:50% 100%;background:linear-gradient(#0000 32.6%,#5a421e21 33.2%,#ffffff8c 33.6%,#0000 34.6%),linear-gradient(#0000 65.8%,#5a421e21 66.4%,#ffffff8c 66.8%,#0000 67.8%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .33 0 0 0 0 .2 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),radial-gradient(130% 110% at 50% 40%,#f7f0e1 55%,#ebdfc6 100%);border-radius:2px;padding:24px 24px 18px;transition:opacity .5s,transform .9s cubic-bezier(.2,.8,.2,1);position:absolute;bottom:max(58px,9vh);left:50%;transform:translate(-50%,18px)perspective(900px)rotateX(58deg)rotate(-.8deg);box-shadow:inset 0 1px #fff9,0 22px 60px #000000a6,0 0 40px #ffd68c1f}.ab-letter[data-on]{opacity:1;pointer-events:auto;transform:translate(-50%)perspective(900px)rotateX(0)rotate(-.8deg)}.ab-letter-where{letter-spacing:.18em;color:var(--ab-ink2);padding-right:70px;font-size:11.5px}.ab-letter-title{font-family:"Iowan Old Style", "Palatino", var(--font-serif);margin-top:12px;padding-right:62px;font-size:17px;line-height:1.55}.ab-letter-summary{white-space:pre-line;border-top:1px dashed #2c251947;margin-top:14px;padding-top:12px;font-size:14.5px;line-height:1.95}.ab-letter-summary[data-loading]:after{content:"…";color:var(--ab-ink2)}.ab-letter-acts{letter-spacing:.14em;justify-content:space-between;align-items:center;margin-top:16px;font-size:12px;display:flex}.ab-letter a{color:var(--ab-ink2);border-bottom:1px solid #2c251940;text-decoration:none}.ab-letter button{font:inherit;color:var(--ab-ink);cursor:pointer;letter-spacing:.2em;background:0 0;border:1px solid #2c251973;border-radius:999px;padding:7px 16px}.ab-letter button:hover{border-color:var(--ab-post);color:var(--ab-post)}.ab-letter button:disabled{opacity:.5;cursor:default}.ab-stamp{border:1.5px solid var(--ab-post);width:62px;height:62px;color:var(--ab-post);opacity:.72;font-family:"Avenir Next", var(--font-sans);mix-blend-mode:multiply;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;line-height:1.15;display:flex;position:absolute;top:12px;right:16px;transform:rotate(-14deg)}.ab-stamp:before{content:"";border:.75px solid var(--ab-post);border-radius:50%;position:absolute;inset:4px}.ab-stamp b{letter-spacing:.08em;font-size:15px;font-weight:600}.ab-stamp small{letter-spacing:.08em;font-size:7.5px}.ab-recipe{opacity:0;pointer-events:none;width:min(760px,100vw - 32px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ab-recipe h2{text-align:center;letter-spacing:.18em;font-size:clamp(19px,2.4vw,28px);font-weight:300}.ab-pairs{--gap:clamp(48px, 9vw, 112px);column-gap:var(--gap);grid-template-columns:1fr 1fr;margin-top:5vh;display:grid}.ab-pairs h3{letter-spacing:.3em;border-bottom:1px solid #eef2ff33;padding-bottom:12px;font-size:11.5px;font-weight:400}.ab-pairs h3.ab-use{color:var(--ab-gold)}.ab-pairs h3.ab-not{color:var(--ab-dim)}.ab-pairs>div{--fs:clamp(13px, 1.4vw, 15.5px);--pt:15px;padding:var(--pt) 0 0;font-size:var(--fs);letter-spacing:.06em;line-height:1.6;position:relative}.ab-pairs>div.ab-not:before{content:"↔";left:calc(-.5 * var(--gap));top:var(--pt);height:calc(var(--fs) * 1.6);letter-spacing:0;background:linear-gradient(90deg, var(--ab-gold), #eef2ff8c);color:#0000;-webkit-background-clip:text;background-clip:text;align-items:center;font-family:Hiragino Sans,sans-serif;font-size:clamp(22px,2.4vw,30px);font-weight:200;line-height:1;display:flex;position:absolute;transform:translate(-50%)}.ab-pairs small{color:var(--ab-dim);letter-spacing:.04em;margin-top:2px;font-size:11.5px;line-height:1.55;display:block}.ab-pairs>div.ab-not{transition:opacity 1.6s,transform 2.2s cubic-bezier(.2,.6,.3,1),filter 1.6s}.ab-pairs>div.ab-not[data-gone]{opacity:0;filter:blur(6px)}.ab-after{text-align:center;letter-spacing:.14em;opacity:0;margin-top:5vh;font-size:clamp(14px,1.6vw,17px);line-height:1.9;transition:opacity 1s}.ab-after[data-on]{opacity:1}.ab-end{text-align:center;opacity:0;pointer-events:none;text-shadow:0 0 24px #000;padding:0 16px;position:absolute;top:max(28px,8vh);left:0;right:0}.ab-end h2{letter-spacing:.22em;font-size:clamp(22px,3vw,38px);font-weight:200;line-height:1.8}.ab[lang=en] .ab-end h2{letter-spacing:.08em}.ab-nums{justify-content:center;gap:clamp(22px,5vw,70px);margin-top:2.5vh;display:flex}.ab-nums b{font-family:"Avenir Next", var(--font-sans);font-variant-numeric:tabular-nums;font-size:clamp(32px,4vw,56px);font-weight:100;line-height:1;display:block}.ab-nums span{letter-spacing:.24em;color:#eef2ffb3;margin-top:8px;font-size:11px;display:block}.ab-go{color:#fff3dc;letter-spacing:.3em;background:#00000059;border:1px solid #ffe6beb3;border-radius:999px;margin-top:2.8vh;padding:12px 30px;font-size:13px;text-decoration:none;display:inline-block}.ab-go:hover{background:#ffd68c1f}.ab-cue{pointer-events:none;position:absolute;bottom:max(22px,4vh);left:50%;transform:translate(-50%)}.ab-cue span{opacity:0;flex-direction:column;align-items:center;gap:8px;animation:1.2s ease-out 3.8s forwards ab-cue-in;display:flex}.ab-cue i{border-right:1px solid var(--ab-dim);border-bottom:1px solid var(--ab-dim);width:11px;height:11px;animation:2.2s ease-in-out 3.8s infinite ab-bob;display:block;transform:rotate(45deg)}.ab-cue em{font-style:normal;font-family:"Avenir Next", var(--font-sans);letter-spacing:.42em;color:var(--ab-dim);text-transform:uppercase;padding-left:.42em;font-size:10px}@keyframes ab-cue-in{to{opacity:1}}@keyframes ab-bob{0%,to{translate:0 -2px}50%{translate:0 5px}}.ab-cue-again span{opacity:1;animation:none}.ab-cue-again{opacity:0;transition:opacity .6s;bottom:max(8px,1.6vh)}.ab-cue-again[data-on]{opacity:1;transition:opacity .8s 1.4s}.ab-back{left:calc(16px + env(safe-area-inset-left));bottom:calc(18px + env(safe-area-inset-bottom));z-index:1;-webkit-backdrop-filter:blur(6px);color:#eef2ffb3;letter-spacing:.12em;opacity:0;background:#02030a8c;border:1px solid #eef2ff2e;border-radius:999px;align-items:center;gap:6px;padding:7px 14px 7px 11px;font-size:11.5px;text-decoration:none;transition:color .2s,border-color .2s;animation:1.2s ease-out 2.6s forwards ab-cue-in;display:flex;position:fixed}.ab[data-leaving] .ab-back{opacity:0;animation:none}.ab-back:hover{color:#eef2ff;border-color:#eef2ff66}.ab-footer{padding:0 16px calc(56px + env(safe-area-inset-bottom));letter-spacing:.14em;flex-wrap:wrap;justify-content:center;gap:10px 30px;font-size:12px;display:flex;position:relative}.ab-footer a{color:var(--ab-dim);text-decoration:none}.ab-footer a:hover{color:var(--ab-text)}@media (max-width:640px){.ab-hero h1{letter-spacing:.1em;font-size:min(25px,5.9vw)}.ab-say h2{letter-spacing:.08em}.ab-pairs{margin-top:3vh}.ab-pairs>div{--pt:11px;--fs:13.5px;letter-spacing:.02em}.ab-pairs small{letter-spacing:0;font-size:10.5px}.ab-pairs h3{letter-spacing:.2em}.ab-after{margin-top:3.5vh}}
