@font-face{font-family:DeliceraDisplay;src:url('assets/display.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:DeliceraDisplay;src:url('assets/display-italic.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
:root{--paper:#f4edde;--ink:#583d2e;--root-deep:#3d281f;--root-mid:#614131;--root-light:#a98d70;--muted:#806653;--line:#cfbfaa;--accent:#956e43;--thumb:#9e856c;--thumb-hover:#70513a;--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--thumb) var(--paper)}
::-webkit-scrollbar{width:9px}::-webkit-scrollbar-track{background:var(--paper)}::-webkit-scrollbar-thumb{background:var(--thumb);border:2px solid var(--paper);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--thumb-hover)}::-webkit-scrollbar-thumb:active{background:var(--ink)}
html{scroll-behavior:smooth;scroll-snap-type:y proximity;scroll-padding-top:0}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Segoe UI',Arial,sans-serif;font-size:16px;line-height:1.7;overflow-x:hidden}::selection{background:var(--ink);color:var(--paper)}a{color:inherit;text-decoration:none;cursor:pointer}a:focus-visible{outline:2px solid var(--ink);outline-offset:7px}a:active{opacity:.7}.skip-link{position:fixed;top:12px;left:12px;transform:translateY(-180%);background:var(--ink);color:var(--paper);padding:12px 20px;z-index:5}.skip-link:focus{transform:translateY(0)}
.header{height:112px;display:flex;align-items:center;justify-content:space-between;padding:0 6.1%;position:relative;z-index:2}.wordmark{font-family:DeliceraDisplay,Georgia,serif;font-size:44px;line-height:1;letter-spacing:-.045em}.brand-dot{color:var(--accent)}nav{display:flex;align-items:center;gap:40px;font-size:14px}nav a{transition:color .18s}nav a:hover{color:var(--accent)}.nav-contact{border:1px solid var(--line);border-radius:2px;padding:10px 19px}.nav-contact:hover{border-color:var(--ink)}.nav-contact span{margin-left:25px}
.hero{position:relative;max-width:1600px;margin:auto;height:calc(100svh - 112px);min-height:620px;max-height:900px;scroll-snap-align:start}.hero-copy{position:absolute;left:8.3%;top:18%;z-index:3}.hero h1{font-family:DeliceraDisplay,Georgia,serif;font-size:clamp(56px,5.5vw,84px);font-weight:400;letter-spacing:-.035em;line-height:1.05;margin:0 0 24px}em{font-family:DeliceraDisplay,Georgia,serif;font-weight:400}.hero-copy p{font-size:17px;line-height:1.65;margin:0 0 30px}.text-link{display:inline-flex;gap:26px;align-items:center;border-bottom:1px solid var(--ink);padding:7px 0;font-size:14px;transition:color .2s,gap .3s var(--ease)}.text-link:hover{gap:35px;color:var(--accent)}.tree-stage{position:absolute;left:63%;bottom:65px;width:min(52vw,770px);height:88%;transform:translateX(-50%);display:flex;align-items:flex-end;pointer-events:none;z-index:2}.tree{width:100%;height:100%;object-fit:contain;object-position:center bottom;mix-blend-mode:multiply;transform-origin:50% 100%;animation:tree-arrive 1.3s var(--ease) both}.hero-note{position:absolute;right:5.3%;bottom:22%;font-size:14px;line-height:1.65;z-index:3}.small-leaf{display:block;width:21px;height:35px;border:1px solid var(--ink);border-radius:95% 0 95% 0;transform:rotate(25deg);position:relative}.small-leaf:after{content:'';position:absolute;left:48%;top:3px;width:1px;height:28px;background:var(--ink);transform:rotate(29deg)}.hero-note p{margin-top:16px}.scroll-note{position:absolute;left:8.3%;bottom:37px;display:flex;gap:14px;align-items:center;font-size:12px;letter-spacing:.03em;z-index:3}.scroll-line{width:1px;height:36px;background:var(--ink);position:relative}.scroll-line:after{content:'';position:absolute;bottom:0;left:-3px;width:7px;height:7px;border-right:1px solid;border-bottom:1px solid;transform:rotate(45deg)}.hero-caption{position:absolute;right:6.1%;bottom:36px;font-size:10px;letter-spacing:.18em;z-index:3}
.story{position:relative;max-width:1280px;margin:auto;z-index:2}.story-section{min-height:clamp(620px,100svh,860px);position:relative;display:flex;align-items:flex-start;padding:110px 8% 100px;gap:15%;scroll-snap-align:start;--arrival:1}.section-copy{width:38%;position:relative;z-index:1}.story-left .section-copy{margin-right:auto}.story-right .section-copy{margin-left:auto}.section-copy h2,.closing h2{font-family:DeliceraDisplay,Georgia,serif;font-size:clamp(43px,4.3vw,62px);line-height:1.13;font-weight:400;letter-spacing:-.025em;margin:0 0 27px;text-wrap:balance}.section-copy p{font-size:17px;line-height:1.8;max-width:40ch;margin:0 0 17px}.section-copy h2,.section-copy p,.occasion-list,.section-copy .text-link{background:none;box-shadow:none}.branch-point{display:block;width:12px;height:12px;border:0;background:var(--root-deep);border-radius:50%;margin:0 0 54px 21px;box-shadow:none;position:relative;transition:background .3s,transform .4s var(--ease)}.branch-point:after{content:'';position:absolute;inset:-7px;border:1px solid var(--line);border-radius:50%;transition:border-color .3s}.point-reached .branch-point{background:var(--accent);transform:scale(1.15)}.point-reached .branch-point:after{border-color:var(--accent)}.motion-ready .section-copy h2{transform:translateY(calc((1 - var(--arrival)) * 10px));opacity:calc(.76 + var(--arrival) * .24);transition:opacity .35s var(--ease),transform .5s var(--ease)}.motion-ready .branch-point{opacity:calc(.48 + var(--arrival) * .52)}.margin-note{font-family:DeliceraDisplay,Georgia,serif;font-style:italic;font-size:26px;line-height:1.4;margin:150px 0 0 auto;max-width:210px;transform:rotate(-5deg)}.occasion-list{display:flex;flex-wrap:wrap;gap:7px 15px;margin-top:25px;color:var(--muted);font-size:12px}.occasion-list span+span:before{content:'·';margin-right:15px}.closing{padding:110px 24px 120px;text-align:center;position:relative;z-index:2;background:var(--paper);scroll-snap-align:start}.closing .small-leaf{margin:0 auto 35px}.closing>p{font-size:14px;margin:0 0 16px}.closing h2{font-size:clamp(48px,5.5vw,76px);margin-bottom:35px}footer{border-top:1px solid var(--line);margin:0 6.1%;padding:38px 0;display:flex;align-items:center;justify-content:space-between;gap:25px}footer .wordmark{font-size:35px}footer p,footer>span{font-size:12px;color:var(--muted)}
.tree-stage{left:63%;width:min(52vw,770px);height:88%;bottom:65px;transform:translateX(-50%)}
.hero-roots{position:absolute;bottom:-1px;left:0;width:100%;height:105px;overflow:visible;pointer-events:none;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.hero-roots .connector-main{stroke-width:4}
@keyframes tree-arrive{from{opacity:.4;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1450px){.hero-copy{left:10%}.hero-note{right:9%}}
@media(max-width:1000px){.header{height:96px}.hero{height:740px;min-height:0}.hero-copy{left:7%;top:7%}.hero h1{font-size:61px}.tree-stage{width:70%;height:75%;left:45%;transform:translateX(-30%)}.hero-note{bottom:15%;right:6%}.hero-caption{display:none}.section-copy{width:41%}.story-section{padding-left:6%;padding-right:6%}.margin-note{margin-right:2%;font-size:22px}}
@media(max-width:650px){.header{height:88px;padding:0 6%}.wordmark{font-size:36px}nav{gap:19px;font-size:12px}nav a:first-child{display:none}.nav-contact{padding:8px 11px}.nav-contact span{margin-left:10px}.hero{height:760px;max-height:none}.hero-copy{top:25px;left:7%;}.hero h1{font-size:59px;margin-bottom:17px}.hero-copy p{font-size:15px;margin-bottom:17px}.text-link{font-size:13px}.tree-stage{left:50%;transform:translateX(-50%);width:100%;height:430px;bottom:0}.hero-note{display:none}.scroll-note{left:auto;right:6%;bottom:24px;max-width:75px;line-height:1.4;font-size:10px;gap:9px}.story{margin:0 5%}.roots{left:-37%;width:100%;opacity:.75}.story-section{min-height:435px;padding:56px 3% 35px 23%}.section-copy{width:100%;max-width:none}.section-copy h2{font-size:40px}.section-copy p{font-size:15px}.margin-note{display:none}.story-right .section-copy{margin:0}.branch-point{margin-bottom:23px}.root{stroke-width:2}.main-root{stroke-width:3}.thin-root{stroke-width:.9}.closing{padding:65px 24px 85px}.closing h2{font-size:52px}footer{flex-wrap:wrap;padding:28px 0;gap:14px}footer p{order:3;width:100%;margin:0}}
@media(min-width:651px) and (max-width:1000px){.tree-stage{left:63%;transform:translateX(-50%);width:65%;height:66%;bottom:65px}}
@media(max-width:650px){.tree-stage{bottom:65px;height:390px;width:100%}.hero-roots{height:105px}.roots{overflow:hidden}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tree{animation:none}.text-link{transition:color .15s}.root{stroke-dasharray:none!important;stroke-dashoffset:0!important}}
@media(forced-colors:active){*{scrollbar-color:auto}.root{stroke:CanvasText}.small-leaf,.small-leaf:after{border-color:CanvasText}.branch-point{background:Canvas}.tree{forced-color-adjust:none}}

/* The tree and roots share the same engraved ink: a deep edge, a warm midtone,
   and a fine highlight that makes each moving stroke feel printed rather than drawn. */
main{position:relative;isolation:isolate}
.root-network{position:absolute;inset:0 0 auto;width:100%;pointer-events:none;overflow:hidden;z-index:1;mix-blend-mode:multiply;contain:paint}
.growing-root{fill:none;stroke:var(--root-mid);stroke-linecap:round;stroke-linejoin:round;will-change:stroke-dashoffset}
.root-under{stroke:var(--root-deep);opacity:.24}
.root-highlight{stroke:var(--root-light);opacity:.42;transform:translate(1px,-.8px)}
.primary-root{stroke:var(--root-deep);stroke-linecap:round}
.root-highlight.primary-root{stroke:var(--root-light)}
.root-under.primary-root{stroke:var(--root-deep)}
.companion-root{stroke:#704c38}
.rootlet{stroke:#8e6e54}
.text-root{stroke:#8a674d;opacity:.78}
.closing-root{stroke:#6b4734;opacity:.88}
.root-highlight.closing-root{stroke:#b59473;opacity:.5}
.root-under.closing-root{stroke:#4f3227;opacity:.22}
.root-under.text-root{opacity:.18}
.root-highlight.text-root{opacity:.28}
.root-tip{fill:var(--accent);stroke:var(--paper);stroke-width:1.4;opacity:0;pointer-events:none;filter:drop-shadow(0 0 4px rgba(149,110,67,.42));transform-box:fill-box;transform-origin:center;animation:root-tip-pulse 1.6s ease-in-out infinite}
@keyframes root-tip-pulse{0%,100%{transform:scale(.88)}50%{transform:scale(1.18)}}
.hero{z-index:2}
.story{pointer-events:none}
.story a{pointer-events:auto}
.hero,.story-section,.closing{scroll-snap-stop:always}
@media (max-width:1000px) and (min-width:701px){.tree-stage{left:63%;transform:translateX(-50%);width:65%;height:66%;bottom:65px}.story-section{padding-left:6%;padding-right:6%}.section-copy,.story-right .section-copy{width:39%}.section-copy h2{font-size:45px}.section-copy p{font-size:16px}.margin-note{font-size:23px}}
@media (max-width:700px){
  .hero{height:100svh;min-height:680px}.tree-stage{left:50%;bottom:62px;height:390px;width:100%;transform:translateX(-50%)}
  .story{width:100%;margin:0}.story-section{min-height:100svh;padding:92px 7% 68px 25%;gap:0}.section-copy,.story-right .section-copy{width:100%;margin:0}.branch-point{margin-left:13px;margin-bottom:46px;width:11px;height:11px}.section-copy h2{font-size:clamp(35px,8.7vw,47px)}.section-copy p{font-size:16px;line-height:1.75}.margin-note{display:none}
  .root-network{overflow:hidden}.hero-note{display:none}.scroll-note{right:6%;left:auto;bottom:24px;max-width:75px;line-height:1.4;font-size:10px;gap:9px}.closing{padding-top:90px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tree{animation:none}.growing-root{transform:none}.root-highlight{transform:none}.motion-ready .section-copy h2,.motion-ready .branch-point{transform:none;opacity:1}.branch-point{transition:background .15s}}
@media (forced-colors:active){.growing-root{stroke:CanvasText}.root-under,.root-highlight{opacity:.7}.branch-point{background:CanvasText}}

/* A small organic connector visually knots each root point into its copy block. */
.branch-point:before{content:'';position:absolute;left:4px;top:calc(100% + 2px);width:22px;height:54px;border-left:1.5px solid var(--root-mid);border-bottom:1.5px solid var(--root-mid);border-radius:0 0 0 18px;transform:skewX(-8deg);transform-origin:top left;opacity:.72;transition:border-color .4s,opacity .4s}
.point-reached .branch-point:before{border-color:var(--accent);opacity:.95}

/* The script owns the easing; let native snap stay gentle instead of adding a second jump. */
html{scroll-behavior:auto}
.hero,.story-section,.closing{scroll-snap-stop:normal}
