:root{--cream:#faf5ec;--cream-soft:#faf5ecb8;--pine:#2f4a38;--night:#0a120e;--amber:#e9973e;--amber-soft:#f6c889;--serif:"Fraunces", Georgia, serif;--sans:"Inter", -apple-system, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto}body{background:var(--night);color:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit}#runway{height:820vh}#scene{width:100%;height:100%;display:block;position:fixed;inset:0}#loader{z-index:60;background:var(--night);flex-direction:column;justify-content:center;align-items:center;gap:14px;transition:opacity 1s,visibility 1s;display:flex;position:fixed;inset:0}#loader.done{opacity:0;visibility:hidden}#loader .word{font-family:var(--serif);letter-spacing:.24em;text-indent:.24em;color:var(--cream);font-size:clamp(26px,5vw,44px);font-weight:500}#loader .tag{letter-spacing:.3em;text-transform:uppercase;text-indent:.3em;color:var(--amber-soft);font-size:11px;font-weight:600}#loader .count{font-family:var(--serif);color:var(--cream-soft);font-variant-numeric:tabular-nums;margin-top:26px;font-size:15px;font-style:italic}#loader .bar{background:#faf5ec24;width:min(220px,50vw);height:1px;overflow:hidden}#loader .bar i{background:var(--amber);width:0%;height:100%;display:block}.hud-top{z-index:40;pointer-events:none;justify-content:space-between;align-items:center;padding:20px clamp(18px,4vw,44px);display:flex;position:fixed;top:0;left:0;right:0}.brand{pointer-events:auto;align-items:center;gap:11px;text-decoration:none;display:flex}.brand img{border-radius:50%;width:38px;height:38px;box-shadow:0 0 0 1px #faf5ec29,0 2px 10px #0006}.brand span{font-family:var(--serif);letter-spacing:.02em;font-size:17px;font-weight:600}.classic-link{pointer-events:auto;letter-spacing:.14em;text-transform:uppercase;color:var(--cream-soft);border:1px solid #faf5ec40;border-radius:999px;padding:9px 16px;font-size:12px;font-weight:600;text-decoration:none;transition:color .25s,border-color .25s,background .25s}.classic-link:hover{color:var(--cream);background:#faf5ec0f;border-color:#faf5ecb3}.rail{z-index:40;flex-direction:column;gap:16px;display:flex;position:fixed;top:50%;right:clamp(14px,3vw,30px);transform:translateY(-50%)}.rail button{cursor:pointer;background:0 0;border:none;place-items:center;width:26px;height:26px;padding:0;display:grid}.rail button:before{content:"";background:#faf5ec52;border-radius:50%;width:6px;height:6px;transition:background .3s,box-shadow .3s,transform .3s}.rail button.on:before{background:var(--amber);transform:scale(1.35);box-shadow:0 0 10px #e9973ecc}.hint{z-index:40;letter-spacing:.32em;text-transform:uppercase;text-indent:.32em;color:var(--cream-soft);opacity:0;pointer-events:none;flex-direction:column;align-items:center;gap:8px;font-size:11px;font-weight:600;transition:opacity 1s .4s;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}.hint.show{opacity:1}.hint .line{background:#faf5ec26;width:1px;height:34px;position:relative;overflow:hidden}.hint .line:after{content:"";background:var(--amber);width:100%;height:50%;animation:1.8s ease-in-out infinite drip;position:absolute;top:-50%;left:0}@keyframes drip{0%{top:-50%}to{top:110%}}.chapter{z-index:30;opacity:0;pointer-events:none;align-items:center;padding:0 clamp(22px,7vw,110px);display:flex;position:fixed;inset:0}.chapter.align-right{text-align:right;justify-content:flex-end}.chapter.align-center{text-align:center;justify-content:center}@media (min-width:701px){.chapter{align-items:flex-start;padding-top:92px;padding-bottom:92px}.chapter .inner{margin-top:auto;margin-bottom:auto}}.eyebrow{letter-spacing:.28em;text-transform:uppercase;color:var(--amber-soft);margin-bottom:16px;font-size:11.5px;font-weight:700}.chapter h1,.chapter h2{font-family:var(--serif);letter-spacing:-.01em;text-shadow:0 2px 40px #050906cc;text-wrap:balance;font-weight:500;line-height:1.06}.chapter h1{font-size:clamp(38px,6.4vw,74px)}.chapter h2{font-size:clamp(30px,4.6vw,54px)}.chapter h1 em,.chapter h2 em{color:var(--amber-soft);font-style:italic}.chapter p.lede{color:var(--cream-soft);text-shadow:0 1px 24px #050906cc;max-width:46ch;margin-top:18px;font-size:clamp(15px,1.7vw,18px);line-height:1.65}.chapter.align-right p.lede{margin-left:auto}.chapter.align-center p.lede{margin-inline:auto}.work-list{margin-top:24px;list-style:none}.work-list li{border-bottom:1px solid #faf5ec24}.work-list li:last-child{border-bottom:none}.work-list a{font-family:var(--serif);color:var(--cream);justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;font-size:clamp(17px,2.1vw,23px);text-decoration:none;transition:color .2s;display:flex}.work-list a:hover{color:var(--amber-soft)}.w-right{white-space:nowrap;align-items:baseline;gap:10px;display:inline-flex}.work-list .kind{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--amber-soft);white-space:nowrap;font-size:10.5px;font-weight:700;transition:color .2s}.work-list a:hover .kind{color:var(--cream)}.w-arrow{font-family:var(--sans);color:var(--amber);opacity:.7;font-size:.72em;transition:transform .25s,opacity .2s}.work-list a:hover .w-arrow{opacity:1;transform:translate(2px,-2px)}.work-hint{letter-spacing:.02em;color:var(--cream-soft);font-size:12px;font-style:italic;font-family:var(--serif);margin-top:16px}.steps{flex-direction:column;gap:18px;margin-top:26px;display:flex}.step{justify-content:flex-end;align-items:baseline;gap:16px;display:flex}.step .n{font-family:var(--serif);color:var(--amber);flex:none;font-size:15px;font-style:italic}.step .t{max-width:40ch}.step .t b{font-family:var(--serif);margin-bottom:3px;font-size:clamp(17px,2vw,21px);font-weight:600;display:block}.step .t span{color:var(--cream-soft);font-size:14px;line-height:1.55}blockquote{font-family:var(--serif);text-shadow:0 2px 40px #050906cc;font-size:clamp(20px,2.8vw,30px);font-style:italic;font-weight:400;line-height:1.45}blockquote:before{content:"“";color:var(--amber)}blockquote:after{content:"”";color:var(--amber)}.attrib{font-family:var(--serif);color:var(--amber-soft);margin-top:16px;font-size:15px;font-style:italic}.cta-row{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:30px;display:flex}.btn{pointer-events:auto;border-radius:999px;padding:15px 30px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .3s,box-shadow .3s,background .25s,border-color .25s;display:inline-block}.btn-amber{background:linear-gradient(180deg, #f2a854, var(--amber) 55%, #c9741f);color:#241708;box-shadow:0 4px 18px #c9741f73}.btn-amber:hover{transform:translateY(-2px);box-shadow:0 8px 30px #c9741f99}.btn-ghost{color:var(--cream);border:1.5px solid #faf5ec66}.btn-ghost:hover{border-color:#faf5ece6;transform:translateY(-2px)}.classic-note{color:var(--cream-soft);margin-top:22px;font-size:13px}.classic-note a{pointer-events:auto;color:var(--amber-soft)}.hud-right{pointer-events:auto;align-items:center;gap:14px;display:flex}.topnav{align-items:center;gap:16px;display:flex}.topnav a{letter-spacing:.03em;color:var(--cream-soft);cursor:pointer;font-size:13px;font-weight:600;text-decoration:none;transition:color .2s;position:relative}.topnav a:hover{color:var(--cream)}.topnav a:after{content:"";background:var(--amber);height:1.5px;transition:right .28s;position:absolute;bottom:-4px;left:0;right:100%}.topnav a:hover:after{right:0}.nav-cta{letter-spacing:.05em;color:#241708;background:linear-gradient(180deg, #f2a854, var(--amber) 60%, #c9741f);border-radius:999px;padding:9px 16px;font-size:12px;font-weight:700;text-decoration:none;transition:transform .25s,box-shadow .25s;box-shadow:0 3px 14px #c9741f66}.nav-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px #c9741f8c}.about-row{align-items:flex-start;gap:22px;margin-top:30px;display:flex}.about-photo{object-fit:cover;border:4px solid #faf5ece6;border-radius:16px;flex:none;width:116px;height:116px;transform:rotate(-2deg);box-shadow:0 10px 30px #00000080}.about-story{max-width:50ch}.gcard{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c120e80;border:1px solid #faf5ec24;border-radius:14px;padding:16px 18px}.value-cards{gap:14px;margin-top:22px;display:flex}.value-cards .gcard{flex:1}.gcard h3{font-family:var(--serif);margin-bottom:5px;font-size:17px;font-weight:600}.gcard p{color:var(--cream-soft);font-size:13.5px;line-height:1.5}.why-grid{grid-template-columns:1fr 1fr;gap:13px 26px;max-width:640px;margin-top:20px;display:grid}.why-item h3{font-family:var(--serif);margin-bottom:2px;font-size:16px;font-weight:600}.why-item p{color:var(--cream-soft);font-size:12.5px;line-height:1.42}.price-cards{scrollbar-width:none;scroll-snap-type:x proximity;gap:14px;width:min(720px,86vw);margin-top:22px;padding-bottom:6px;display:flex;overflow-x:auto}.pcard{scroll-snap-align:start}.price-cards::-webkit-scrollbar{display:none}.pcard{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0c120e8c;border:1px solid #faf5ec24;border-radius:16px;flex:0 0 208px;padding:20px}.badge-feat{letter-spacing:.1em;text-transform:uppercase;color:#241708;background:var(--amber-soft);border-radius:999px;margin-bottom:8px;padding:3px 9px;font-size:10px;font-weight:700;display:inline-block}.pname{letter-spacing:.12em;text-transform:uppercase;color:var(--amber-soft);font-size:12px;font-weight:700}.pprice{font-family:var(--serif);margin:6px 0 2px;font-size:30px;font-weight:500;line-height:1.05}.pprice span{color:var(--cream-soft);font-size:13px;font-weight:400;font-family:var(--sans);margin-top:4px;display:block}.pcard ul{margin-top:12px;list-style:none}.pcard li{color:var(--cream-soft);align-items:baseline;gap:7px;padding:4px 0;font-size:12.5px;display:flex}.pcard li:before{content:"✓";color:var(--amber);flex:none;font-weight:700}.pricing-note{text-align:center;max-width:60ch;font-family:var(--sans);color:var(--cream-soft);margin:16px auto 0;font-size:13px;line-height:1.5}.footer-line{color:var(--cream-soft);margin-top:22px;font-size:12px}.footer-line+.footer-line{margin-top:6px}.footer-line a{color:var(--cream-soft);text-underline-offset:3px;text-decoration:underline}.footer-line a:hover{color:var(--cream)}@media (max-width:980px){.topnav{gap:13px}.topnav a{font-size:12px}}@media (max-width:680px){.topnav{display:none}.about-row{flex-direction:column;gap:14px}.value-cards{flex-direction:column}.inner.wide{max-width:100%}.price-cards{scroll-snap-type:none;flex-direction:column;gap:10px;width:100%;margin-top:14px;overflow:visible}.pcard{flex:none;width:100%;padding:13px 15px}.pcard .pname{font-size:11px}.pprice{margin:2px 0 0;font-size:22px}.pprice span{margin-top:2px;font-size:11.5px}.badge-feat{margin-bottom:5px}.pcard ul{grid-template-columns:1fr 1fr;gap:1px 12px;margin-top:8px;display:grid}.pcard li{gap:6px;padding:2px 0;font-size:11px}}@media (max-width:460px){.brand span{display:none}.hud-right{gap:10px}.nav-cta{padding:8px 13px;font-size:11px}.classic-link{letter-spacing:.08em;padding:7px 11px;font-size:10.5px}}.vignette{z-index:20;pointer-events:none;background:radial-gradient(#0000 52%,#0408058c 100%);position:fixed;inset:0}.grain{z-index:21;pointer-events:none;opacity:.05;background-image: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='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#fallback{z-index:70;background:var(--night);color:var(--cream);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:30px;display:none;position:fixed;inset:0}#fallback.show{display:flex}#fallback h1{font-family:var(--serif);font-weight:500}@media (max-width:700px){.rail{display:none}.classic-link{padding:8px 12px;font-size:10.5px}.chapter{align-items:flex-end;padding:0 24px 20vh}.chapter .inner{max-height:calc(80vh - 92px);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;max-height:calc(80dvh - 92px);overflow-y:auto}.chapter h1,.chapter h2{text-shadow:0 1px 2px #050906,0 1px 4px #050906f2,0 2px 18px #050906e6,0 2px 48px #050906d9}.chapter p.lede,.chapter .eyebrow,.step .t span,.step .t b,.why-item p,.why-item h3,.work-hint,.chapter .footer-line,.attrib{text-shadow:0 1px 2px #050906,0 1px 5px #050906e6,0 1px 14px #050906d9}.chapter.align-center{align-items:center;padding-bottom:0}.chapter.align-center .inner{max-height:calc(100vh - 184px);max-height:calc(100dvh - 184px)}.chapter:first-of-type h1{font-size:clamp(27px,7.6vw,34px)}.chapter:first-of-type p.lede{margin-top:12px;font-size:14px;line-height:1.5}.chapter:first-of-type .cta-row{margin-top:16px}.chapter:first-of-type .footer-line{margin-top:14px;font-size:11px}.step{justify-content:flex-start}.chapter.align-right{text-align:left;justify-content:flex-start}.chapter.align-right p.lede{margin-left:0}.chapter-pricing{align-items:flex-start;padding-top:86px;padding-bottom:8px}.chapter-pricing .inner{max-height:calc(100vh - 94px);max-height:calc(100dvh - 94px)}.chapter-pricing h2{margin-bottom:12px;font-size:clamp(22px,6.6vw,30px);line-height:1.12}.chapter-pricing .eyebrow{margin-bottom:8px}.chapter-about{align-items:flex-start;padding-top:92px;padding-bottom:16px}.chapter-about .inner{max-height:calc(100vh - 108px);max-height:calc(100dvh - 108px)}.chapter-about .about-photo{border-width:4px;width:118px;height:118px}.chapter-about h2{margin-bottom:8px;font-size:clamp(22px,6.6vw,30px)}.chapter-about .eyebrow{margin-bottom:8px}.chapter-about .about-story p.lede{margin-top:8px;font-size:13px;line-height:1.5}}@media (max-width:700px) and (max-height:900px){.chapter-pricing .eyebrow,.chapter-pricing h2{margin-bottom:8px}.chapter-pricing .price-cards{margin-top:10px}.chapter-pricing .pcard{padding:11px 16px}.chapter-pricing .pcard ul{margin-top:6px}.chapter-pricing .pcard li{padding:1px 0;font-size:11.5px;line-height:1.3}.chapter-pricing .pprice{margin:2px 0 1px}.pricing-note{margin-top:8px;font-size:11.5px;line-height:1.35}}@media (max-width:680px) and (max-height:740px){.chapter-pricing h2{display:none}.chapter-pricing .eyebrow{margin-bottom:6px}.chapter-about h2{display:none}.chapter-about .about-photo{border-width:3px;width:88px;height:88px}.chapter-about .about-row{gap:12px}.chapter-about .about-story p.lede{font-size:12px;line-height:1.42}.chapter-about .about-story p.lede+p.lede{margin-top:8px!important}.chapter-about .attrib{margin-top:8px;font-size:13px}.price-cards{gap:5px;margin-top:4px}.pcard{padding:7px 13px}.pcard ul{margin-top:3px}.pcard li{padding:.5px 0;font-size:11.5px;line-height:1.28}.pprice{font-size:20px}.pricing-note{margin-top:8px;font-size:11px;line-height:1.35}.chapter-pricing .lede{margin-top:6px;font-size:12.5px}.chapter-pricing .pcard{padding:5px 12px}.chapter-pricing .pcard li{font-size:11px;line-height:1.22}.chapter-pricing .pname{font-size:10.5px}.chapter-pricing .pprice{font-size:18px}.chapter-pricing .pprice span{margin-top:0;font-size:10.5px}.chapter-pricing .price-cards{gap:4px}.chapter-pricing .pricing-note{margin-top:6px;font-size:10.5px;line-height:1.3}.chapter-work h2{margin-bottom:6px;font-size:clamp(20px,5.8vw,26px)}.chapter-work .lede{margin-top:6px;font-size:12.5px;line-height:1.4}.chapter-work .work-list{margin-top:14px}.chapter-work .work-list a{padding:7px 0}.chapter-work .w-name{font-size:13.5px}.chapter-work .kind{font-size:10.5px}.chapter-work .work-hint{margin-top:8px;font-size:11px}}@media (max-width:680px) and (max-height:600px){.chapter-about .about-photo{border-width:2px;width:68px;height:68px}.chapter-about .about-row{gap:10px}.chapter-about .about-story p.lede{font-size:11px;line-height:1.35}.chapter-about .attrib{margin-top:6px;font-size:12px}.pcard{padding:8px 11px}.pcard li{padding:.5px 0;font-size:11px}.pprice{font-size:18px}.pricing-note{display:none}}@media (min-width:701px) and (max-height:820px){.chapter h1{font-size:clamp(30px,4.8vw,52px)}.chapter h2{font-size:clamp(24px,3.6vw,40px)}.eyebrow{margin-bottom:10px}.chapter p.lede{margin-top:12px;font-size:15px;line-height:1.5}.about-row{gap:18px;margin-top:16px}.about-photo{width:88px;height:88px}.about-story p.lede{font-size:13.5px}.attrib{margin-top:10px;font-size:14px}.work-list{margin-top:14px}.work-list a{padding:8px 0}.work-hint{margin-top:10px}.value-cards{margin-top:16px}.gcard{padding:12px 14px}.steps{gap:12px;margin-top:16px}.price-cards{margin-top:14px}.pcard{padding:14px 16px}.pcard ul{margin-top:8px}.pcard li{padding:2px 0;font-size:12px}.pprice{font-size:24px}.cta-row{margin-top:20px}.footer-line{margin-top:14px}}@media (min-width:701px) and (max-height:640px){.chapter h1{font-size:clamp(26px,4vw,42px)}.chapter h2{font-size:clamp(22px,3vw,32px)}.chapter p.lede{margin-top:8px;font-size:13.5px}.about-photo{display:none}.about-story p.lede{font-size:12.5px;line-height:1.45}.pcard li{padding:1px 0;font-size:11.5px}.pprice{font-size:20px}}.scene-shade{z-index:19;pointer-events:none;background:linear-gradient(90deg,#050906cc 0%,#05090687 28%,#05090614 57%,#0000 78%);position:fixed;inset:0}.hud-top{background:linear-gradient(#0a120e99,#0000);gap:22px;padding:26px 3.5vw}.brand span{font-size:18px}.brand img{width:39px;height:39px;box-shadow:none}.topnav a{letter-spacing:0;font-size:14px;font-weight:500}.hud-right{gap:21px}.nav-cta{box-shadow:0 3px 14px #c9741f66;color:#241708;letter-spacing:0;background:linear-gradient(180deg,#f2a854,var(--amber) 60%,#c9741f);border-radius:3px;padding:12px 19px;font-size:13px}.classic-link{letter-spacing:.07em;border:0;padding:9px 0;font-size:12px}.btn{border-radius:3px;padding:14px 24px;font-size:14px}.btn-amber{box-shadow:0 4px 18px #c9741f73;color:#241708;background:linear-gradient(180deg,#f2a854,var(--amber) 55%,#c9741f)}.btn-amber:hover,.nav-cta:hover{background:linear-gradient(180deg,#f7b566,#eea24a 55%,#d07f28);box-shadow:0 8px 30px #c9741f99}.btn-ghost{background:#0a120e33;border:1px solid #faf5ec66}.chapter{padding-left:7vw;padding-right:7vw}.chapter .inner{max-width:560px}.chapter h1{letter-spacing:-.035em;font-size:clamp(42px,5.1vw,72px);line-height:1.04}.chapter h2{letter-spacing:-.025em;font-size:clamp(34px,4vw,52px);line-height:1.09}.eyebrow{letter-spacing:.2em;margin-bottom:20px;font-size:12px;font-weight:500}.chapter p.lede{text-shadow:0 2px 18px #050906;font-size:16px;line-height:1.7}.chapter-about .inner{max-width:770px}.about-story p.lede{font-size:16px;line-height:1.65}.about-photo{border:1px solid #f6c88966;border-radius:3px;width:110px;height:140px;transform:none}.about-row{gap:23px;margin-top:22px}.why-grid{gap:23px 30px;margin-top:30px}.why-item h3{margin-bottom:6px;font-size:21px;font-weight:400}.why-item p{font-size:15px;line-height:1.6}.why-item{border-top:1px solid #faf5ec2f;padding-top:14px}.step{justify-content:flex-start}.step .t b{font-size:22px;font-weight:400}.step .t span{font-size:16px;line-height:1.6}.step .n{font-size:18px}.work-list .kind{font-size:12px}.work-list a{padding:17px 0;font-size:25px}.work-hint,.footer-line,.classic-note{font-size:13px;line-height:1.6}.inner.wide{max-width:820px}.chapter-pricing{text-align:center;justify-content:center}.chapter-pricing .inner{max-width:960px}.price-cards{text-align:left;gap:14px;width:100%;overflow:visible}.pcard{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0a120ea6;border-radius:4px;flex:1;padding:24px}.pcard.feat{background:#2f4a38b8;border-color:#e9973e8c}.pcard li{padding:5px 0;font-size:14px;line-height:1.5}.pname{font-size:13px}.pprice{font-size:36px}.pprice span{font-size:14px}.pricing-note{max-width:78ch;font-size:14px;line-height:1.6}.badge-feat{border-radius:2px;font-size:11px;font-weight:500}.chapter.align-center{justify-content:center}.chapter.align-center .inner{max-width:630px}.vignette{background:radial-gradient(at 62% 46%,#0000 44%,#0408058c 100%)}.grain{opacity:.025}.rail{gap:18px;right:3.5vw}.rail button{cursor:pointer;width:9px;height:9px;box-shadow:none;background:0 0;border:1px solid #faf5ec80;border-radius:50%;position:relative}.rail button.on{background:var(--amber);transform:scale(1);box-shadow:0 0 13px #e9973ecc}.rail button span{text-align:right;color:#f5f2e8;opacity:0;pointer-events:none;width:100px;font-size:12px;transition:opacity .2s;position:absolute;top:-5px;right:23px}:is(.rail button:hover span,.rail button:focus-visible span){opacity:1}.chapter-meter{z-index:35;color:var(--cream-soft);letter-spacing:.13em;pointer-events:none;font-variant-numeric:tabular-nums;gap:20px;font-size:12px;display:flex;position:fixed;bottom:31px;right:3.5vw}.hint{text-align:left;letter-spacing:.2em;font-size:11px;font-weight:500;bottom:28px;left:7vw;transform:none}.hint .line{height:32px;margin-top:12px;margin-left:0}.chapter h1,.chapter h2{text-shadow:0 2px 34px #05090699}:is(a:focus-visible,button:focus-visible){outline-offset:6px;outline:2px solid var(--amber-soft)}@media (min-width:701px) and (max-height:820px){.chapter{padding-top:100px;padding-bottom:78px}.chapter h1{font-size:clamp(40px,4.7vw,60px)}.chapter h2{font-size:38px}.chapter p.lede{font-size:16px;line-height:1.6}.about-photo{width:96px;height:118px;display:block}.about-story p.lede{font-size:15px;line-height:1.5}.chapter-about .inner{max-width:800px}.chapter-about h2{font-size:34px}.pcard li{font-size:14px;line-height:1.4}.pprice{font-size:31px}.eyebrow{margin-bottom:13px}}@media (max-width:1120px){.topnav{gap:14px}.topnav a{font-size:13px}.hud-right{gap:16px}.classic-link{font-size:11px}.brand span{font-size:16px}}@media (max-width:940px){.topnav{display:none}.chapter .inner{max-width:530px}.chapter-about .inner{max-width:700px}.chapter-pricing .inner{max-width:780px}.pcard{padding:19px}.chapter-meter{bottom:22px}}@media (max-width:700px){.hud-top{padding:20px}.brand span{font-size:15px;display:inline}.brand img{width:30px;height:30px}.hud-right{gap:13px}.classic-link{font-size:10px}.nav-cta{padding:10px 12px;font-size:11px}.scene-shade{background:linear-gradient(#0000,#05090645 35%,#050906d6)}.chapter{align-items:flex-end;padding:94px 23px 84px}.chapter .inner{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#d5c09a55 transparent;max-height:calc(100dvh - 180px);padding-right:4px;overflow-y:auto}.chapter:first-of-type h1{font-size:clamp(33px,7.8vw,43px);line-height:1.08}.chapter:first-of-type p.lede,.chapter p.lede{font-size:16px;line-height:1.65}.chapter h2,.chapter-pricing h2,.chapter-about h2{font-size:33px;line-height:1.1;display:block}.chapter-about,.chapter-pricing{align-items:center;padding-top:88px;padding-bottom:76px}.chapter-about .inner,.chapter-pricing .inner,.chapter.align-center .inner{max-height:calc(100dvh - 165px)}.chapter-about .about-photo,.about-photo{width:78px;height:96px;display:block}.chapter-about .about-story p.lede{font-size:16px;line-height:1.65}.chapter-about .about-row{gap:17px}.chapter-pricing .price-cards{gap:16px;margin-top:20px}.chapter-pricing .pcard{padding:19px}.chapter-pricing .pcard li{padding:3px 0;font-size:14px;line-height:1.55}.pcard ul{display:block}.chapter-pricing .pprice{font-size:30px}.chapter-pricing .pprice span,.chapter-pricing .pname{font-size:13px}.chapter-pricing .pricing-note,.pricing-note{margin-top:17px;font-size:14px;line-height:1.6;display:block}.chapter-work h2{font-size:34px}.chapter-work .lede{font-size:16px;line-height:1.6}.chapter-work .work-list a{padding:15px 0}.chapter-work .w-name{font-size:19px}.chapter-work .kind{white-space:normal;text-align:right;max-width:78px;font-size:10px}.chapter-work .work-hint{font-size:13px}.why-grid{gap:18px}.why-item h3{font-size:19px}.why-item p{font-size:14px}.step .t span{font-size:16px}.step .t b{font-size:22px}.hint{bottom:21px;left:23px}.hint .line{height:24px}.chapter-meter{gap:11px;font-size:10px;bottom:26px;right:23px}.chapter.align-center{padding-top:88px;padding-bottom:76px}.footer-line{font-size:12px!important}}@media (max-width:420px){.brand span{font-size:14px}.classic-link{display:none}.hud-right{gap:8px}.brand{gap:7px}.hud-top{padding-inline:17px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important}}/* Reduced motion: the scroll-hint drip is deliberately EXEMPT (Front Porch Web house rule — ambient decorative motion keeps running; see demos/schaefer-technologies/css/style.css). To honour the OS setting again add `animation:none!important` back to the rule above. */

/* ══════════════════════════════════════════════════════════════════════════
   MOBILE — restored from the previous homepage.

   The redesign appended a phone layer that raised body copy to 16px, headings
   to 33px, pricing bullets to 14px, dropped the two-column feature grid, and
   re-centred About and Pricing. On a real phone that pushes those sections
   past the height budget, so the top of the text hides behind the fixed
   header and the tail gets cut off. The previous homepage solved this with
   per-section anchoring and a compact type scale; those rules are still
   earlier in this file but the later layer outranked them, so they are
   restated here where they win.

   Kept from the redesign: the scene shade, the chapter meter, the portrait
   photo shape, and the work list's wrapping category label.

   Why the sections anchor to the top rather than centre: a centred block that
   outgrows the screen bleeds upward behind the logo with no way to reach it.
   Anchored below the header, the overflow grows downward and scrolls.

   Why two max-height declarations: iOS Safari reports 100vh as the largest
   possible viewport, not the visible one, so content that "fits" can still be
   clipped. 100dvh tracks the real viewport and is declared second so it wins
   wherever it is supported.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 700px) {
  .chapter {
    align-items: flex-end;
    padding: 0 24px 20vh;
  }
  .chapter .inner {
    max-height: calc(100vh - 20vh - 92px);
    max-height: calc(100dvh - 20dvh - 92px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }

  /* type scale */
  .chapter:first-of-type h1 { font-size: clamp(27px, 7.6vw, 34px); line-height: 1.08; }
  .chapter p.lede,
  .chapter:first-of-type p.lede,
  .chapter-work .lede { font-size: 14px; line-height: 1.5; }
  .chapter:first-of-type p.lede { margin-top: 12px; }
  .chapter:first-of-type .cta-row { margin-top: 16px; }
  .chapter:first-of-type .footer-line { margin-top: 14px; }
  .chapter h2,
  .chapter-about h2,
  .chapter-pricing h2,
  .chapter-work h2 { font-size: clamp(22px, 6.6vw, 30px); line-height: 1.12; margin-bottom: 12px; }
  .footer-line { font-size: 11px !important; }

  /* centred closing chapter keeps its own budget */
  .chapter.align-center { align-items: center; padding-top: 0; padding-bottom: 0; }
  .chapter.align-center .inner {
    max-height: calc(100vh - 184px);
    max-height: calc(100dvh - 184px);
  }

  /* About: text-heavy, anchor below the header and compact the story */
  .chapter-about { align-items: flex-start; padding-top: 92px; padding-bottom: 16px; }
  .chapter-about .inner {
    max-height: calc(100vh - 108px);
    max-height: calc(100dvh - 108px);
  }
  .chapter-about .about-row { gap: 14px; }
  .chapter-about .about-story p.lede { font-size: 13px; line-height: 1.5; margin-top: 8px; }
  .chapter-about .about-photo,
  .about-photo { width: 96px; height: 118px; }
  .attrib { font-size: 13px; margin-top: 10px; }

  /* Pricing: three stacked tiers need the full height, features go two-up */
  .chapter-pricing { align-items: flex-start; padding-top: 86px; padding-bottom: 8px; }
  .chapter-pricing .inner {
    max-height: calc(100vh - 94px);
    max-height: calc(100dvh - 94px);
  }
  .price-cards,
  .chapter-pricing .price-cards { gap: 10px; margin-top: 14px; }
  .pcard,
  .chapter-pricing .pcard { padding: 13px 15px; }
  .pcard ul,
  .chapter-pricing .pcard ul {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px 12px;
    margin-top: 8px;
  }
  .pcard li,
  .chapter-pricing .pcard li { font-size: 11px; padding: 2px 0; line-height: 1.4; gap: 6px; }
  .pprice,
  .chapter-pricing .pprice { font-size: 22px; margin: 2px 0 0; }
  .pprice span,
  .chapter-pricing .pprice span,
  .pname,
  .chapter-pricing .pname { font-size: 11.5px; }
  .badge-feat { margin-bottom: 5px; }
  .pricing-note,
  .chapter-pricing .pricing-note { margin-top: 10px; font-size: 11.5px; line-height: 1.35; }

  /* Trust grid, process steps, work list */
  .why-grid { gap: 13px 26px; }
  .why-item h3 { font-size: 16px; margin-bottom: 2px; }
  .why-item p { font-size: 12.5px; line-height: 1.42; }
  .steps { gap: 14px; margin-top: 20px; }
  .step .t b { font-size: clamp(17px, 2vw, 21px); }
  .step .t span { font-size: 14px; line-height: 1.55; }
  .work-list { margin-top: 16px; }
  .chapter-work .work-list a { padding: 8px 0; }
  .chapter-work .w-name { font-size: 15px; }
  .chapter-work .work-hint { font-size: 11px; }
}

