:root,.thulinh-root{--tex-fiber:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25' filterUnits='userSpaceOnUse'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.04 .3' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.353  0 0 0 0 0.275  0 0 0 0 0.157  0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E");--tex-grain-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25' filterUnits='userSpaceOnUse'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.157  0 0 0 0 0.118  0 0 0 0 0.078  0 0 0 0.11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E");--paper:#e9e1cc;--paper-2:#f5efde;--olive:#4d5a35;--olive-2:#6b7a4a;--ink:#2a2f3d;--ink-2:#6a6a5c;--red:#b4372c;--line:#2a2f3d26;--g:clamp(16px, 4vw, 56px);--f-serif:var(--font-serif), Georgia, serif;--f-hand:var(--font-hand), cursive;--f-mono:var(--font-mono), ui-monospace, monospace}body{background:var(--paper);color:var(--ink);font-family:var(--f-serif);-webkit-font-smoothing:antialiased;margin:0;font-size:18px;line-height:1.75;overflow-x:clip}::selection{background:var(--olive-2);color:var(--paper-2)}:focus-visible{outline:2px solid var(--red);outline-offset:4px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}html.is-locked,html.is-locked body{overflow:hidden}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}img{max-width:100%;display:block}h1,h2,h3,p,figure,ul,ol,dl,dd,blockquote{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}button{font:inherit;color:inherit}[tabindex="-1"]:focus{outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.nowrap{white-space:nowrap}.skip{z-index:300;color:#111;background:#fff;padding:10px 16px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip:focus{transform:none}h1,h2,h3{text-wrap:balance;font-weight:400}p{text-wrap:pretty}.site{transition:opacity .7s}.site--closed,.site--opening{opacity:0}.op__hit{z-index:5;cursor:pointer;position:absolute;inset:0}.opener--done{pointer-events:none}.has-amb{isolation:isolate;position:relative;overflow:clip}.fall{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden;container-type:size}.fall__i{left:var(--x);animation:fallY var(--d) linear var(--dl) infinite;position:absolute;top:0}.fall--rise .fall__i{animation-name:riseY}.fall__s{width:26px;height:26px;animation:fallSway calc(var(--d) / 3) ease-in-out var(--dl) infinite alternate;display:block}.fall__s svg{width:100%;height:100%;transform:scale(var(--s)) rotate(var(--r0));display:block;overflow:visible}@keyframes fallY{0%{transform:translateY(-40px)}to{transform:translateY(calc(100cqh + 40px))}}@keyframes riseY{0%{transform:translateY(calc(100cqh + 40px))}to{transform:translateY(-40px)}}@keyframes fallSway{0%{translate:calc(var(--sw) * -1) 0;rotate:-30deg}to{translate:var(--sw) 0;rotate:30deg}}.drift{z-index:-2;pointer-events:none;will-change:transform;position:absolute;inset:-20% 0}@media (prefers-reduced-motion:reduce){.fall{display:none}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.totop{z-index:40;cursor:pointer;opacity:0;background:0 0;border:0;width:48px;height:48px;padding:0;transition:opacity .4s,transform .4s;position:fixed;bottom:16px;right:16px;transform:translateY(16px)}.totop.is-shown{opacity:1;transform:none}.totop svg{width:100%;height:100%;display:block;overflow:visible}.cd--done{margin-top:10px}.kick{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--olive);font-size:12px}.ruled{background:repeating-linear-gradient(transparent 0 35px, #2a2f3d24 35px 36px), var(--paper-2)}.opener{z-index:100;background:radial-gradient(70% 60% at 50% 45%,#f2ecda,#d7cdb2);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.tr{aspect-ratio:1;perspective:1400px;width:min(74vw,360px);position:relative;container-type:inline-size}.tr__sheet,.tr__mirror{background:repeating-linear-gradient(transparent 0 7.4cqw, #2a2f3d24 7.4cqw calc(7.4cqw + 1px)), var(--paper-2);clip-path:polygon(0 0,100% 0,100% 100%,0 0);align-content:center;gap:3cqw;padding:12cqw 10cqw;display:grid;position:absolute;inset:0;box-shadow:0 4cqw 7cqw -3cqw #2a2f3d73}.tr__mirror{box-shadow:none;clip-path:none}.tr__to{font-family:var(--f-hand);color:var(--ink);font-size:7cqw;font-weight:300}.tr__line{font-family:var(--f-hand);color:var(--ink-2);font-size:4.4cqw;font-weight:200;line-height:1.5}.tr__sign{font-family:var(--f-hand);text-align:right;font-size:5.4cqw;font-weight:300}.tr__flap{--a:0;transform-style:preserve-3d;transform:rotate3d(1, 1, 0, calc(var(--a) * 1deg));position:absolute;inset:0}.tr__face{-webkit-backface-visibility:hidden;backface-visibility:hidden;clip-path:polygon(0 0,100% 0,100% 100%);position:absolute;inset:0}.tr__face--out{text-align:right;filter:drop-shadow(0 0 1px #0003);background:linear-gradient(225deg,#f5efde,#e8dfc6);align-content:start;justify-items:end;gap:1cqw;padding:18cqw 8cqw 0 0;display:grid}.tr__face--out b{font-family:var(--f-hand);color:var(--ink);font-size:8cqw;font-weight:300}.tr__face--out small{font-family:var(--f-mono);color:var(--ink-2);font-size:3.2cqw}.tr__face--in{clip-path:polygon(0 0,0 100%,100% 100%);transform:rotate3d(1,1,0,180deg)}.tr__stamp{border:.8cqw double var(--red);width:20cqw;height:20cqw;color:var(--red);font-family:var(--f-mono);text-align:center;opacity:.85;border-radius:50%;place-content:center;font-size:5cqw;line-height:1.1;display:grid;position:absolute;top:46%;right:8%;rotate:-14deg}.tr__stamp small{font-size:2.4cqw}.tags{left:var(--g);z-index:50;gap:10px;padding-top:18px;transition:transform .5s cubic-bezier(.2,.7,.3,1);display:flex;position:fixed;top:0;transform:translateY(-120%)}.tags.is-visible{transform:none}.tags__chain{border-left:2px dotted #8b8e86;border-right:2px dotted #8b8e86;height:22px;position:absolute;top:0;left:10px;right:10px}.tags__t{color:#2a2f1e;min-width:96px;height:44px;font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(135deg,#d5d8d0,#a8aca2 60%,#c9ccc4);border-radius:12px;place-items:center;padding:0 14px;font-size:12px;font-weight:500;text-decoration:none;display:grid;position:relative;box-shadow:inset 0 0 0 1px #00000026,0 6px 10px -6px #00000080}.tags__t i{background:var(--paper);border-radius:50%;width:6px;height:6px;margin-left:-3px;position:absolute;top:5px;left:50%;box-shadow:inset 0 0 0 1px #0000004d}.tags__t--1{rotate:4deg}.tags__t--0{rotate:-3deg}.lh{min-height:100svh;padding:96px var(--g) 64px;align-items:center;display:grid}.lh__sheet{background:var(--paper-2);grid-template-columns:minmax(0,4fr) minmax(0,6fr);align-items:center;gap:clamp(24px,5vw,64px);width:100%;max-width:980px;margin:0 auto;padding:clamp(28px,5vw,56px);display:grid;position:relative;box-shadow:0 1px 1px #2a2f3d26,0 40px 70px -46px #2a2f3d99,0 10px 16px -10px #2a2f3d4d}.lh__photo{background:#fff;padding:10px 10px 30px;position:relative;rotate:-3deg;box-shadow:0 20px 30px -20px #00000080}.lh__photo img{aspect-ratio:3/4;object-fit:cover;width:100%}.lh__clip{border:2px solid #8b8e86;border-radius:8px;width:16px;height:44px;position:absolute;top:-14px;left:24px}.lh__letter{font-family:var(--f-hand);color:var(--ink);background:repeating-linear-gradient(#0000 0 28px,#2a2f3d29 28px 29px,#0000 29px 36px);font-size:19px;font-weight:200;line-height:36px}.lh__date{color:var(--ink-2);text-align:right;font-size:17px}.lh__letter h1{font-family:var(--f-hand);margin:36px 0;font-size:44px;font-weight:300;line-height:72px;position:relative;top:7px}.lh__letter p:not(.lh__date){text-indent:2em;margin-top:0}.lh__letter .lh__sign{text-indent:0}.lh__sign{text-align:right}.lh__sign b{font-size:26px;font-weight:300;line-height:36px;display:block;position:relative;top:-6px}@media (max-width:760px){.lh__sheet{grid-template-columns:minmax(0,1fr)}.lh__photo{justify-self:center;width:78%}.lh__letter h1{font-size:38px}}.dy{padding:clamp(96px, 12vw, 150px) var(--g);background:#ddd3b8}.dy__head{text-align:center;max-width:600px;margin:0 auto clamp(36px,5vw,56px)}.dy__head h2,.lv h2{font-family:var(--f-serif);margin-top:8px;font-size:clamp(36px,4.6vw,56px);line-height:1.1}.dy__list{perspective:1200px;gap:clamp(28px,4vw,48px);max-width:900px;margin:0 auto;display:grid}.dy__page{background:repeating-linear-gradient(transparent 0 31px, #2a2f3d1f 31px 32px), var(--paper-2);grid-template-columns:minmax(0,4fr) minmax(0,6fr);align-items:center;gap:clamp(18px,4vw,44px);padding:22px;display:grid;box-shadow:0 20px 34px -26px #2a2f3d99}.dy__page--r .dy__photo{order:2}.dy__photo{position:relative}.dy__photo img{aspect-ratio:4/5;object-fit:cover;width:100%}.dy__tape{background:#c9b36a8c;width:70px;height:20px;margin-left:-35px;position:absolute;top:-10px;left:50%;rotate:-3deg}.dy__stamp{font-family:var(--f-mono);letter-spacing:.1em;color:#5a4f86;border:1.5px solid #5a4f86;border-radius:4px;padding:4px 10px;font-size:12px;display:inline-block;rotate:-2deg}.dy__note{font-family:var(--f-hand);margin-top:12px;font-size:17px;font-weight:200;line-height:32px}@media (max-width:640px){.dy__page{grid-template-columns:minmax(0,1fr)}.dy__page--r .dy__photo{order:0}.dy__photo img{aspect-ratio:4/3}}.lv{padding:clamp(96px, 12vw, 150px) var(--g) 40px}.lv__grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:clamp(24px,5vw,64px);max-width:1000px;margin:0 auto;display:grid}.lv__photo img{aspect-ratio:4/5;object-fit:cover;width:100%}.lv__permit{background:var(--paper-2);box-shadow:inset 0 0 0 1px var(--line), inset 0 0 0 8px var(--paper-2), inset 0 0 0 9px var(--olive-2);padding:clamp(24px,4vw,40px);position:relative}.lv__head{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--olive);font-size:12px}.lv__sub{color:var(--ink-2);margin-top:14px;font-style:italic}.cdl{gap:8px;margin-top:8px;display:flex}.cdl .cd__cell{background:var(--olive);color:var(--paper-2);flex:1;justify-items:center;padding:10px 0;display:grid}.cdl .cd__n{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:30px;font-weight:500;line-height:1}.cdl .cd__l{font-family:var(--f-mono);opacity:.8;font-size:11px}.cd--done{font-family:var(--f-hand);color:var(--red);font-size:26px;font-weight:300}.lv__promise{font-family:var(--f-hand);margin-top:18px;font-size:18px;font-weight:200;line-height:1.8}.lv__seal{border:2px solid var(--red);font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--red);background:var(--paper-2);border-radius:6px;padding:6px 12px;font-size:13px;position:absolute;top:-18px;right:18px;rotate:8deg}.lv__end{border-top:1px solid var(--line);text-align:center;max-width:1000px;margin:clamp(72px,9vw,110px) auto 0;padding-top:22px}.lv__big{font-family:var(--f-hand);font-size:clamp(26px,3.2vw,36px);font-weight:300;line-height:1.6}.lv__credit{color:var(--ink-2);margin-top:10px;font-size:14px}@media (max-width:760px){.lv__grid{grid-template-columns:minmax(0,1fr)}.lv__photo img{aspect-ratio:4/3}}body{background-image:var(--tex-fiber), var(--tex-grain-dark)}body:after{content:"";z-index:2147483000;pointer-events:none;background:var(--tex-grain-dark);mix-blend-mode:multiply;opacity:.45;position:fixed;inset:0}.lh__sheet{background:var(--tex-fiber), var(--tex-grain-dark), var(--paper-2)}.dy__page{background:var(--tex-fiber), var(--tex-grain-dark), repeating-linear-gradient(transparent 0 31px, #2a2f3d1f 31px 32px), var(--paper-2)}.lv__permit{background:var(--tex-fiber), var(--tex-grain-dark), var(--paper-2)}.tr__sheet,.tr__mirror{background:var(--tex-fiber), var(--tex-grain-dark), repeating-linear-gradient(transparent 0 7.4cqw, #2a2f3d24 7.4cqw calc(7.4cqw + 1px)), var(--paper-2)}.tr__face--out{background:var(--tex-fiber), var(--tex-grain-dark), linear-gradient(225deg, #f5efde, #e8dfc6)}@media (prefers-reduced-transparency:reduce){body:after{display:none}}.thulinh-root{font-family:var(--f-serif);color:inherit}
