:root{--ink: #0E0C0A;--ink-soft: #17130F;--cream: #EDE6DA;--cream-dim: #A89C8C;--ember: #C97B3D;--ember-hot: #E08A3C;--khaki: #6E5A45;--f-mincho: "Shippori Mincho", serif;--f-gothic: "Zen Kaku Gothic New", sans-serif;--f-fraunces: "Fraunces", serif;--f-mono: "Space Mono", ui-monospace, monospace;--section-gap: clamp(120px, 18vh, 240px);--gutter: clamp(20px, 5vw, 96px);--maxw: 1440px;--ease-out: cubic-bezier(.16, 1, .3, 1);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:auto}body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--f-gothic);font-weight:400;line-height:1.75;letter-spacing:.01em;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}::selection{background:var(--ember);color:var(--ink)}:focus-visible{outline:2px solid var(--ember-hot);outline-offset:3px;border-radius:2px}.mono{font-family:var(--f-mono);font-weight:400;letter-spacing:.2em;text-transform:uppercase;font-size:clamp(.62rem,.72vw,.78rem);color:var(--cream-dim)}.kicker{font-family:var(--f-mono);font-weight:400;letter-spacing:.24em;text-transform:uppercase;font-size:clamp(.62rem,.74vw,.8rem);color:var(--ember);display:inline-flex;align-items:center;gap:.9em}.kicker:before{content:"";width:clamp(24px,3vw,48px);height:1px;background:var(--ember);opacity:.7}.shell{width:min(100% - 2 * var(--gutter),var(--maxw));margin-inline:auto}.watermark{position:absolute;font-family:var(--f-fraunces);font-weight:600;font-style:italic;line-height:.8;letter-spacing:-.03em;color:var(--cream);opacity:.05;pointer-events:none;user-select:none;white-space:nowrap;z-index:0}.split-line{overflow:hidden;display:block}[data-split]{will-change:transform}.grain{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:var(--grain-url);background-size:180px 180px}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;border-radius:50%;pointer-events:none;z-index:9999;mix-blend-mode:difference;will-change:transform;transform:translate3d(-50%,-50%,0);opacity:0}.cursor-dot{width:7px;height:7px;background:var(--cream)}.cursor-ring{width:40px;height:40px;border:1px solid var(--cream);transition:width .35s var(--ease-out),height .35s var(--ease-out),background-color .35s var(--ease-out)}@media (hover: none),(pointer: coarse){.cursor-dot,.cursor-ring{display:none}}.loader{position:fixed;inset:0;z-index:1000;background:var(--ink);display:grid;place-items:center}.loader__mark{width:min(58vw,520px);height:auto;overflow:visible}.loader__mark text{font-family:var(--f-fraunces);font-weight:600;font-size:88px;letter-spacing:.06em;fill:transparent;stroke:var(--ember);stroke-width:1}.hero-canvas{position:fixed;inset:0;z-index:1;display:block;background:transparent}.hero-canvas--fallback{background:radial-gradient(120% 90% at 78% 88%,rgba(224,138,60,.16),transparent 46%),radial-gradient(90% 80% at 26% 12%,rgba(110,90,69,.14),transparent 55%)}.hero__bg{position:fixed;inset:0;z-index:0;overflow:hidden;background:var(--ink)}.hero__bg video{width:100%;height:100%;object-fit:cover;object-position:var(--hero-pos, 50% 44%);filter:saturate(.94) contrast(1.03) brightness(var(--hero-bright, .92))}.hero__bg:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,var(--ink) 6%,rgba(14,12,10,var(--scrim-a, .58)) 34%,rgba(14,12,10,var(--scrim-b, .1)) 62%,transparent 100%),linear-gradient(0deg,rgba(14,12,10,var(--scrim-c, .74)) 1%,transparent 24%)}.hero-canvas--fallback:after{content:"";position:absolute;right:8%;bottom:4%;width:46vmax;height:46vmax;border-radius:50%;background:radial-gradient(circle,rgba(224,138,60,.22),transparent 62%);filter:blur(40px);animation:emberBreathe 7s ease-in-out infinite}@keyframes emberBreathe{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}.hero{position:relative;z-index:2;min-height:100svh;display:flex;align-items:center;padding-block:clamp(96px,16vh,200px)}.hero__inner{position:relative}.hero .kicker{margin-bottom:clamp(28px,4vh,52px)}.hero__title{font-family:var(--f-mincho);font-weight:700;font-size:clamp(1.85rem,9.5vw,9.5rem);line-height:1.12;letter-spacing:-.02em;margin:0;text-shadow:0 2px 40px rgba(14,12,10,.6);word-break:keep-all;overflow-wrap:normal;line-break:strict}.hero__sub{margin-top:clamp(28px,4vh,48px);max-width:40ch;font-weight:300;font-size:clamp(.95rem,1.35vw,1.28rem);line-height:2;color:var(--cream);text-shadow:0 1px 18px rgba(14,12,10,.7);word-break:keep-all;overflow-wrap:normal;line-break:strict}.hero__cue{position:absolute;right:0;bottom:clamp(-40px,-4vh,0px);display:flex;flex-direction:column;align-items:center;gap:14px}.hero__cue .mono{writing-mode:vertical-rl;letter-spacing:.3em}.hero__cue-line{width:1px;height:64px;background:linear-gradient(var(--ember),transparent);position:relative;overflow:hidden}.hero__cue-line:after{content:"";position:absolute;top:-40%;left:0;width:100%;height:40%;background:var(--ember-hot);animation:cueRun 2.4s var(--ease-out) infinite}@keyframes cueRun{0%{top:-40%}60%,to{top:100%}}.section{position:relative;z-index:2;background:var(--ink);padding-block:var(--section-gap)}.section--soft{background:var(--ink-soft)}.section__head{margin-bottom:clamp(48px,8vh,110px)}.section__head .kicker{margin-bottom:clamp(20px,3vh,36px)}.h2{font-family:var(--f-mincho);font-weight:600;font-size:clamp(1.7rem,5.2vw,4.4rem);line-height:1.28;letter-spacing:-.02em;margin:0;word-break:keep-all;overflow-wrap:normal;line-break:strict}.philosophy{overflow:clip}.philosophy__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:0 clamp(16px,2vw,40px);align-items:start}.philosophy__head{grid-column:1 / 8}.philosophy__body{grid-column:6 / 13;margin-top:clamp(40px,7vh,90px);font-weight:300;font-size:clamp(.98rem,1.5vw,1.44rem);line-height:2.15;color:var(--cream);max-width:46ch;word-break:keep-all;overflow-wrap:normal;line-break:strict}.philosophy .watermark{top:50%;right:-2vw;transform:translateY(-50%);font-size:clamp(6rem,22vw,20rem)}@media (max-width: 860px){.philosophy__head,.philosophy__body{grid-column:1 / 13}}.origin{position:relative;overflow:clip}.origin__viewport{position:relative}.origin__track{display:flex;align-items:center;gap:clamp(24px,4vw,72px);padding-inline:var(--gutter);width:max-content;will-change:transform}.origin-card{position:relative;flex:0 0 auto;width:clamp(300px,40vw,560px);display:flex;flex-direction:column}.origin-card__media{position:relative;aspect-ratio:4 / 5;overflow:hidden;background:var(--ink-soft)}@media (min-width: 861px){.origin{padding-block:var(--section-gap) 0}.origin__viewport{height:100svh;display:flex;align-items:center;margin-bottom:var(--section-gap)}.origin__track{height:100%}.origin-card{height:min(82svh,760px);justify-content:flex-start}.origin-card__media{aspect-ratio:auto;flex:1 1 auto;min-height:0}}.origin-card__media img{width:100%;height:120%;object-fit:cover;will-change:transform}.origin-card__index{position:absolute;top:18px;left:20px;z-index:2}.origin-card__country{font-family:var(--f-fraunces);font-style:italic;font-weight:600;font-size:clamp(2rem,4vw,3.4rem);line-height:1;letter-spacing:-.02em;margin:26px 0 4px}.origin-card__region{font-family:var(--f-mono);letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;color:var(--ember)}.origin-card__note{font-family:var(--f-mincho);font-weight:600;font-size:clamp(1.1rem,1.5vw,1.4rem);line-height:1.7;margin:20px 0 24px;color:var(--cream);word-break:keep-all;overflow-wrap:normal;line-break:strict}.origin-card__spec{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px 22px;padding-top:20px;border-top:1px solid rgba(110,90,69,.4)}.origin-card--blend{justify-content:center;border:1px solid var(--khaki);padding:clamp(28px,4vw,56px);aspect-ratio:auto}.origin-card--blend .origin-card__country{color:var(--ember)}.origin__mobile-list{display:none}@media (max-width: 860px){.origin__viewport{display:none}.origin__mobile-list{display:grid;gap:clamp(48px,9vh,90px);padding-inline:0}.origin-card{width:100%}}.roast__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(40px,6vh,80px) clamp(16px,2vw,40px);align-items:center}.roast__head{grid-column:1 / 6}.roast__curve{grid-column:6 / 13;position:relative}.roast__curve svg{width:100%;height:auto;overflow:visible}.roast__curve-path{fill:none;stroke:var(--ember);stroke-width:2}.roast__curve-dot{fill:var(--ember-hot)}.roast__temp{font-family:var(--f-mono);font-weight:700;font-size:clamp(2.4rem,5vw,4rem);color:var(--cream);line-height:1}.roast__temp small{color:var(--cream-dim);font-size:.4em;margin-left:.3em}.roast__steps{grid-column:1 / 13;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,32px);counter-reset:step;margin-top:clamp(20px,4vh,48px)}.roast__step{position:relative;padding-top:28px;border-top:1px solid rgba(110,90,69,.4);opacity:.32;transition:opacity .6s var(--ease-out),border-color .6s var(--ease-out);font-family:var(--f-mincho);font-weight:600;font-size:clamp(.95rem,1.15vw,1.2rem);line-height:1.6}.roast__step:before{counter-increment:step;content:"0" counter(step);display:block;font-family:var(--f-mono);font-size:.72rem;letter-spacing:.2em;color:var(--ember);margin-bottom:12px}.roast__step.is-lit{opacity:1;border-color:var(--ember)}.roast__stats{grid-column:1 / 13;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px);margin-top:clamp(40px,7vh,90px)}.roast__stat-num{font-family:var(--f-mono);font-weight:700;font-size:clamp(1.8rem,3.4vw,3rem);color:var(--cream);line-height:1}.roast__stat-label{margin-top:12px;font-family:var(--f-gothic);font-weight:300;font-size:.86rem;color:var(--cream-dim)}@media (max-width: 860px){.roast__head,.roast__curve{grid-column:1 / 13}.roast__steps,.roast__stats{grid-template-columns:repeat(2,1fr)}}.roastery{position:relative;z-index:2;min-height:100svh;display:flex;align-items:flex-end;overflow:clip;padding-block:clamp(80px,12vh,160px)}.roastery__bg{position:absolute;inset:-12% 0;z-index:0}.roastery__bg img,.roastery__bg video{width:100%;height:100%;object-fit:cover}.roastery__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(14,12,10,.82) 0%,rgba(14,12,10,.35) 34%,transparent 62%),linear-gradient(0deg,rgba(14,12,10,.72) 0%,transparent 46%)}.roastery__inner{position:relative;z-index:2;display:flex;gap:clamp(24px,4vw,64px);align-items:flex-end}.roastery__title{writing-mode:vertical-rl;text-orientation:upright;font-family:var(--f-mincho);font-weight:700;font-size:clamp(1.8rem,4.6vw,3.4rem);letter-spacing:.18em;line-height:1.1;margin:0;height:min(58vh,520px)}.roastery__body{padding-bottom:8px;max-width:40ch}.roastery__body p{font-weight:300;font-size:clamp(.95rem,1.35vw,1.24rem);line-height:2.1;margin:0 0 clamp(24px,4vh,40px);word-break:keep-all;overflow-wrap:normal;line-break:strict}@media (max-width: 860px){.roastery__inner{flex-direction:row}.roastery__title{font-size:clamp(1.6rem,8vw,2.4rem);height:auto}}.sub__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(40px,6vh,80px) clamp(16px,2vw,40px);align-items:center}.sub__head{grid-column:1 / 7}.sub__card{grid-column:8 / 13;border:1px solid var(--khaki);background:var(--ink);padding:clamp(32px,4vw,56px)}.sub__price{font-family:var(--f-fraunces);font-style:italic;font-weight:600;font-size:clamp(2.4rem,5vw,3.6rem);line-height:1;color:var(--cream)}.sub__price small{font-family:var(--f-gothic);font-style:normal;font-weight:300;font-size:.34em;color:var(--cream-dim);letter-spacing:.04em}.sub__list{list-style:none;margin:clamp(24px,4vh,36px) 0 clamp(32px,5vh,44px);padding:0;display:grid;gap:14px}.sub__list li{padding-left:22px;position:relative;font-weight:300;color:var(--cream)}.sub__list li:before{content:"";position:absolute;left:0;top:.8em;width:8px;height:1px;background:var(--ember)}@media (max-width: 860px){.sub__head,.sub__card{grid-column:1 / 13}}.btn-magnetic{--pad-y: clamp(16px, 1.6vw, 20px);--pad-x: clamp(28px, 3vw, 44px);display:inline-flex;align-items:center;gap:.9em;padding:var(--pad-y) var(--pad-x);border:1px solid var(--ember);color:var(--cream);font-family:var(--f-gothic);font-weight:400;font-size:.98rem;letter-spacing:.04em;position:relative;overflow:hidden;will-change:transform;transition:color .4s var(--ease-out)}.btn-magnetic__label{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.9em}.btn-magnetic:before{content:"";position:absolute;inset:0;background:var(--ember);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out);z-index:0}.btn-magnetic:hover{color:var(--ink)}.btn-magnetic:hover:before{transform:scaleX(1)}.btn-magnetic svg{transition:transform .4s var(--ease-out)}.btn-magnetic:hover svg{transform:translate(4px)}.footer{position:relative;z-index:2;background:var(--ink);padding-top:clamp(80px,14vh,180px);padding-bottom:clamp(40px,6vh,72px);overflow:clip}.footer__wordmark{font-family:var(--f-fraunces);font-weight:600;font-size:clamp(3.4rem,22vw,20rem);line-height:.82;letter-spacing:-.03em;color:var(--cream);margin:0;white-space:nowrap;will-change:transform}.footer__links{display:flex;flex-wrap:wrap;gap:14px clamp(24px,4vw,52px);margin-top:clamp(40px,7vh,80px);padding-top:clamp(28px,4vh,44px);border-top:1px solid rgba(110,90,69,.4)}.footer__links a{font-family:var(--f-mono);letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;color:var(--cream-dim);transition:color .3s var(--ease-out)}.footer__links a:hover{color:var(--ember-hot)}.footer__meta{margin-top:clamp(40px,6vh,64px);display:flex;flex-direction:column;gap:14px}.footer__fiction{max-width:60ch;font-weight:300;font-size:.82rem;line-height:1.9;color:var(--cream-dim);word-break:keep-all;line-break:strict}.footer__credit{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--khaki)}.footer__demo{font-weight:300;font-size:.72rem;line-height:1.9;color:var(--khaki);word-break:keep-all;line-break:strict}@media (prefers-reduced-motion: reduce){.cursor-dot,.cursor-ring{display:none!important}.hero__cue-line:after{animation:none}.hero-canvas--fallback:after{animation:none}*{scroll-behavior:auto!important}}html:not(.js) .loader{display:none}