/* Most phones report well under 900px tall once the address bar is showing.
   These tiers keep every word and tighten spacing so the sections still fit
   without leaning on the internal scroll, which otherwise fights scroll-snap. */
@media (max-width: 700px) and (max-height: 900px) {
  .chapter-pricing .eyebrow,
  .chapter-pricing h2 { margin-bottom: 8px; }
  .chapter-pricing .price-cards { margin-top: 10px; }
  .chapter-pricing .pcard { padding: 11px 16px; }
  .chapter-pricing .pcard ul { margin-top: 6px; }
  .chapter-pricing .pcard li { padding: 1px 0; line-height: 1.3; }
  .chapter-pricing .pprice { margin: 2px 0 1px; }
  .pricing-note,
  .chapter-pricing .pricing-note { margin-top: 8px; }
}

@media (max-width: 700px) and (max-height: 740px) {
  .chapter-pricing h2,
  .chapter-about h2 { display: none; }
  .chapter-about .about-photo,
  .about-photo { width: 72px; height: 88px; }
  .chapter-about .about-row { gap: 12px; }
  .chapter-about .about-story p.lede { font-size: 12px; line-height: 1.42; }
  .attrib { font-size: 12px; margin-top: 8px; }
  .price-cards,
  .chapter-pricing .price-cards { gap: 5px; margin-top: 4px; }
  .pcard,
  .chapter-pricing .pcard { padding: 7px 13px; }
  .pcard ul,
  .chapter-pricing .pcard ul { margin-top: 3px; }
  .pcard li,
  .chapter-pricing .pcard li { font-size: 11px; padding: .5px 0; line-height: 1.25; }
  .pprice,
  .chapter-pricing .pprice { font-size: 18px; }
  .pricing-note,
  .chapter-pricing .pricing-note { margin-top: 6px; font-size: 10.5px; line-height: 1.3; }
  .chapter-work h2 { font-size: clamp(20px, 5.8vw, 26px); margin-bottom: 6px; }
  .chapter-work .work-list a { padding: 7px 0; }
  .chapter-work .w-name { font-size: 13.5px; }
  .chapter-work .lede { font-size: 12.5px; line-height: 1.4; }
  .steps { gap: 11px; margin-top: 14px; }
}

