@font-face { font-family:"Archivo"; src:url("fonts/Archivo-Variable.ttf") format("truetype"); font-style:normal; font-weight:100 900; font-stretch:62% 125%; font-display:swap; }
:root { --ink:#2e2e2e; --gold:#d3a12a; --mist:#eaeaea; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:2rem; }
html,body { overflow-x:clip; }
@supports not (overflow:clip) { html,body { overflow-x:hidden; } }
body { margin:0; background:var(--white); color:var(--ink); font-family:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif; font-size:16px; line-height:1.65; font-synthesis:none; text-rendering:optimizeLegibility; }
img { display:block; max-width:100%; -webkit-user-drag:none; user-select:none; -webkit-user-select:none; -webkit-touch-callout:none; }
button,input,textarea,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
a { color:inherit; text-underline-offset:5px; }
button,a,input,textarea,select { outline-offset:5px; }
:focus-visible { outline:2px solid #906900; }
button { cursor:pointer; }
[hidden] { display:none!important; }
.wrap { width:min(100% - 6rem,1240px); margin-inline:auto; }
.topbar { min-height:106px; display:flex; align-items:center; justify-content:space-between; gap:2rem; position:relative; isolation:isolate; box-shadow:0 0 0 100vmax var(--white); clip-path:inset(0 -100vmax); }
.topbar::before { content:""; position:absolute; z-index:-1; inset:0 -100vw; background:var(--white); }
.brand { display:flex; align-items:center; justify-content:center; width:240px; height:72px; overflow:hidden; flex-shrink:0; }
.brand img { width:370px; height:auto; max-width:none; flex-shrink:0; }
.nav { display:flex; align-items:center; gap:2rem; }
.nav a { font-size:15px; text-decoration:none; font-weight:600; border-bottom:2px solid transparent; padding:10px 0; }
.nav a:hover { border-color:var(--gold); }
.nav .nav-shop-link { padding:10px 18px; border:1px solid var(--gold); background:var(--gold); color:#171717; font-weight:800; }
.nav .nav-shop-link:hover { background:#171717; border-color:#171717; color:#fff; }
.skip-link { position:absolute; z-index:50; transform:translateY(-150%); padding:1rem; background:var(--white); }
.skip-link:focus { transform:translateY(0); }
.gallery { background:var(--white); color:var(--ink); padding-top:16px; }
.hero { --card-width:min(76vw,840px,78svh); --gap:24px; position:relative; width:min(100%,1440px); height:calc(var(--card-width) / 1.5); margin-inline:auto; overflow:hidden; touch-action:pan-y pinch-zoom; -webkit-touch-callout:none; }
.slide { position:absolute; top:0; left:50%; width:var(--card-width); height:100%; border-radius:20px; overflow:hidden; background:var(--mist); opacity:0; visibility:hidden; transform:translateX(calc(-50% + var(--offset,0) * (100% + var(--gap)))); transition:transform .65s cubic-bezier(.22,.61,.36,1),opacity .65s ease,visibility .65s; }
.slide.active { opacity:1; visibility:visible; }
.slide.preview { opacity:.72; visibility:visible; cursor:pointer; }
.slide.preview:hover { opacity:1; }
.slide img { width:100%; height:100%; object-fit:contain; pointer-events:none; }
.slide.active img { animation:photo-zoom 7s ease-out both; }
.hero[data-paused="true"] .slide.active img { animation-play-state:paused; }
@keyframes photo-zoom { from { transform:scale(1); } to { transform:scale(1.035); } }
.gallery-bar { display:flex; justify-content:space-between; align-items:center; min-height:78px; gap:1rem; }
.scroll-link { text-decoration:none; font-size:14px; color:var(--ink); }
.scroll-link span { color:var(--gold); margin-left:1rem; }
.controls { display:flex; align-items:center; gap:.4rem; }
.controls button { background:none; border:0; color:var(--ink); min-width:44px; min-height:44px; font-size:22px; }
.controls button:hover { color:var(--gold); }
.controls #playback { font-size:14px; padding:0 0 0 1rem; margin-left:.5rem; border-left:1px solid #555; min-width:80px; }
.counter { font-size:14px; font-variant-numeric:tabular-nums; letter-spacing:.06em; min-width:70px; text-align:center; }
.gallery-error { font-size:14px; padding-bottom:1rem; }
.section { padding-block:100px; }
.project { display:grid; grid-template-columns:1fr 1.6fr; gap:6rem; }
.eyebrow { text-transform:uppercase; letter-spacing:.12em; font-size:14px; font-weight:650; margin:0 0 16px; }
.eyebrow::before { content:""; display:inline-block; width:26px; height:2px; background:var(--gold); margin:0 12px 4px 0; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:clamp(36px,4vw,56px); line-height:1.1; font-weight:550; letter-spacing:-.04em; }
h2 { font-size:clamp(30px,3vw,42px); line-height:1.2; font-weight:550; letter-spacing:-.035em; margin-bottom:24px; }
h3 { font-size:22px; line-height:1.3; font-weight:600; margin-bottom:8px; }
.copy p,.contact-copy p { color:#555; }
.copy .lead { font-size:24px; line-height:1.45; color:var(--ink); margin-bottom:22px; }
.text-links { display:flex; flex-wrap:wrap; gap:24px; margin-top:28px; }
.text-links a { font-size:15px; font-weight:600; }
.home-shop-link { margin-top:8px; }
.home-page { background:var(--white); }
.home-page .topbar { background:#fff; }
.home-intro { position:relative; overflow:hidden; padding-block:clamp(72px,10vw,142px); background:var(--ink); color:#fff; isolation:isolate; }
.home-intro::before { content:""; position:absolute; z-index:-1; inset:0; background:transparent; }
.home-intro-layout { display:grid; grid-template-columns:1.3fr .7fr; align-items:center; gap:60px; }
.home-intro h1 { max-width:820px; margin-bottom:24px; font-size:clamp(52px,8vw,104px); }
.home-intro-copy { position:relative; z-index:1; }
.home-intro-copy>p:not(.eyebrow) { max-width:560px; color:#d7d7d7; font-size:clamp(18px,2vw,24px); }
.home-intro-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin-top:34px; }
.button-gold { background:var(--gold); border-color:var(--gold); color:#171717; }
.button-gold:hover { background:#fff; border-color:#fff; }
.home-text-link { font-weight:700; text-decoration:none; }
.rotor-mark { position:absolute; z-index:0; right:-19%; top:52%; width:min(63vw,860px); aspect-ratio:1; display:grid; place-items:center; pointer-events:none; transform:translateY(-50%); }
.rotor-mark img { visibility:hidden; width:100%; height:100%; }
.rotor-mark::before { content:""; position:absolute; inset:-95%; background:var(--gold); opacity:.24; -webkit-mask:url("heliaddict-icon.png") center/contain no-repeat; mask:url("heliaddict-icon.png") center/contain no-repeat; animation:brand-rotor-spin 28s linear infinite; transform-origin:50% 50%; }
.home-story { align-items:start; }
.home-story-title { position:sticky; top:24px; padding:34px; background:var(--gold); color:#171717; }
.home-story-title h2 { margin:0; font-size:clamp(36px,5vw,64px); }
.home-story-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.story-card { min-height:250px; padding:30px; background:#fff; border-top:4px solid var(--gold); }
.story-card span { font-size:12px; font-weight:800; letter-spacing:.12em; }
.story-card h3 { margin-top:44px; }.story-card p { margin:0; color:#5e5e5e; }
.story-card-dark { background:var(--ink); color:#fff; }.story-card-dark p { color:#d0d0d0; }
.story-actions { grid-column:1/-1; padding:26px; border:1px solid #d8d4cb; }
.reveal-block { opacity:0; transform:translateY(24px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1); }
.reveal-block.is-visible { opacity:1; transform:none; }
.instagram-section { background:var(--ink); color:#fff; }
.instagram-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:clamp(40px,8vw,110px); align-items:center; }
.instagram-layout h2 { font-size:clamp(38px,5vw,66px); }.instagram-layout>div:first-child>p:not(.eyebrow) { color:#cfcfcf; }
.instagram-frame { min-height:430px; display:grid; place-items:center; align-content:center; gap:12px; padding:24px; border:1px solid #555; background:#242424; text-align:center; overflow:hidden; }
.instagram-frame iframe { width:100%; min-height:560px; border:0; background:#fff; }.instagram-frame p { margin:0; color:#bbb; }
.merch { background:#f3f3f1; }
.section-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:4rem; margin-bottom:44px; }
.section-intro h2 { max-width:520px; margin-bottom:0; }
.section-intro>p { max-width:420px; margin:0; color:#555; }
.product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.product-image { background:var(--white); aspect-ratio:4/5; display:flex; align-items:center; justify-content:center; overflow:hidden; -webkit-touch-callout:none; }
.product-image img { width:100%; height:100%; object-fit:contain; pointer-events:none; }
.product-meta { padding-top:20px; }
.product-meta h3 { font-size:20px; }
.product-meta p { color:#626262; margin-bottom:10px; font-size:15px; }
.product-meta a { font-size:14px; font-weight:600; }
.keychain { margin-top:70px; padding-top:60px; border-top:1px solid #d4d4d4; display:grid; grid-template-columns:1.6fr 1fr; gap:4rem; align-items:center; }
.keychain-photos { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
figure { margin:0; }
.keychain-photos img { width:100%; height:auto; pointer-events:none; }
figcaption { margin-top:10px; font-size:14px; color:#666; }
.keychain-copy h3 { font-size:28px; letter-spacing:-.02em; }
.keychain-copy>p:not(.eyebrow) { color:#555; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 20px; background:var(--ink); color:var(--white); border:1px solid var(--ink); border-radius:2px; font-size:15px; font-weight:600; text-decoration:none; }
.button:hover { background:#444; }
.merch-note { margin:48px 0 0; max-width:800px; color:#555; }
.contact { display:grid; grid-template-columns:1fr 1fr; gap:8rem; }
.contact-copy h2 { max-width:390px; }
.email { font-size:clamp(18px,2vw,25px); overflow-wrap:anywhere; }
.form { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.field { display:grid; gap:8px; }
.field:nth-child(3),.form-note,.form noscript { grid-column:1/-1; }
.field label { font-size:14px; font-weight:600; }
.field input,.field textarea { width:100%; min-width:0; padding:12px; border:1px solid #ccc; border-radius:2px; background:var(--white); color:var(--ink); }
.field textarea { min-height:170px; resize:vertical; }
.field input:focus,.field textarea:focus { border-color:#906900; }
.form-note { margin:0; font-size:14px; color:#666; }
.trap { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.send { justify-self:start; grid-column:1/-1; }
.status { padding:16px; background:var(--mist); }
.status.success { color:#155c2e; background:#e1f5e8; }
.status.error { color:#862323; background:#fde6e6; }
.footer { position:relative; isolation:isolate; padding-block:28px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; background:var(--white); font-size:14px; color:#666; box-shadow:0 0 0 100vmax var(--white); clip-path:inset(0 -100vmax); }
.footer::before { content:""; position:absolute; z-index:-1; inset:0 -100vw; border-top:1px solid #ddd; background:var(--white); }
.footer p { margin:0; }
.footer>div { display:grid; gap:3px; }
.footer-links { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.footer-links a,.footer-links button { color:#555; font:inherit; text-decoration:underline; text-underline-offset:4px; }
.footer-links button { padding:0; border:0; background:transparent; }
.community { background:var(--mist); }
.community-layout { display:grid; grid-template-columns:1fr 1fr; gap:5rem; }
.community-layout>div { min-width:0; }
.transfer-note { font-size:14px; margin:20px 0 0; overflow-wrap:anywhere; }
.shop-page { background:#f4f3ef; }
.shop-page .topbar,.shop-page .footer { background:var(--white); }
.shop-page .topbar { width:100%; max-width:none; padding-inline:max(3rem,calc((100% - 1240px)/2)); }
.shop-hero { background:var(--ink); color:var(--white); padding-block:clamp(72px,9vw,126px); overflow:hidden; position:relative; isolation:isolate; }
.shop-hero::before { content:""; position:absolute; z-index:-1; inset:-70% -25%; background:linear-gradient(112deg,transparent 43%,rgba(211,161,42,.14) 48%,rgba(211,161,42,.03) 52%,transparent 57%); transform:translateX(-34%); animation:flight-sweep 9s cubic-bezier(.45,0,.55,1) infinite alternate; pointer-events:none; }
.shop-hero::after { content:"H"; position:absolute; right:-.03em; bottom:-.38em; color:#393939; font-size:min(62vw,790px); font-weight:800; line-height:1; pointer-events:none; }
.shop-hero-layout { display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(3rem,8vw,9rem); align-items:end; position:relative; z-index:1; }
.shop-hero-layout::before { content:""; position:absolute; z-index:-1; width:clamp(210px,31vw,430px); aspect-ratio:1; right:12%; top:50%; border:1px solid rgba(211,161,42,.18); border-radius:50%; box-shadow:0 0 0 38px rgba(255,255,255,.018),0 0 0 78px rgba(255,255,255,.012); transform:translate(50%,-50%); animation:rotor-orbit 18s linear infinite; }
.shop-hero h1 { max-width:790px; font-size:clamp(46px,7vw,92px); margin:0; }
.shop-hero p { color:#d7d7d7; max-width:480px; }
.shop-hero .eyebrow { color:var(--white); }
.button-light { background:var(--white); border-color:var(--white); color:var(--ink); margin-top:16px; }
.button-light:hover { background:#eee; }
.shop-section { padding-block:clamp(70px,8vw,116px); }
.shop-assurances { background:#fff; border-bottom:1px solid #ddd; }
.assurance-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.assurance-grid article { padding:34px 34px 34px 0; }
.assurance-grid article+article { padding-left:34px; border-left:1px solid #ddd; }
.assurance-grid span { color:#9a7212; font-size:12px; font-weight:800; letter-spacing:.12em; }
.assurance-grid h2 { margin:8px 0; font-size:19px; letter-spacing:-.01em; }
.assurance-grid p { margin:0; color:#666; font-size:14px; line-height:1.55; }
.shop-promo { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:18px; margin:-20px 0 46px; padding:18px 22px; background:var(--gold); color:#171717; box-shadow:0 10px 26px rgba(0,0,0,.08); }
.shop-promo span { font-size:12px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.shop-promo strong { font-size:16px; }
.shop-promo button,.shop-promo a { border:0; background:transparent; color:inherit; font-weight:800; text-decoration:underline; cursor:pointer; }
.shop-care-callout { display:flex; align-items:center; justify-content:space-between; gap:28px; margin:-18px 0 48px; padding:24px 26px; border:1px solid #d6d4cd; background:#fff; box-shadow:0 10px 24px rgba(0,0,0,.045); }
.shop-care-callout h2 { margin:4px 0 6px; font-size:clamp(22px,2.6vw,30px); }
.shop-care-callout p:last-child { max-width:620px; margin:0; color:#5d5d5d; }
.shop-care-callout .eyebrow { margin:0; color:#8c6910; }
.shop-limited-callout { display:flex; align-items:center; justify-content:space-between; gap:24px; margin:-28px 0 48px; padding:18px 22px; border:1px solid #d3b04d; background:#2e2e2e; color:#fff; }
.shop-limited-callout>div { display:flex; align-items:baseline; flex-wrap:wrap; gap:10px 18px; }
.shop-limited-callout .eyebrow { width:100%; margin:0; color:#d3a12a; }
.shop-limited-callout strong { font-size:18px; }
.shop-limited-callout span { color:#d7d7d7; font-size:14px; }
.shop-limited-callout a { color:#fff; font-weight:800; text-decoration:underline; text-underline-offset:4px; white-space:nowrap; }
.shop-heading { display:flex; align-items:end; justify-content:space-between; gap:2rem; margin-bottom:36px; }
.shop-heading h2 { margin:0; }
.catalog-count { margin:0; color:#666; font-size:15px; }
.shop-tools { display:flex; align-items:end; justify-content:space-between; gap:24px; padding:18px 0 24px; border-top:1px solid #ccc; }
.filter-group { display:flex; flex-wrap:wrap; gap:8px; }
.filter { min-height:44px; padding:8px 18px; border:1px solid #c9c9c6; border-radius:999px; background:transparent; color:var(--ink); font-size:14px; font-weight:650; }
.filter:hover,.filter.active { background:var(--ink); border-color:var(--ink); color:var(--white); }
.model-filter { display:grid; gap:5px; min-width:210px; }
.model-filter span,.variant-field span { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.model-filter select,.variant-field select { min-height:46px; padding:8px 38px 8px 12px; border:1px solid #bbb; border-radius:2px; background:var(--white); color:var(--ink); }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.catalog-card { min-width:0; background:var(--white); box-shadow:0 8px 30px rgba(0,0,0,.045); transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease,opacity .6s ease; }
.catalog-card:hover { transform:translateY(-7px); box-shadow:0 20px 48px rgba(0,0,0,.11); }
.catalog-card.shop-reveal { opacity:0; transform:translateY(24px); }
.catalog-card.shop-reveal.is-visible { opacity:1; transform:translateY(0); }
.catalog-visual { width:100%; border:0; background:#e9e8e4; padding:18px; color:inherit; cursor:pointer; }
.product-stage { aspect-ratio:1; display:grid; place-items:center; }
.product-stage img { grid-area:1/1; width:100%; height:100%; object-fit:contain; pointer-events:none; filter:none; }
.product-dialog-media .product-stage img { filter:none; }
.catalog-card:hover .product-stage img:not([hidden]) { animation:mockup-hover 1.8s cubic-bezier(.2,.7,.2,1) infinite alternate; }
.view-switcher { display:flex; justify-content:center; flex-wrap:wrap; gap:6px; min-height:38px; margin-top:8px; }
.view-switcher button { min-height:38px; padding:6px 10px; border:1px solid transparent; border-radius:999px; background:transparent; color:#606060; font-size:12px; }
.view-switcher button:hover,.view-switcher button[aria-pressed="true"] { background:var(--white); border-color:#c8c8c5; color:var(--ink); }
.catalog-info { padding:24px; }
.product-heading { display:flex; justify-content:space-between; align-items:start; gap:16px; }
.product-heading h3 { margin:0; font-size:21px; }
.product-model { margin:0 0 5px; color:#767676; font-size:12px; font-weight:750; letter-spacing:.1em; text-transform:uppercase; }
.catalog-badge,.product-badge { display:inline-flex; align-items:center; width:max-content; margin:0 0 12px; padding:6px 9px; border-left:3px solid var(--gold); background:#f3ead2; color:#5f470c; font-size:11px; font-weight:800; line-height:1.2; letter-spacing:.07em; text-transform:uppercase; }
.product-badge { margin-bottom:16px; }
.product-price { display:grid; justify-items:end; gap:2px; margin:0; white-space:nowrap; font-size:16px; font-weight:750; }
.product-price del,.product-dialog-price del { color:#777; font-size:.72em; font-weight:600; text-decoration-thickness:1px; }
.product-price span,.product-dialog-price span { color:#222; }
.product-card-meta { margin:15px 0 0; color:#727272; font-size:13px; }
.variant-field { display:grid; gap:7px; margin:22px 0 16px; }
.size-field { margin-top:0; }
.product-request { width:100%; }
.product-open { width:100%; margin:18px 0 0; padding:12px 0 0; border:0; border-top:1px solid #ccc; background:transparent; color:#333; text-align:left; font-size:14px; font-weight:750; cursor:pointer; }
.product-open:hover { color:#8a6500; }
.product-dialog { width:min(calc(100% - 28px),1120px); max-height:min(92vh,920px); padding:0; border:0; border-radius:3px; background:#f4f3ef; color:var(--ink); box-shadow:0 28px 100px rgba(0,0,0,.42); }
.product-dialog::backdrop { background:rgba(0,0,0,.7); backdrop-filter:blur(4px); }
.product-dialog-layout { display:grid; grid-template-columns:1.2fr .8fr; min-height:650px; }
.product-dialog-media { position:relative; display:grid; align-content:center; padding:28px; background:#e7e6e1; }
.product-dialog-media .product-stage { min-height:480px; }.product-dialog-media .view-switcher { margin-top:18px; }
.view-thumbnails { align-items:stretch; flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start; padding:2px; }
.view-thumbnails button { flex:0 0 82px; display:grid; gap:4px; justify-items:center; height:auto; padding:5px; border-radius:2px; background:rgba(255,255,255,.55); }
.view-thumbnails button img { width:64px; height:64px; object-fit:contain; filter:drop-shadow(0 5px 5px rgba(24,24,24,.1)); pointer-events:none; }
.view-thumbnails button span { font-size:11px; }
.product-dialog-copy { align-self:center; padding:clamp(30px,5vw,62px); }
.product-dialog-copy h2 { margin-bottom:8px; font-size:clamp(30px,4vw,48px); }
.product-dialog-price { display:flex; align-items:baseline; gap:10px; margin:10px 0 0; font-size:24px; font-weight:800; }.product-dialog-description { margin:22px 0 16px; color:#525252; font-size:16px; line-height:1.6; }
.care-link { display:inline-block; margin-top:12px; color:#5e480e; font-size:13px; font-weight:750; text-decoration-thickness:1px; text-underline-offset:4px; }
.product-dialog-features { display:grid; gap:8px; margin:0 0 24px; padding:0; list-style:none; color:#555; font-size:14px; }
.product-dialog-features li::before { content:"✓"; margin-right:9px; color:#9a7212; font-weight:900; }
.product-dialog-note { margin:11px 0 0; color:#686868; font-size:12px; line-height:1.45; }
.size-guide { margin:16px 0; border-top:1px solid #dedede; border-bottom:1px solid #dedede; }
.size-guide summary { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; cursor:pointer; font-weight:700; list-style:none; }
.size-guide summary::-webkit-details-marker { display:none; }
.size-guide summary::after { content:'+'; font-size:20px; font-weight:400; }
.size-guide[open] summary::after { content:'−'; }
.size-guide summary span { margin-left:auto; color:#686868; font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.08em; }
.size-guide-body { padding:0 0 16px; }
.size-guide-model { margin:0 0 10px; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.size-guide-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.size-guide table { width:100%; min-width:540px; border-collapse:collapse; font-size:12px; }
.size-guide th,.size-guide td { padding:9px 8px; border:1px solid #dedede; text-align:center; white-space:nowrap; }
.size-guide thead th { background:#f5f4f0; font-size:10px; text-transform:uppercase; letter-spacing:.04em; }
.size-guide tbody th { background:#f5f4f0; text-align:left; }
.size-guide-body>p:not(.size-guide-model) { margin:11px 0 0; color:#686868; font-size:12px; line-height:1.5; }
.product-dialog-close { position:absolute; z-index:4; top:16px; right:16px; width:44px; height:44px; border:1px solid #aaa; border-radius:50%; background:#fff; font-size:28px; line-height:1; }
.coupon-entry { margin:20px 0; padding:16px; background:#fff; border:1px solid #deddd8; }
.coupon-entry>label { display:block; margin-bottom:7px; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.coupon-entry>div { display:grid; grid-template-columns:1fr auto; }.coupon-entry input { min-width:0; height:44px; padding:0 11px; border:1px solid #bbb; text-transform:uppercase; }.coupon-entry button { border:0; padding:0 16px; background:var(--ink); color:#fff; font-weight:750; }.coupon-entry p { min-height:20px; margin:7px 0 0; color:#4e674f; font-size:12px; }
.support-entry { display:grid; gap:14px; margin:20px 0; padding:17px; border:1px solid #deddd8; background:#fff; }
.support-entry h3 { margin:2px 0 4px; font-size:18px; }.support-entry p { margin:0; color:#666; font-size:13px; line-height:1.45; }
.support-options { display:grid; grid-template-columns:repeat(4,1fr); gap:7px; }.support-options button { min-height:38px; border:1px solid #bbb; background:#fff; color:var(--ink); font-weight:750; cursor:pointer; }.support-options button[aria-pressed="true"] { border-color:var(--gold); background:var(--gold); color:#171717; }
.support-custom { display:grid; gap:6px; font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }.support-custom input { box-sizing:border-box; width:100%; height:42px; border:1px solid #bbb; padding:0 11px; font:inherit; }
.empty-state { padding:36px; background:var(--white); text-align:center; }
.shop-help { background:var(--white); padding-block:clamp(70px,8vw,110px); }
.shop-help-layout { display:grid; grid-template-columns:1fr 1fr; gap:clamp(3rem,8vw,8rem); }
.shop-help-layout h2 { max-width:520px; }
.shop-help-layout>div:last-child { align-self:end; }
.shop-help-layout>div:last-child p { color:#555; max-width:500px; }
.cart-nav-button { border:0; background:transparent; color:inherit; font:inherit; cursor:pointer; padding:0; }
.cart-nav-button span,.floating-cart span { display:inline-grid; place-items:center; min-width:23px; height:23px; margin-left:5px; padding:0 6px; border-radius:999px; background:var(--gold); color:#171717; font-size:12px; font-weight:800; }
.product-buy { width:100%; cursor:pointer; }
.promo-badge { position:absolute; z-index:2; top:14px; left:14px; overflow:hidden; padding:8px 11px; background:var(--gold); color:#171717; font-size:12px; font-weight:800; letter-spacing:.02em; box-shadow:0 4px 14px rgba(0,0,0,.15); }
.promo-badge::after { content:""; position:absolute; inset:-50% auto -50% -45%; width:28%; background:rgba(255,255,255,.48); transform:skewX(-18deg); animation:badge-glint 4.8s ease-in-out infinite; }
.catalog-visual { position:relative; }
.floating-cart { position:fixed; z-index:30; right:24px; bottom:24px; min-height:50px; padding:10px 18px; border:1px solid #444; border-radius:999px; background:var(--ink); color:var(--white); font-weight:750; box-shadow:0 12px 32px rgba(0,0,0,.22); cursor:pointer; }
.floating-cart.cart-pulse,.cart-nav-button.cart-pulse { animation:cart-pulse .55s cubic-bezier(.2,.8,.2,1); }
.cart-backdrop { position:fixed; z-index:40; inset:0; background:rgba(0,0,0,.58); backdrop-filter:blur(3px); }
.cart-drawer { position:fixed; z-index:41; inset:0 0 0 auto; width:min(100%,520px); display:flex; flex-direction:column; background:#f4f3ef; box-shadow:-18px 0 54px rgba(0,0,0,.24); transform:translateX(102%); transition:transform .25s ease; }
.cart-drawer[aria-hidden="false"] { transform:translateX(0); }
.cart-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:26px 28px; background:var(--ink); color:var(--white); border-bottom:4px solid var(--gold); }
.cart-header .eyebrow { margin:0 0 4px; color:#d8d8d8; }
.cart-header h2 { margin:0; font-size:34px; }
.cart-close { width:44px; height:44px; border:1px solid #666; border-radius:50%; background:transparent; color:var(--white); font-size:30px; line-height:1; cursor:pointer; }
.cart-body { flex:1; overflow:auto; padding:26px 28px 36px; }
.checkout-progress { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:0 0 22px; padding:0; list-style:none; }
.checkout-progress li { display:flex; align-items:center; gap:7px; min-width:0; color:#85847f; font-size:11px; font-weight:750; text-transform:uppercase; letter-spacing:.04em; }
.checkout-progress li::after { content:""; flex:1; height:1px; margin-left:2px; background:#cecdc7; }
.checkout-progress li:last-child::after { display:none; }
.checkout-progress li span { display:grid; place-items:center; flex:0 0 25px; height:25px; border:1px solid #bbb9b0; border-radius:50%; background:#fff; color:#6a6964; font-size:11px; }
.checkout-progress li.is-current { color:var(--ink); }
.checkout-progress li.is-current span { border-color:var(--gold); box-shadow:0 0 0 3px rgba(211,161,42,.14); color:#70520b; }
.checkout-progress li.is-complete { color:#2b713f; }
.checkout-progress li.is-complete span { border-color:#2b713f; background:#2b713f; color:#fff; }
.cart-items { display:grid; gap:14px; }
.cart-item { display:grid; grid-template-columns:92px 1fr; gap:16px; padding:14px; background:var(--white); border:1px solid #deddd8; }
.cart-item img { width:92px; height:92px; object-fit:contain; background:#ebeae6; filter:drop-shadow(0 7px 6px rgba(24,24,24,.12)); }
.cart-item h3 { margin:2px 0 4px; font-size:16px; }
.cart-item p { margin:0; color:#686868; font-size:13px; }
.cart-item .cart-item-price { margin-top:6px; color:var(--ink); font-size:15px; font-weight:750; }
.cart-toast { position:fixed; z-index:95; left:50%; bottom:24px; transform:translateX(-50%); padding:12px 18px; border-radius:999px; background:#2b7a42; color:#fff; font-weight:750; box-shadow:0 12px 30px rgba(0,0,0,.2); }
.quantity-control { display:flex; align-items:center; gap:8px; margin-top:10px; }
.quantity-control button { min-width:30px; height:30px; border:1px solid #bbb; background:var(--white); cursor:pointer; }
.quantity-control span { min-width:18px; text-align:center; font-weight:750; }
.quantity-control .cart-remove { width:auto; margin-left:auto; border:0; color:#6c2020; text-decoration:underline; }
.cart-empty { margin:36px 0; padding:30px; background:var(--white); color:#666; text-align:center; }
.order-confirmation { margin:0 0 24px; padding:26px; border:1px solid #b9dac2; border-top:4px solid #2b7a42; background:#e3f5e8; }
.order-confirmation>span { display:grid; place-items:center; width:38px; height:38px; margin-bottom:12px; border-radius:50%; background:#2b7a42; color:#fff; font-weight:800; }
.order-confirmation h3 { margin-bottom:6px; }
.order-confirmation .eyebrow { margin-bottom:7px; color:#2b713f; font-size:11px; }
.confirmation-code { display:block; margin:8px 0 10px; font-size:24px; letter-spacing:.04em; }
.order-confirmation p { color:#33523c; font-size:14px; }
.order-confirmation ol { display:grid; gap:5px; margin:16px 0; padding-left:20px; color:#33523c; font-size:13px; }
.order-confirmation a { font-size:13px; font-weight:750; }
.cart-checkout { margin-top:24px; padding-top:22px; border-top:1px solid #ccc; }
.shipping-note,.checkout-security { color:#666; font-size:13px; line-height:1.45; }
.free-shipping-meter { margin:0 0 20px; padding:16px; border:1px solid #d9d7cf; background:#fff; }
.free-shipping-meter>div:first-child { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
.free-shipping-meter>div:first-child>span { font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.free-shipping-meter strong { color:#6d551a; font-size:13px; }
.shipping-progress { height:7px; overflow:hidden; border-radius:999px; background:#dfded8; }
.shipping-progress span { display:block; width:0; height:100%; border-radius:inherit; background:var(--gold); transition:width .45s cubic-bezier(.2,.75,.25,1); }
.free-shipping-meter.is-complete { border-color:#b9dac2; background:#eef8f1; }
.free-shipping-meter.is-complete strong { color:#246a38; }
.free-shipping-meter.is-complete .shipping-progress span { background:#2b7a42; }
.delivery-estimate { margin:-7px 0 18px; padding:11px 12px; border-left:3px solid var(--gold); background:#f0eee7; color:#555; font-size:12px; line-height:1.5; }
.cart-recommendations { margin:24px 0; padding-top:22px; border-top:1px solid #ccc; }
.recommendation-heading .eyebrow { margin-bottom:3px; font-size:10px; }
.recommendation-heading h3 { margin-bottom:13px; font-size:18px; }
.cart-recommendations>[data-cart-recommendation-items] { display:grid; gap:10px; }
.cart-recommendation { display:grid; grid-template-columns:72px 1fr; gap:12px; align-items:center; padding:10px; border:1px solid #deddd8; background:#fff; }
.cart-recommendation img { width:72px; height:72px; object-fit:contain; background:#ebeae6; filter:drop-shadow(0 5px 4px rgba(24,24,24,.1)); }
.cart-recommendation>div { min-width:0; display:grid; grid-template-columns:1fr auto; align-items:center; gap:4px 12px; }
.cart-recommendation strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.cart-recommendation span { font-size:13px; font-weight:750; }
.cart-recommendation button { grid-column:1/-1; justify-self:start; padding:0; border:0; border-bottom:1px solid currentColor; background:transparent; color:#5e480e; font-size:12px; font-weight:750; }
.cart-totals { display:grid; gap:10px; margin:22px 0; }
.cart-totals div { display:flex; justify-content:space-between; gap:20px; }
.cart-totals dt,.cart-totals dd { margin:0; }
.cart-discount { color:#26713d; font-weight:750; }
.cart-total { padding-top:13px; border-top:1px solid #aaa; font-size:21px; font-weight:800; }
.checkout-status { min-height:22px; margin:0 0 14px; font-size:14px; }
.checkout-status.error { padding:10px 12px; background:#fde6e6; color:#862323; }
.checkout-status.success { padding:10px 12px; background:#ddf5e4; color:#1d6531; }
.checkout-status.sandbox { padding:10px 12px; background:#fff4c6; color:#5d4a00; }
.checkout-consent { display:grid; grid-template-columns:20px 1fr; gap:10px; align-items:start; margin:18px 0 14px; color:#555; font-size:13px; line-height:1.45; }
.checkout-consent input { width:18px; height:18px; margin:2px 0 0; accent-color:var(--gold); }
.paypal-start { width:100%; margin-bottom:14px; }
.privacy-banner { position:fixed; z-index:80; left:50%; bottom:18px; width:min(calc(100% - 36px),920px); transform:translateX(-50%); display:grid; grid-template-columns:1fr auto; align-items:center; gap:24px; padding:20px 22px; border:1px solid #555; background:#242424; color:#fff; box-shadow:0 18px 60px rgba(0,0,0,.32); }
.privacy-banner strong { font-size:16px; }
.privacy-banner p { margin:3px 0 0; color:#d1d1d1; font-size:13px; line-height:1.5; }
.privacy-actions { display:flex; align-items:center; gap:16px; white-space:nowrap; }
.privacy-actions a { font-size:13px; }
.privacy-actions .button { min-height:42px; background:var(--gold); border-color:var(--gold); color:#171717; }
.privacy-dialog { width:min(calc(100% - 32px),640px); padding:34px; border:0; color:var(--ink); box-shadow:0 25px 90px rgba(0,0,0,.4); }
.privacy-dialog::backdrop { background:rgba(0,0,0,.62); backdrop-filter:blur(3px); }
.privacy-dialog-close { position:absolute; top:16px; right:16px; width:40px; height:40px; border:1px solid #ccc; border-radius:50%; background:#fff; font-size:24px; }
.privacy-dialog h2 { margin-bottom:24px; }
.privacy-choice { display:grid; grid-template-columns:1fr auto; gap:24px; padding:18px 0; border-top:1px solid #ddd; }
.privacy-choice p { margin:4px 0 0; color:#666; font-size:14px; }
.privacy-choice>span { align-self:start; padding:5px 9px; background:#f1f0eb; color:#555; font-size:12px; font-weight:700; }
.privacy-dialog-note { margin:18px 0 22px; color:#666; font-size:13px; }
.legal-page { background:#f4f3ef; }
.legal-page .topbar,.legal-page .footer { background:#fff; }
.legal-hero { padding-block:clamp(64px,8vw,112px); background:var(--ink); color:#fff; }
.legal-hero h1 { margin-bottom:18px; font-size:clamp(46px,7vw,84px); }
.legal-hero p:last-child { max-width:680px; margin:0; color:#d6d6d6; }
.legal-layout { display:grid; grid-template-columns:230px minmax(0,760px); justify-content:center; gap:clamp(40px,8vw,110px); padding-block:clamp(64px,8vw,110px); }
.legal-layout aside nav { position:sticky; top:24px; display:grid; border-top:1px solid #bbb; }
.legal-layout aside a { padding:10px 0; border-bottom:1px solid #d2d1cc; color:#666; font-size:13px; text-decoration:none; }
.legal-layout aside a:hover { color:var(--ink); }
.legal-copy section { scroll-margin-top:30px; padding-bottom:48px; }
.legal-copy section+section { padding-top:46px; border-top:1px solid #d2d1cc; }
.legal-copy h2 { font-size:clamp(27px,3vw,38px); }
.legal-copy p,.legal-copy li { color:#555; }
.legal-copy a { color:#3e3e3e; font-weight:600; }
.legal-copy a.button { color:var(--white); }
.legal-copy a.button:hover { color:var(--white); }
.return-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:28px; }
.return-form .field { min-width:0; }
.return-form .field input,.return-form .field textarea,.return-form .field select { width:100%; padding:12px; border:1px solid #bbb; background:#fff; }
.return-form .return-message,.return-form .return-consent,.return-form>.button { grid-column:1/-1; }
.return-form textarea { min-height:120px; resize:vertical; }
body.cart-open { overflow:hidden; }
@keyframes flight-sweep { from { transform:translateX(-34%); } to { transform:translateX(34%); } }
@keyframes rotor-orbit { from { transform:translate(50%,-50%) rotate(0deg); } to { transform:translate(50%,-50%) rotate(360deg); } }
@keyframes brand-rotor-spin { to { transform:rotate(360deg); } }
@keyframes mockup-hover { from { transform:translateY(0) scale(1); } to { transform:translateY(-5px) scale(1.015); } }
@keyframes badge-glint { 0%,62% { left:-45%; } 82%,100% { left:125%; } }
@keyframes cart-pulse { 0%,100% { transform:scale(1); } 45% { transform:scale(1.08); } }
@media(max-width:1000px) { .community-layout { gap:3rem; } .legal-layout { grid-template-columns:190px minmax(0,1fr); gap:44px; } }
@media(max-width:700px) { .community-layout { grid-template-columns:1fr; gap:32px; } }
@media(max-width:700px) { .shop-care-callout { align-items:flex-start; flex-direction:column; } }
@media(max-width:700px) { .shop-limited-callout { align-items:flex-start; flex-direction:column; gap:12px; } }
@media(min-width:1800px) { .wrap { width:min(100% - 8rem,1440px); } }
@media(max-width:1000px) { .wrap { width:calc(100% - 3rem); } .project,.contact { gap:3rem; } .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 24px; } .keychain { grid-template-columns:1.3fr 1fr; gap:2rem; } .section-intro { gap:2rem; } .shop-page .topbar { padding-inline:1.5rem; } .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) {
  html { scroll-padding-top:1rem; }
  .wrap { width:calc(100% - 2rem); }
  .topbar { min-height:110px; flex-direction:column; justify-content:center; gap:0; padding-bottom:10px; }
  .brand { height:58px; width:210px; }
  .brand img { width:325px; }
  .nav { width:100%; justify-content:center; gap:12px; }
  .nav a { font-size:13px; padding:6px 0; }
  .nav .nav-shop-link { padding:6px 11px; }
  .hero { --card-width:82vw; --gap:12px; width:100%; }
  .slide { border-radius:14px; }
  .gallery-bar { min-height:70px; gap:4px; }
  .scroll-link { font-size:14px; max-width:110px; line-height:1.4; }
  .scroll-link span { margin-left:4px; }
  .controls { gap:0; }
  .controls #playback { padding-left:8px; margin-left:0; min-width:64px; }
  .counter { min-width:60px; }
  .section { padding-block:60px; }
  .project,.contact,.keychain { grid-template-columns:1fr; gap:24px; }
  .home-intro-layout,.instagram-layout { grid-template-columns:1fr; }
  .home-intro { padding-block:72px; }.home-intro h1 { font-size:clamp(45px,15vw,66px); }
  .rotor-mark { right:-30%; bottom:-12%; width:410px; }
  .home-story-title { position:static; }.home-story-cards { grid-template-columns:1fr; }.story-actions { grid-column:auto; }
  .instagram-frame { min-height:300px; }.instagram-frame iframe { min-height:480px; }
  .section-intro { display:block; margin-bottom:32px; }
  .section-intro>p { margin-top:20px; }
  .copy .lead { font-size:22px; }
  .product-grid { gap:32px 16px; }
  .product-meta h3 { font-size:18px; }
  .keychain { margin-top:44px; padding-top:36px; }
  .keychain-copy { margin-top:8px; }
  .contact { gap:36px; }
  .footer { flex-direction:column; gap:10px; }
  .footer-links { gap:10px 16px; }
  .shop-page .topbar { padding-inline:1rem; }
  .shop-hero-layout,.shop-help-layout { grid-template-columns:1fr; gap:32px; }
  .shop-hero h1 { font-size:clamp(42px,14vw,64px); }
  .shop-tools { align-items:stretch; flex-direction:column; }
  .model-filter { width:100%; }
  .catalog-grid { grid-template-columns:1fr; }
  .product-dialog-layout { grid-template-columns:1fr; }.product-dialog-media { padding:18px; }.product-dialog-media .product-stage { min-height:300px; }.product-dialog-copy { padding:28px 20px; }
  .shop-heading { align-items:start; flex-direction:column; gap:12px; }
  .shop-promo { grid-template-columns:1fr; gap:8px; margin-top:0; }
  .cart-nav-button { font-size:14px; }
  .floating-cart { right:14px; bottom:14px; }
  .cart-body { padding:20px 16px 30px; }
  .cart-header { padding:22px 18px; }
  .checkout-progress { margin-bottom:18px; }
  .checkout-progress li { gap:4px; font-size:9px; letter-spacing:.02em; }
  .checkout-progress li span { flex-basis:23px; height:23px; }
  .free-shipping-meter { padding:14px; }
  .cart-recommendation { grid-template-columns:64px 1fr; }
  .cart-recommendation img { width:64px; height:64px; }
  .assurance-grid { grid-template-columns:1fr; padding-block:8px; }
  .assurance-grid article,.assurance-grid article+article { padding:22px 0; border-left:0; border-bottom:1px solid #ddd; }
  .assurance-grid article:last-child { border-bottom:0; }
  .privacy-banner { grid-template-columns:1fr; gap:14px; bottom:10px; }
  .privacy-actions { justify-content:space-between; }
  .privacy-dialog { padding:28px 20px; }
  .privacy-choice { grid-template-columns:1fr; gap:10px; }
  .privacy-choice>span { justify-self:start; }
  .legal-layout { grid-template-columns:1fr; gap:30px; }
  .legal-layout aside nav { position:static; grid-template-columns:repeat(2,1fr); column-gap:18px; }
  .return-form { grid-template-columns:1fr; }
  .return-form .return-message,.return-form .return-consent,.return-form>.button { grid-column:auto; }
}
@media(max-width:360px) { .scroll-link { display:none; } .gallery-bar { justify-content:center; } .form { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .slide,.catalog-card,.cart-drawer,.reveal-block { transition:none; } .slide.active img { animation:none; transform:none; } .shop-hero::before,.home-intro::before,.rotor-mark img,.catalog-card:hover .product-stage img,.promo-badge::after,.floating-cart.cart-pulse,.cart-nav-button.cart-pulse { animation:none; transform:none; } .shop-hero-layout::before { animation:none; transform:translate(50%,-50%); } .catalog-card.shop-reveal,.catalog-card:hover,.reveal-block { opacity:1; transform:none; } }