@media (max-width: 700px) and (max-height: 600px) {
  .chapter-about .about-photo,
  .about-photo { width: 56px; height: 68px; }
  .chapter-about .about-row { gap: 10px; }
  .chapter-about .about-story p.lede { font-size: 11px; line-height: 1.35; }
  .pcard,
  .chapter-pricing .pcard { padding: 8px 11px; }
  .pricing-note,
  .chapter-pricing .pricing-note { display: none; }
  /* Trust runs two columns of six items; on the shortest screens it is the one
     block that still outgrows the budget, so tighten it rather than let it
     scroll internally. Hero copy gets the same treatment. */
  .why-grid { gap: 9px 20px; margin-top: 14px; }
  .why-item { padding-top: 9px; }
  .why-item h3 { font-size: 14px; }
  .why-item p { font-size: 11.5px; line-height: 1.35; }
  .chapter:first-of-type p.lede { font-size: 13px; line-height: 1.45; margin-top: 10px; }
  .chapter:first-of-type .cta-row { margin-top: 12px; }
  .chapter:first-of-type .footer-line { margin-top: 10px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   NOTHING BLOCKS THE HOUSE — restored from the previous homepage.

   The walk up to the porch is the point of this site, so the scene stays
   fully visible and layered text-shadows carry the contrast instead of
   panels, tints or blur.

   The redesign added a full-screen "scene shade" that darkened the left 57%
   of the desktop view and the bottom half on phones, which is exactly where
   the house and the lit path sit. That element is gone from the markup; the
   rules below undo the rest of the dimming it came with.
   ══════════════════════════════════════════════════════════════════════════ */
.scene-shade { display: none !important; }

/* Centred vignette that stays clear across the middle, where the house is,
   rather than the redesign's off-centre one that closed in at 44%. */
.vignette {
  background: radial-gradient(ellipse at center, transparent 52%, rgba(4, 8, 5, 0.55) 100%);
}

/* No scrim across the top of the sky. */
.hud-top { background: none; }

/* Pricing cards: back to the lighter glass of the old site, so the porch
   still reads through them. */
.pcard,
.chapter-pricing .pcard {
  background: rgba(12, 18, 14, 0.55);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(250, 245, 236, 0.14);
}
.pcard.feat,
.chapter-pricing .pcard.feat {
  background: rgba(47, 74, 56, 0.55);
  border-color: rgba(233, 151, 62, 0.6);
}

/* Contrast comes from the letters themselves, never a panel behind them: one
   tight shadow hugging each glyph plus wide soft halos. The old site used only
   the halos because its scene was a dark night. This one is a golden hour with
   a bright sky and a lit path, so body copy crossing the lanterns needs the
   tight layer as well. Both desktop and phone use it. */
.chapter h1,
.chapter h2,
blockquote {
  text-shadow: 0 1px 2px rgba(5, 9, 6, .95), 0 2px 18px rgba(5, 9, 6, .85),
               0 2px 48px rgba(5, 9, 6, .8);
}
.chapter p.lede,
.chapter .eyebrow,
.step .t span, .step .t b,
.why-item p, .why-item h3,
.work-hint, .chapter .footer-line, .attrib,
.w-name, .kind, .classic-note {
  text-shadow: 0 1px 2px rgba(5, 9, 6, .95), 0 1px 6px rgba(5, 9, 6, .85),
               0 1px 20px rgba(5, 9, 6, .8);
}

/* Phones sit the text lower, over the brightest part of the scene, so they get
   a touch more again — still no panel behind the words. */
@media (max-width: 700px) {
  .chapter h1,
  .chapter h2 {
    text-shadow: 0 1px 2px rgba(5, 9, 6, 1), 0 1px 4px rgba(5, 9, 6, .95),
                 0 2px 18px rgba(5, 9, 6, .9), 0 2px 48px rgba(5, 9, 6, .85);
  }
  .chapter p.lede, .chapter .eyebrow, .step .t span, .step .t b,
  .why-item p, .why-item h3, .work-hint, .chapter .footer-line, .attrib,
  .pname, .pprice, .pcard li, .pricing-note, .w-name, .kind {
    text-shadow: 0 1px 2px rgba(5, 9, 6, 1), 0 1px 5px rgba(5, 9, 6, .9),
                 0 1px 14px rgba(5, 9, 6, .85);
  }
}
