
@font-face{font-family:"Instrument Serif";src:url("/assets/fonts/instrument-serif-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("/assets/fonts/instrument-serif-latin-400-italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Karla";src:url("/assets/fonts/karla-latin-400-normal.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Karla";src:url("/assets/fonts/karla-latin-500-normal.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Karla";src:url("/assets/fonts/karla-latin-600-normal.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"Karla";src:url("/assets/fonts/karla-latin-700-normal.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}


:root{--bg:#F8F3EB;--surface:#FFFDF9;--ink:#2C2029;--ink-2:#5E545A;--ink-3:#8A7E85;--line:#E6DCD0;--line-2:#EFE7DD;
--plum:#5B2949;--plum-2:#3E1B32;--plum-ink:#FFF7FB;--plum-soft:#EFE3EA;--gold:#AF694D;--gold-soft:#F4E6DD;--copper:#AF694D;--copper-light:#D4906F;
--paw:#8C6F5A;--warn:#8A3B12;--warn-soft:#F7E4D6;--ok:#3F6B4A;--ok-soft:#E3EFE4;--info:#2F5470;--info-soft:#E1EBF2;--night:#2C2029;
--serif:"Instrument Serif",Georgia,serif;--sans:"Karla","Helvetica Neue",Arial,sans-serif;
--d1:clamp(40px,7vw,104px);--d2:clamp(32px,4.4vw,62px);--ease:cubic-bezier(.22,.61,.36,1);
--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:64px;--sec:clamp(48px,6.5vw,104px);--rad:14px;--radL:22px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#231A21;--surface:#2C2029;--ink:#F2E9E0;--ink-2:#BDB0B6;--ink-3:#9A8D94;--line:#3D3239;--line-2:#332A30;--plum:#D3A4C1;--plum-2:#DDA9C6;--plum-ink:#1E171C;--plum-soft:#3A2A35;--gold:#D4906F;--gold-soft:#3A2A24;--copper:#D4906F;--paw:#C7A98F;--warn:#F0B08A;--warn-soft:#3E2A1E;--ok:#A9D0B0;--ok-soft:#24352A;--info:#9DBBD2;--info-soft:#22313D}}
:root[data-theme="dark"]{--bg:#231A21;--surface:#2C2029;--ink:#F2E9E0;--ink-2:#BDB0B6;--ink-3:#9A8D94;--line:#3D3239;--line-2:#332A30;--plum:#D3A4C1;--plum-2:#DDA9C6;--plum-ink:#1E171C;--plum-soft:#3A2A35;--gold:#D4906F;--gold-soft:#3A2A24;--copper:#D4906F;--paw:#C7A98F;--warn:#F0B08A;--warn-soft:#3E2A1E;--ok:#A9D0B0;--ok-soft:#24352A;--info:#9DBBD2;--info-soft:#22313D}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:var(--serif);font-weight:500;text-wrap:balance;margin:0;letter-spacing:-.012em;line-height:1.06}
h1{font-size:var(--d2)} h2{font-size:clamp(23px,2.1vw,34px)} h3{font-size:1.12rem;line-height:1.2}
p{margin:0 0 10px;max-width:68ch} a{color:inherit}
img{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{width:min(1240px,100% - 40px);margin-inline:auto}
.wrapN{width:min(880px,100% - 40px);margin-inline:auto}
.sec{padding:var(--sec) 0}
.muted{color:var(--ink-2);font-size:.9rem} .small{font-size:.82rem} .tiny{font-size:.76rem;color:var(--ink-3);line-height:1.5}
.lead{font-size:clamp(16.5px,1.25vw,19px);color:var(--ink-2)}
.eyebrow{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);font-weight:700;display:block;margin-bottom:10px}
.measure{max-width:42ch}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center} .between{justify-content:space-between}
.rule{height:1px;background:var(--line);margin:var(--s4) 0}

/* ---- photography ---- */
.ph{position:relative;overflow:hidden;border-radius:var(--rad);background:var(--line-2);margin:0}
.ph.unloaded img{visibility:hidden}
.ph-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;padding:clamp(12px,1.6vw,22px);background:linear-gradient(160deg,var(--plum-soft),var(--gold-soft));color:var(--ink)}
.ph-fallback b{font-family:var(--serif);font-weight:500;font-size:clamp(17px,1.6vw,24px);line-height:1.1}
.ph-fallback span{font-size:.82rem;color:var(--ink-2)}
.ph-fallback em{font-style:normal;font-size:.68rem;letter-spacing:.02em;color:var(--ink-3);margin-top:6px}
.ph.unloaded .cred{display:none}
.bg .ph.unloaded .ph-fallback,.editorial .ph.unloaded .ph-fallback,.hero .ph.unloaded .ph-fallback{background:linear-gradient(160deg,#5B2949,#2C2029)}
.tpanel.product.bydesign{background:linear-gradient(150deg,var(--plum),var(--plum-2));color:#F4EBE4;justify-content:flex-end}
.tpanel.product.bydesign b{color:#fff;font-size:1.15rem}.tpanel.product.bydesign span{display:block!important;color:#E6D6DF;font-size:.8rem}
.occ .ph-fallback,.tl-img .ph-fallback{padding:8px}.occ .ph-fallback span,.occ .ph-fallback em{display:none}.occ .ph-fallback b{font-size:.82rem}
.tile .ph-fallback span,.tile .ph-fallback em{display:none}.tile .ph-fallback{padding:34px 10px 10px}.tile .ph-fallback b{font-size:.9rem}
.ph img{width:100%;height:100%;object-fit:cover;filter:saturate(.95) contrast(1.02);transition:transform 1s var(--ease)}
.ph.full{border-radius:0}
.tile:hover .ph img,a:hover .ph img{transform:scale(1.04)}
.ph .cred{position:absolute;inset-inline-start:8px;bottom:8px;z-index:2;font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;
 background:rgba(255,253,249,.9);color:#5E545A;padding:3px 8px;border-radius:999px}
.ph .cred.dark{background:rgba(28,16,23,.62);color:#F2E9E0}
.scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(24,12,19,.78) 0%,rgba(24,12,19,.3) 40%,rgba(24,12,19,.04) 70%)}
/* typographic panel — used where no photograph exists. Type, not illustration. */
.tpanel{position:relative;border-radius:var(--rad);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;
 padding:20px;min-height:0;background:linear-gradient(160deg,var(--plum-soft) 0%,var(--gold-soft) 100%);color:var(--ink)}
.tpanel::before{content:"";position:absolute;inset:0;background:
 repeating-linear-gradient(90deg,transparent,transparent 13px,rgba(91,42,74,.045) 13px,rgba(91,42,74,.045) 14px);pointer-events:none}
.tpanel b{font-family:var(--serif);font-weight:500;font-size:clamp(1.15rem,1.7vw,1.6rem);display:block;margin-bottom:6px;line-height:1.1;position:relative}
.tpanel span{font-size:.85rem;color:var(--ink-2);max-width:34ch;position:relative}
.tpanel.product{background:linear-gradient(160deg,var(--gold-soft) 0%,var(--line-2) 100%)}
.tpanel.product b{font-size:1.02rem}
.ch .tpanel{min-height:220px}
.tile .tpanel,.entry .tpanel,.wcard .tpanel{aspect-ratio:4/3;padding:15px;border-radius:0}
.tile .tpanel span,.entry .tpanel span,.wcard .tpanel span{font-size:.78rem}
/* ---- controls (inherited component set — journeys depend on these) ---- */
.btn{font:inherit;font-weight:600;background:var(--plum);color:var(--plum-ink);border:1.5px solid var(--plum);padding:10px 22px;border-radius:999px;cursor:pointer;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:background .18s var(--ease)}
.btn:hover{background:var(--plum-2);border-color:var(--plum-2)}
.btn.ghost{background:transparent;color:var(--plum)} .btn.ghost:hover{background:var(--plum-soft)}
.btn.small{padding:6px 14px;min-height:36px;font-size:.88rem} .btn.quiet{background:var(--plum-soft);color:var(--plum);border-color:transparent}
.btn.light{background:var(--surface);color:var(--plum);border-color:var(--surface)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font:inherit;border:1px solid var(--line);border-radius:999px;padding:7px 14px;background:var(--surface);color:var(--ink);cursor:pointer;min-height:38px;display:inline-flex;align-items:center;gap:6px;font-size:.92rem}
.chip:hover{border-color:var(--plum)}
.chip[aria-pressed="true"]{background:var(--plum);color:var(--plum-ink);border-color:var(--plum)}
label{display:block;font-size:.85rem;color:var(--ink-2);margin:10px 0 4px}
input,select,textarea{font:inherit;width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);min-height:44px}
textarea{min-height:92px}
input[type=checkbox],input[type=radio]{width:auto;min-height:0;margin-inline-end:6px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radL);padding:20px;margin-bottom:14px}
.card.soft{background:var(--gold-soft);border-color:transparent}
.item{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--bg);margin-bottom:10px}
.item b{font-family:var(--serif);font-weight:500;font-size:1.05rem}
.pill{display:inline-block;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--plum-soft);color:var(--plum);margin-inline-start:6px;vertical-align:middle}
.pill.grey{background:var(--line);color:var(--ink-2)}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.info{background:var(--info-soft);color:var(--info)}
.steps{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 16px}
.steps span{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);padding:4px 10px;border-radius:999px;border:1px solid var(--line)}
.steps span.on{background:var(--plum);color:var(--plum-ink);border-color:transparent;font-weight:700}
.steps span.done{background:var(--plum-soft);color:var(--plum);border-color:transparent}
.notice{background:var(--gold-soft);border-inline-start:3px solid var(--gold);padding:10px 12px;border-radius:0 8px 8px 0;font-size:.92rem;margin:10px 0}
.ok{background:var(--ok-soft);color:var(--ok);padding:10px 12px;border-radius:8px;font-size:.92rem;margin:10px 0}
.warn{background:var(--warn-soft);color:var(--warn);padding:10px 12px;border-radius:8px;font-size:.92rem;margin:10px 0}
.info{background:var(--info-soft);color:var(--info);padding:10px 12px;border-radius:8px;font-size:.92rem;margin:10px 0}
.total{display:grid;grid-template-columns:1fr auto;gap:4px 16px;font-variant-numeric:tabular-nums;max-width:540px}
.total .sum{font-weight:700;border-top:1px solid var(--line);padding-top:6px;margin-top:4px}
.grid2{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.grid3{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.entries{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.entry{text-align:start;font:inherit;border:1px solid var(--line);border-radius:14px;padding:0;background:var(--surface);color:var(--ink);cursor:pointer;overflow:hidden;display:flex;flex-direction:column}
.entry .ph{border-radius:0;aspect-ratio:4/3}
.entry .txt{padding:13px 15px 15px}
.entry b{font-family:var(--serif);font-size:1.15rem;font-weight:500;display:block;margin-bottom:2px}
.entry small{color:var(--ink-2)}
.tiles{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.tile{border:1px solid var(--line);border-radius:var(--rad);background:var(--surface);overflow:hidden;display:flex;flex-direction:column;text-align:start;font:inherit;color:var(--ink);cursor:pointer;padding:0}
.tile .ph{border-radius:0;aspect-ratio:4/3;min-height:0}
.tile .body{padding:11px 13px 13px}
.tile b{font-family:var(--serif);font-weight:500;font-size:1.04rem;display:block}
.tile.future{opacity:.85}
.chat{display:flex;flex-direction:column;gap:10px;max-width:740px}
.msg{padding:11px 15px;border-radius:16px;max-width:86%;font-size:.97rem}
.msg.ai{background:var(--surface);border:1px solid var(--line);align-self:flex-start;border-start-start-radius:4px}
.msg.me{background:var(--plum);color:var(--plum-ink);align-self:flex-end;border-start-end-radius:4px}
.msg.ai .who{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);display:block;margin-bottom:2px}
.quiet .msg.ai{background:var(--bg)}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tabs button{font:inherit;font-size:.88rem;padding:7px 13px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--ink);cursor:pointer;min-height:38px}
.tabs button[aria-selected="true"]{background:var(--plum-soft);color:var(--plum);font-weight:600}
table{width:100%;border-collapse:collapse;font-size:.88rem}
/* A wide table scrolls inside its own box rather than pushing the page sideways. */
.tscroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-block:4px}
.tscroll table{min-width:560px}
th,td{text-align:start;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.kpi{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.kpi div{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px}
.kpi b{font-family:var(--serif);font-size:1.5rem;font-weight:500;display:block}
.ai-badge{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;color:var(--ink-2);border:1px dashed var(--line);border-radius:999px;padding:3px 10px}
details{border:1px solid var(--line);border-radius:10px;padding:9px 13px;margin:10px 0;background:var(--bg)}
summary{cursor:pointer;font-weight:600;font-size:.92rem;min-height:30px}
.switch{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--bg);margin-bottom:8px}
.switch button{font:inherit;width:52px;height:30px;border-radius:999px;border:1px solid var(--line);background:var(--line);position:relative;cursor:pointer;flex:0 0 auto}
.switch button::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:22px;height:22px;border-radius:50%;background:var(--surface);transition:transform .15s}
.switch button[aria-checked="true"]{background:var(--ok)}
.switch button[aria-checked="true"]::after{transform:translateX(22px)}

/* ---- header ---- */
header.hdr{position:sticky;top:0;z-index:60;background:rgba(248,243,236,.9);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:background .3s var(--ease),border-color .3s var(--ease)}
:root[data-theme="dark"] header.hdr,@media (prefers-color-scheme:dark){header.hdr{background:rgba(30,23,28,.9)}}
header.hdr.solid{border-bottom-color:var(--line)}
.hdr .in{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0}
.brand{display:flex;flex-direction:column;background:none;border:0;cursor:pointer;padding:0;color:inherit;text-align:start;flex:0 0 auto}
.brand .w{display:block;line-height:0}.w-dark{display:none!important}@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .w-light{display:none!important}:root:not([data-theme="light"]) .w-dark{display:block!important}}:root[data-theme="dark"] .w-light{display:none!important}:root[data-theme="dark"] .w-dark{display:block!important}.brand .w svg{height:30px;width:auto}
.flogo svg{height:34px;width:auto}
.brand .t{font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);font-weight:700;margin-top:3px}
.hdr nav{display:flex;gap:20px;font-size:14.5px;font-weight:500;white-space:nowrap;align-items:center}
.hdr nav button{font:inherit;background:none;border:0;color:inherit;cursor:pointer;padding:6px 0 4px;border-bottom:2px solid transparent}
.hdr nav button[aria-current="page"]{border-bottom-color:var(--gold);font-weight:700}
.hdr nav button.more{color:var(--ink-2)}
.demo{font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;color:var(--warn);background:var(--warn-soft);padding:3px 9px;border-radius:999px;white-space:nowrap}
.burger{display:none;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer}
.drawer-logo{position:absolute;top:18px;inset-inline-start:24px;line-height:0}.drawer-logo svg{height:30px;width:auto}
.burger i{width:17px;height:1.8px;background:currentColor;display:block}
.drawer{position:fixed;inset:0;z-index:80;background:var(--bg);padding:84px 24px 40px;display:none;overflow:auto}
.drawer.open{display:block}
.drawer button.nv{display:block;width:100%;text-align:start;font-family:var(--serif);font-size:27px;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;cursor:pointer}
.drawer .x{position:absolute;top:14px;inset-inline-end:14px;width:44px;height:44px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:inherit;cursor:pointer;font-size:20px}

/* ---- hero / editorial ---- */
.hero{position:relative;min-height:clamp(520px,80vh,800px);display:flex;align-items:flex-end;overflow:hidden}
.hero .bg{position:absolute;inset:0;z-index:0}
.hero .bg img{width:100%;height:100%;object-fit:cover}
.hero .inner{position:relative;z-index:2;padding-bottom:clamp(36px,5vw,68px);width:100%}
.hero h1{color:#FFFDF9;max-width:16ch;text-shadow:0 2px 30px rgba(16,6,12,.5)}
.hero .sub{color:#F0E3DE;max-width:44ch;margin-top:14px;text-shadow:0 1px 18px rgba(16,6,12,.6);font-size:clamp(16px,1.3vw,19px)}
.hero .eyebrow{color:#E6CFD6}
.hero .cta{margin-top:26px;display:flex;gap:12px;flex-wrap:wrap}
.editorial{position:relative;min-height:clamp(340px,44vw,520px);display:flex;align-items:flex-end;overflow:hidden}
.editorial .bg{position:absolute;inset:0;z-index:0} .editorial .bg img{width:100%;height:100%;object-fit:cover}
.hero .bg .ph,.editorial .bg .ph{height:100%;border-radius:0}
.editorial .inner{position:relative;z-index:2;padding:0 0 clamp(26px,3.5vw,48px);width:100%}
.editorial h2{color:#FFFDF9;max-width:19ch;text-shadow:0 2px 24px rgba(16,6,12,.45)}
.editorial p{color:#EEDFDA;max-width:44ch;margin-top:10px}
.dark{background:var(--night);color:#F4EBE4} .dark .lead,.dark .muted{color:#C9B9BF} .dark .tiny{color:#A2919A} .dark .eyebrow{color:#D4906F}
.dark .card{background:rgba(255,253,249,.06);border-color:rgba(255,253,249,.14);color:#F4EBE4}

/* ---- the opening composition: type on cream, three frames, three ages ---- */

/* ---- the three services ---- */
.sec.tight{padding:clamp(28px,3.5vw,52px) 0}
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);border-block:1px solid var(--line);padding:var(--s4) 0}
.svc-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-inline-end:var(--s3);border-inline-end:1px solid var(--line-2)}
.svc-card:last-child{border-inline-end:0}
.svc-line{font-family:var(--serif);font-size:clamp(18px,1.5vw,23px);line-height:1.2;margin:0;color:var(--ink)}

/* ---- occasion collections ---- */
.coll{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3)}
.coll-card{grid-column:span 1;border:0;background:none;padding:0;text-align:start;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:10px}
.coll-card.wide{grid-column:span 4}
.coll-card .ph{border-radius:var(--rad)}
.coll-txt b{font-family:var(--serif);font-weight:500;font-size:1.14rem;display:block}
.coll-txt span{font-size:.84rem;color:var(--ink-2);display:block;margin-top:2px}
.coll-card.wide .coll-txt b{font-size:clamp(20px,2vw,28px)}
.coll-own{grid-column:span 4;background:var(--gold-soft);border-radius:var(--radL);padding:var(--s4);display:flex;flex-direction:column;align-items:flex-start}
.coll-own input{max-width:520px}

/* ---- the mood band ---- */
.moods .mood-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);gap:var(--s3);overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory}
.mood{scroll-snap-align:start;border:0;padding:0;background:none;color:inherit;cursor:pointer;text-align:start;display:flex;flex-direction:column;gap:11px}
.mood .ph{border-radius:var(--rad)}
.mood .ph img{transition:transform .8s var(--ease),filter .5s var(--ease)}
.mood:hover .ph img{transform:scale(1.05)}
.mood-txt b{font-family:var(--serif);font-weight:500;font-size:1.16rem;display:block;color:#F4EBE4}
.mood-txt span{font-size:.82rem;color:#C9B9BF;display:block;margin-top:2px}
.mood.romantic .ph img{filter:saturate(1.02) contrast(1.02) brightness(1.02)}
.mood.sensual .ph img{filter:saturate(.82) contrast(1.16) brightness(.86)}
.mood.dramatic .ph img{filter:saturate(.9) contrast(1.22)}
.mood.playful .ph img{filter:saturate(1.12) contrast(1.04) brightness(1.04)}
.mood.proud .ph img{filter:saturate(1.04) contrast(1.08)}
.mood.adventurous .ph img{filter:saturate(1.08) contrast(1.06) brightness(1.03)}
.mood.reflective .ph img{filter:saturate(.78) contrast(.98) brightness(1.02)}

/* ---- wall preview, varied sizes ---- */
.wall-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3)}
.wp{border:0;background:none;padding:0;color:inherit;text-align:start;cursor:pointer;display:flex;flex-direction:column;gap:10px}
.wp.big{grid-column:span 2;grid-row:span 2}
.wp-txt b{font-family:var(--serif);font-weight:500;font-size:1.08rem;display:block}
.wp.big .wp-txt b{font-size:clamp(19px,1.8vw,26px)}
.wp-txt span{font-size:.84rem;color:var(--ink-2);display:block;margin-top:2px}
.wp.words{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);padding:clamp(16px,1.6vw,22px);justify-content:flex-start}
.wp.words:hover{border-color:var(--plum)}
.wp.words .wp-txt b{font-size:clamp(19px,1.5vw,23px);line-height:1.15}
.wp.words .wp-txt>span:not(.wp-ch):not(.fict){font-family:var(--serif);font-size:1.02rem;color:var(--ink);margin-top:10px;line-height:1.35}
.wp-txt span.fict{display:inline-block;margin-top:10px;width:auto}
.wp-txt span.wp-by{font-size:.78rem;color:var(--ink-3);margin-top:10px}
.wp-ch{font-size:.68rem!important;letter-spacing:.12em;text-transform:uppercase;color:var(--plum)!important;margin:0 0 8px!important}

/* ---- two-up cards ---- */
.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4)}
.two-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.two-card h3{font-size:clamp(20px,1.9vw,27px)}

/* ---- testing-actor bar: obviously a control, never mistaken for a login ---- */
.actorbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:repeating-linear-gradient(135deg,transparent,transparent 9px,rgba(138,59,18,.05) 9px,rgba(138,59,18,.05) 18px),var(--warn-soft);
 border:1px dashed var(--warn);border-radius:12px;padding:10px 14px;margin:var(--s3) 0}
.actorbar .lbl{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--warn)}
.actorbar select{width:auto;min-width:230px;max-width:100%}
.actorbar .tiny{flex:1;min-width:200px}

/* ---- Our Story timeline: real photographs at a useful size, compact controls ---- */
.timeline{display:flex;flex-direction:column;gap:var(--s3);margin-top:var(--s3)}
.tl{display:grid;grid-template-columns:1fr;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radL);overflow:hidden}
.tl.has-photo{grid-template-columns:minmax(0,340px) minmax(0,1fr)}
.tl.pending{border-style:dashed;background:var(--bg)}
.tl-img .ph{border-radius:0;height:100%}
.tl-body{padding:var(--s3) var(--s4)}
.tl-body h3{font-size:clamp(19px,1.7vw,25px);margin:4px 0 8px}
.tl.add{border-style:dashed;background:var(--bg)}

/* ---- v0.5.3: shop first, compact occasions, honest product images ---- */
.shopfirst{padding-top:clamp(20px,3vw,40px)}
.shopbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radL);padding:14px 16px}
.shopbar label{margin:0 0 4px}
.shoptiles{grid-template-columns:repeat(4,minmax(0,1fr))}
.tile .body{display:flex;flex-direction:column;gap:4px}
.avail{font-size:.74rem;color:var(--ink-2)}
.avail.ok{color:var(--ok)}
.prodimg{position:relative}
.prodimg .exlabel{position:absolute;inset-inline-start:8px;top:8px;z-index:2;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;background:rgba(28,16,23,.72);color:#F2E9E0;padding:3px 8px;border-radius:999px}
.tile .prodimg .ph{border-radius:0;aspect-ratio:4/3}
a.cred{text-decoration:none}
a.cred:hover{text-decoration:underline}
.occrail{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2)}
.occ{display:grid;grid-template-columns:clamp(56px,32%,112px) minmax(0,1fr);min-width:0;gap:12px;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:var(--rad);padding:8px;text-align:start;color:inherit;cursor:pointer;min-height:96px}
.occ:hover{border-color:var(--plum)}
.occ .ph,.occ .tpanel{border-radius:10px;aspect-ratio:4/3;min-height:0}
.occ .tpanel{padding:8px}.occ .tpanel b{font-size:.9rem}.occ .tpanel span{display:none}
.occ-txt b{font-family:var(--serif);font-weight:500;font-size:1.04rem;display:block;line-height:1.15}
.occ-txt span{font-size:.8rem;color:var(--ink-2);display:block;margin-top:3px}
.ownocc{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:var(--s2);background:var(--gold-soft);border-radius:var(--rad);padding:12px 16px}
.ownocc label{margin:0}.ownocc b{font-family:var(--serif);font-weight:500;font-size:1.04rem}
.ownocc input{min-height:40px;margin:0}

/* ---- the life-chapter edit: asymmetric, not alternating blocks ---- */
.edit{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--s3);align-items:start}
.edit>*{min-width:0}
.ch{display:flex;flex-direction:column;gap:11px}
.ch .ph{aspect-ratio:var(--ar,4/3)}
.ch .cap b{font-family:var(--serif);font-size:1.16rem;font-weight:500;display:block}
.ch .cap span{font-size:.86rem;color:var(--ink-2);display:block;margin-top:2px}
.ch .yr{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:700}
.pull{font-family:var(--serif);font-size:clamp(20px,2vw,29px);line-height:1.22;color:var(--plum);align-self:center}
.pull span{display:block;font-family:var(--sans);font-size:.8rem;color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;margin-top:12px;font-weight:600}
/* span helpers */
.c3{grid-column:span 3}.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}.c7{grid-column:span 7}.c8{grid-column:span 8}.c12{grid-column:span 12}
.dn1{margin-top:clamp(14px,3vw,52px)}.dn2{margin-top:clamp(26px,6vw,104px)}

/* ---- wall ---- */
.wall{columns:3;column-gap:var(--s3)}
.wcard{break-inside:avoid;margin-bottom:var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);overflow:hidden;display:block;width:100%;text-align:start;font:inherit;color:inherit;cursor:pointer;padding:0}
.wcard .ph{border-radius:0}
.wcard .body{display:block;padding:14px 16px 16px}
.wcard .ttl{font-family:var(--serif);font-size:1.16rem;display:block;margin-bottom:5px}
.wcard .ex{font-size:.92rem;color:var(--ink-2)}
.wcard .by{font-size:.76rem;color:var(--ink-3);margin-top:9px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fict{font-size:.62rem;letter-spacing:.11em;text-transform:uppercase;background:var(--line-2);color:var(--ink-2);padding:2px 7px;border-radius:999px}

/* ---- shopping module / product ---- */
.shop{display:grid;grid-template-columns:230px minmax(0,1fr);gap:var(--s5);align-items:start}
.pdp{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--s5);align-items:start}
.sticky{position:sticky;top:88px}
.reveal-card{background:var(--surface);border-radius:var(--radL);padding:clamp(24px,4vw,52px);max-width:680px;margin-inline:auto}
.reveal-card .words{font-family:var(--serif);font-size:clamp(19px,2.2vw,27px);line-height:1.5;white-space:pre-wrap}
.skel{background:linear-gradient(90deg,var(--line-2) 25%,var(--line) 37%,var(--line-2) 63%);background-size:400% 100%;animation:sk 1.3s linear infinite;border-radius:10px}
@keyframes sk{0%{background-position:100% 0}100%{background-position:-100% 0}}
.rev{opacity:0;transform:translateY(16px);transition:opacity .65s var(--ease),transform .65s var(--ease)}
.rev.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.rev{opacity:1;transform:none}.ph img{transform:none!important}}

/* ---- facilitator ---- */
.fac{margin:var(--s5) auto 0;font-size:.85rem;color:var(--ink-2)}
.facbtn{position:fixed;inset-inline-end:8px;bottom:8px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);font:inherit;cursor:pointer;opacity:.35;z-index:70}
footer{background:var(--night);color:#F2E9E0;padding:var(--s6) 0 var(--s4);font-size:14px;margin-top:var(--sec)}
footer .cols{display:grid;grid-template-columns:2fr 1fr 1fr 1.6fr;gap:var(--s5)}
footer b{color:#D4906F;font-size:.68rem;letter-spacing:.17em;text-transform:uppercase;font-weight:700;display:block;margin-bottom:8px}
footer button.fl{display:block;background:none;border:0;color:#D6C8CE;font:inherit;font-size:13.5px;padding:3px 0;cursor:pointer;text-align:start}
footer .base{border-top:1px solid #3A2E35;margin-top:var(--s4);padding-top:var(--s3);font-size:12.5px;color:#8A7B83}

@media (max-width:860px){ .dlong{display:none} }
@media (max-width:1040px){
 .hdr nav{display:none} .burger{display:flex} .brand .t{display:none}
 .wall{columns:2} .shop{grid-template-columns:1fr} .shop aside{display:none}
}
@media (max-width:1040px){
 .coll{grid-template-columns:repeat(2,1fr)} .coll-card.wide,.coll-own{grid-column:span 2}
 .wall-preview{grid-template-columns:repeat(2,1fr)} .wp.big{grid-column:span 2;grid-row:auto}
 .svc{grid-template-columns:1fr;gap:var(--s3)} .svc-card{border-inline-end:0;border-bottom:1px solid var(--line-2);padding-bottom:var(--s3)} .svc-card:last-child{border-bottom:0}
 .two{grid-template-columns:1fr}
 .tl.has-photo{grid-template-columns:1fr}
}
@media (max-width:860px){
 .wrap,.wrapN{width:calc(100% - 32px)}
 .edit{grid-template-columns:repeat(6,1fr);gap:var(--s2)}
 .c3,.c4,.c5{grid-column:span 3}.c6,.c7,.c8{grid-column:span 6}
 .dn1,.dn2{margin-top:0}
 .pdp{grid-template-columns:1fr} .sticky{position:static}
 .sec{padding:48px 0} .hero{min-height:74vh}
 footer .cols{grid-template-columns:1fr 1fr;gap:var(--s4)}
}
@media (max-width:1040px){ .shoptiles{grid-template-columns:repeat(2,minmax(0,1fr))} .occrail{grid-template-columns:repeat(2,minmax(0,1fr))} .wall-preview{grid-template-columns:repeat(2,minmax(0,1fr))} .wp.big{grid-row:auto} .wp{min-width:0} }
@media (max-width:640px){
 .shopbar{grid-template-columns:1fr 1fr;padding:12px}
 .shopbar>div:last-child{grid-column:span 2}
 .shoptiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .tile .body{padding:9px 10px 11px}
 .occrail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;padding-bottom:8px;margin-inline:-16px;padding-inline:16px}
 .occ{flex:0 0 78%;scroll-snap-align:start;min-height:84px;grid-template-columns:88px minmax(0,1fr)}
 .ownocc{grid-template-columns:1fr auto} .ownocc label{grid-column:1 / -1}
 .coll{grid-template-columns:1fr} .coll-card.wide,.coll-own{grid-column:span 1}
 .wall-preview{grid-template-columns:1fr} .wp.big{grid-column:span 1}
}
@media (max-width:560px){.wall{columns:1} .tiles{grid-template-columns:1fr 1fr} .edit{grid-template-columns:repeat(2,1fr)} .c3,.c4,.c5,.c6,.c7,.c8{grid-column:span 2} .pull{grid-column:span 2}}

/* ---- v0.5.4 opening: one campaign composition across relationships ---- */
.open{padding:clamp(24px,3.4vw,56px) 0 clamp(28px,3.4vw,52px)}
[hidden]{display:none!important}
.open-top{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(20px,3vw,56px);align-items:center}
.open-copy{min-width:0}
.open-copy h1{font-size:clamp(40px,5.2vw,78px);line-height:.98;margin-bottom:16px}
.open-copy .lead{font-family:var(--serif);font-size:clamp(20px,1.8vw,27px);color:var(--plum);margin-bottom:0}
.forwho{margin-top:var(--s3)}
.forwho .lbl{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);display:block;margin-bottom:8px}
.forwho .chips{display:flex;flex-wrap:wrap;gap:8px}
.forwho .chip{min-height:40px}
.open-cta{margin-top:var(--s3)}
.open-lead{margin:0;position:relative}
.open-lead .ph{aspect-ratio:1/1;border-radius:var(--radL);box-shadow:0 26px 60px -34px rgba(36,20,30,.55)}
.open-lead figcaption{position:absolute;left:16px;bottom:16px;background:rgba(255,253,249,.94);border-radius:12px;padding:9px 13px;max-width:78%}
.open-lead figcaption b{font-family:var(--serif);font-weight:500;font-size:1.1rem;display:block;line-height:1.15}
.open-lead figcaption span{font-size:.8rem;color:var(--ink-2)}
.open-rel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.6vw,24px);margin-top:clamp(22px,2.6vw,40px)}
.rel{border:0;background:none;padding:0;text-align:start;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:10px}
.rel .ph{aspect-ratio:3/2}
.rel b{font-family:var(--serif);font-weight:500;font-size:clamp(18px,1.5vw,22px);display:block;line-height:1.15}
.rel span{font-size:.85rem;color:var(--ink-2)}
.rel .go{color:var(--plum);font-weight:600;font-size:.82rem}
.rel:hover .go{text-decoration:underline}
/* ---- kinds of gift: category pictures, never product listings ---- */
.range{margin-top:var(--s4)}
.range h3{font-size:clamp(20px,1.8vw,26px);margin-bottom:12px}
.range-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.kind{border:1px solid var(--line);background:var(--surface);border-radius:var(--rad);padding:0;overflow:hidden;text-align:start;color:inherit;cursor:pointer;display:flex;flex-direction:column}
.kind .ph{aspect-ratio:16/10;border-radius:0}
.kind .k-txt{padding:10px 12px 12px}
.kind b{font-family:var(--serif);font-weight:500;font-size:1.08rem;display:block}
.kind span{font-size:.8rem;color:var(--ink-2)}
.kind .soon{display:inline-block;margin-top:4px;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--plum);background:var(--plum-soft);padding:2px 7px;border-radius:999px}
.kind-more{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
@media (max-width:1040px){ .open-top{grid-template-columns:1fr 1fr} .range-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){
 .open-top{grid-template-columns:1fr;gap:18px}
 .open-rel{display:none}
 .open-lead .ph{aspect-ratio:4/3}
 .forwho .chips{flex-wrap:nowrap;overflow-x:auto;margin-inline:-16px;padding:0 16px 4px;scrollbar-width:none}
 .forwho .chip{flex:0 0 auto}
 .range-grid{display:flex;overflow-x:auto;margin-inline:-16px;padding:0 16px 6px;gap:10px;scroll-snap-type:x mandatory}
 .kind{flex:0 0 46%;scroll-snap-align:start}
}

/* ==== v0.6 shop ==== */
.basketbtn{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;font:600 13.5px var(--sans,inherit);color:var(--ink);cursor:pointer;min-height:40px;display:inline-flex;align-items:center;gap:6px}
.basketbtn:hover{border-color:var(--plum)}
.bcount{background:var(--plum);color:#fff;border-radius:999px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;padding:0 6px}
.linkish{background:none;border:0;padding:0;font:inherit;color:var(--plum);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.shop-hero{border-radius:var(--radL);overflow:hidden;margin-bottom:var(--s4);min-height:clamp(240px,30vw,380px)!important}
.shop-hero-in{padding:0 clamp(18px,3vw,40px)}
.shop-hero h1{font-size:clamp(34px,4.4vw,60px);line-height:1}
.shop-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s2)}
.shop-h{font-size:clamp(32px,4vw,54px);line-height:1.02;margin:4px 0 0}
.shop-search{display:flex;gap:8px;flex:1 1 320px;max-width:460px}
.shop-search input{margin:0;min-height:46px;flex:1}
.catbar{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;scrollbar-width:thin}
.catbar .chip{flex:0 0 auto;min-height:42px}
.catbar .n{font-size:.72rem;color:var(--ink-3);margin-left:2px}
.catbar .chip[aria-pressed="true"] .n{color:#E6D6DF}
.filterbar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;gap:10px;align-items:end;background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);padding:12px 14px}
.filterbar label{margin:0 0 4px;font-size:.78rem}
.filterbar select,.filterbar input{margin:0;min-height:42px}
.intd summary{cursor:pointer;min-height:42px;display:flex;align-items:center;padding:0 12px;border:1px solid var(--line);border-radius:12px;font-weight:600;font-size:.88rem}
.intd[open]{grid-column:1 / -1}.intd[open] summary{margin-bottom:8px;display:inline-flex}
.pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.4vw,20px)}
.pgrid-3{grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 var(--s3)}
.pcard{border:1px solid var(--line);background:var(--surface);border-radius:var(--rad);padding:0;overflow:hidden;text-align:start;color:inherit;cursor:pointer;display:flex;flex-direction:column;min-width:0;transition:border-color .2s,box-shadow .2s}
.pcard:hover{border-color:var(--plum);box-shadow:0 16px 36px -28px rgba(36,20,30,.55)}
.pcard .prodimg .ph,.pcard .tpanel{border-radius:0;aspect-ratio:1/1;min-height:0}
.pcard.is-out .prodimg{opacity:.55}
.pc-body{display:flex;flex-direction:column;gap:4px;padding:12px 14px 14px;flex:1}
.pc-cat{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--plum)}
.pc-name{font-family:var(--serif);font-weight:500;font-size:1.14rem;line-height:1.15}
.pc-desc,.pc-why{font-size:.82rem;color:var(--ink-2);line-height:1.35}
.pc-why{color:var(--ok)}
.pc-price{margin-top:auto;padding-top:6px;font-size:.92rem}
.pc-price b{font-size:1.08rem}
.pc-meta{font-size:.72rem;color:var(--ink-3)}
.shop-sub{margin:var(--s4) 0 6px;font-size:clamp(20px,2vw,26px)}
.story-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.shop-more{margin-top:var(--s3);border-top:1px solid var(--line);padding-top:12px}
.shop-more summary{cursor:pointer;font-weight:600;min-height:40px;display:flex;align-items:center}
.research-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tile.research{padding:12px 14px}
.crumb{margin-bottom:var(--s2)}
.pdp2{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:start}
.pdp-media{position:sticky;top:84px}
.pdp-media .ph,.pdp-media .tpanel{border-radius:var(--radL)}
.pdp-name{font-size:clamp(30px,3.4vw,46px);line-height:1.04;margin:10px 0 8px}
.pdp-desc{font-size:1.02rem;color:var(--ink-2);max-width:56ch}
fieldset.opt{border:0;border-top:1px solid var(--line);margin:14px 0 0;padding:12px 0 0}
fieldset.opt legend{font-weight:700;font-size:.9rem;padding:0 0 6px}
.opts{display:flex;flex-direction:column;gap:8px}.opts label{margin:0;font-weight:400;display:flex;gap:8px;align-items:flex-start;font-size:.92rem}
.qty{display:flex;align-items:center;gap:8px;margin-top:12px}.qty .lbl{font-weight:700;font-size:.9rem;margin-right:6px}
.qbtn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:1.2rem;cursor:pointer;color:var(--ink)}
.qty output,.bl-qty output{min-width:28px;text-align:center;font-weight:700}
.pdp-cta{margin-top:14px}.pdp-cta .btn{flex:1 1 180px}
.pdp-more{margin-top:var(--s3);border-top:1px solid var(--line);padding-top:10px}.pdp-more summary{cursor:pointer;font-weight:600}
.basket-top{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:var(--s2) 0}.basket-top select{margin:0;max-width:220px}.basket-top label{margin:0}
.dgroup{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);padding:14px 16px;margin:0 0 14px}
.dgroup header{padding-bottom:8px;border-bottom:1px solid var(--line-2);margin-bottom:6px}
.bline{display:grid;grid-template-columns:72px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-2)}
.bline .prodimg .ph,.bline .tpanel{aspect-ratio:1/1;border-radius:10px;min-height:0;padding:6px}
.bline .exlabel,.bline .tpanel span{display:none}.bline .tpanel b{font-size:.7rem}
.bl-qty{display:flex;align-items:center;gap:6px}.bl-price{text-align:end}
.basket-sum{margin-top:var(--s2)}
.big-sum{font-family:var(--serif);font-size:1.4rem}
.co-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s4);align-items:start;margin-top:var(--s3)}
.co-sum{position:sticky;top:84px}
.co-group{padding:10px 0;border-bottom:1px solid var(--line-2)}
.empty{text-align:center}.empty .row{justify-content:center}
@media (max-width:1040px){ .pgrid{grid-template-columns:repeat(3,minmax(0,1fr))} .filterbar{grid-template-columns:repeat(3,minmax(0,1fr))} .research-list{grid-template-columns:1fr 1fr} }
@media (max-width:760px){
 .pgrid,.pgrid-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .pc-body{padding:10px}.pc-name{font-size:1.02rem}.pc-desc{display:none}
 .filterbar{grid-template-columns:1fr 1fr;padding:10px}
 .pdp2,.co-grid{grid-template-columns:1fr}.pdp-media,.co-sum{position:static}
 .pdp-media .ph{aspect-ratio:1/1!important}
 .story-row,.research-list{grid-template-columns:1fr}
 .bline{grid-template-columns:56px minmax(0,1fr) auto;}
 .bl-price{grid-column:2 / -1;text-align:start}
 .basketbtn{padding:6px 10px}
 .shop-search{max-width:none}
}
@media (max-width:420px){
 .hdr .row{gap:6px!important}
 .brand .w svg{height:26px}
 .basketbtn{padding:6px 9px}
}
.kinds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.kind2{border:1px solid var(--line);background:var(--surface);border-radius:var(--rad);padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;text-align:start;color:inherit;cursor:pointer}
.kind2:hover{border-color:var(--plum)}
.k-thumbs{display:flex}.k-thumbs>*{width:52px;flex:0 0 52px;margin-right:-14px;border-radius:10px;overflow:hidden;border:2px solid var(--surface)}
.k-thumbs .ph,.k-thumbs .tpanel{aspect-ratio:1/1!important;border-radius:0;min-height:0;padding:0}.k-thumbs .exlabel,.k-thumbs .tpanel *{display:none}
.kind2 .k-txt{padding-left:14px}.kind2 b{font-family:var(--serif);font-weight:500;font-size:1.08rem;display:block}.kind2 .k-txt span{font-size:.8rem;color:var(--ink-2)}
.homepicks .pcard .pc-desc{display:none}
@media (max-width:760px){ .kinds{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px} .kind2{grid-template-columns:1fr;gap:8px;padding:8px} .k-thumbs>*{width:40px;flex-basis:40px;margin-right:-12px} .kind2 .k-txt{padding-left:0} .kind2 b{font-size:.98rem} .homepicks .pcard:nth-child(n+5){display:none} }
/* mobile: the Wall preview becomes a swipeable row instead of a tall stack */
@media (max-width:640px){ .wall-preview{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:8px;margin-inline:-16px;padding-inline:16px;scroll-padding-inline:16px} .wall-preview .wp{flex:0 0 78%;scroll-snap-align:start} }

/* ==== v0.6 identity ==== */
.busy{display:flex;align-items:center;gap:12px;padding:10px 0;color:var(--plum);font-weight:600;font-size:.92rem}
.busy .oo{width:46px;height:auto;flex:0 0 46px}
.busy-stop{margin-inline-start:6px;font-weight:600}
/* double-O motion component */
.oo{display:block;fill:currentColor;color:var(--plum);overflow:visible}
.oo .oo-l,.oo .oo-r,.oo .oo-h{transform-box:fill-box;transform-origin:center}
.oo .oo-h{opacity:0}
.oo.is-thinking .oo-l{animation:oo-pull-l 1.2s ease-in-out infinite alternate}
.oo.is-thinking .oo-r{animation:oo-pull-r 1.2s ease-in-out infinite alternate}
@keyframes oo-pull-l{from{transform:translateX(0)}to{transform:translateX(36px)}}
@keyframes oo-pull-r{from{transform:translateX(0)}to{transform:translateX(-36px)}}
/* reveal: driven by SMIL inside the SVG (see ooSVG). Without SMIL (reduced motion), show the end state. */
.oo.is-reveal:not(.smil) .oo-l,.oo.is-reveal:not(.smil) .oo-r{opacity:0}
.oo.is-reveal:not(.smil) .oo-h{opacity:1}
.oo.is-reveal.smil .oo-h{opacity:0}
.oo.is-success .oo-l,.oo.is-success .oo-r{opacity:0}
.oo.is-success .oo-h{opacity:1;animation:oo-settle .45s var(--ease) both}
@keyframes oo-settle{from{transform:scale(1.07)}to{transform:scale(1)}}
.oo.is-error{color:var(--ink-3)}
.oo.is-error .oo-l{transform:translateX(-12px)}.oo.is-error .oo-r{transform:translateX(12px)}
.oo-result{display:flex;align-items:center;gap:14px;margin:0 0 var(--s3);padding:12px 16px;border-radius:var(--rad);font-size:.95rem}
.oo-result .oo{width:52px;height:auto;flex:0 0 52px}
.oo-result.ok{background:var(--ok-soft)}.oo-result.bad{background:var(--warn-soft)}
.oo-result.ok{color:var(--ok)}.oo-result.ok .oo{color:var(--plum)}
.oo-result.bad{color:var(--warn)}
/* navigation: the header's two O's nudge together and back, ~300 ms, never blocking */
.brand .w svg > g:first-of-type > path{transform-box:fill-box;transform-origin:center}
.brand.nav-go .w svg > g:first-of-type > path:first-child{animation:nav-l .3s var(--ease)}
.brand.nav-go .w svg > g:first-of-type > path:last-child{animation:nav-r .3s var(--ease)}
@keyframes nav-l{50%{transform:translateX(22px)}}
@keyframes nav-r{50%{transform:translateX(-22px)}}
#view.nav-in > *{animation:view-in .24s var(--ease)}
.rv-video{display:block;width:100%;max-width:560px;border-radius:12px;background:#000;margin:8px 0}.rs-samples{margin-top:12px;padding:12px;border:1px dashed var(--line);border-radius:12px}
.open-more{margin-top:14px;font-size:.95rem;color:var(--ink-2);max-width:46ch}.open-more .linkish{font:inherit;font-weight:600;color:var(--plum);text-decoration:underline;text-underline-offset:3px;padding:0;background:none;border:0;cursor:pointer}
.open-cta .btn:first-child{padding-inline:30px}
.tscroll{overflow-x:auto;margin:var(--s3) 0}.price-cmp{min-width:720px}.price-cmp td,.price-cmp th{vertical-align:top}
.cert-ctl{display:flex;flex-direction:column;gap:6px;margin-top:10px}.cert-ctl .lbl{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-2)}
.noprint .cert-controls{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.cert-personal{margin-top:12px;max-width:560px}
.certgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--s4);margin-top:var(--s4)}.cg{margin:0}.cg-pair{display:flex;gap:10px}.cg-p{flex:1;min-width:0}.cg-p > svg{width:100%;height:auto;display:block;border-radius:8px;box-shadow:0 18px 40px -30px rgba(0,0,0,.6)}.cg figcaption{font-size:.85rem;margin-top:8px;color:var(--ink-2)}
/* campaign hero: full-bleed photograph, copy in the picture's clear side */
.hero-c{position:relative;min-height:min(88vh,820px);display:grid;overflow:hidden;background:#1d1519}
.hc-fig{position:absolute;inset:0;margin:0}.hc-fig picture{display:contents}.hc-fig img{width:100%;height:100%;object-fit:cover;object-position:var(--hc-pos,50% 40%);display:block}
.hc-credit{position:absolute;right:12px;bottom:10px;font-size:.7rem;color:rgba(255,255,255,.75);text-shadow:0 1px 2px rgba(0,0,0,.5)}
.hero-c::after{content:"";position:absolute;inset:0;pointer-events:none}
.hero-c.side-left::after{background:linear-gradient(90deg,rgba(28,18,24,.72) 0%,rgba(28,18,24,.45) 34%,rgba(28,18,24,0) 58%)}
.hero-c.side-right::after{background:linear-gradient(270deg,rgba(28,18,24,.72) 0%,rgba(28,18,24,.45) 34%,rgba(28,18,24,0) 58%)}
.hc-copy{position:relative;z-index:1;display:flex;align-items:center;padding-block:var(--s6)}
.hero-c.side-right .hc-copy{justify-content:flex-end}
.hc-inner{max-width:30rem;color:#FBF6EF}
.hc-inner h1{font-family:var(--serif);font-weight:400;font-size:clamp(44px,5.4vw,84px);line-height:.98;margin:0 0 18px;color:#FBF6EF}
.hc-inner .lead{color:#F1E6DE}
.hc-inner .open-more{color:#E9DDD5}.hc-inner .open-more .linkish{color:#FBF6EF}
.hero-c .btn.hc-primary{background:#FBF6EF;color:#5B2949;border-color:#FBF6EF}.hero-c .btn.hc-primary:hover{background:#fff}
.hero-c .btn.hc-secondary{color:#FBF6EF;border-color:rgba(251,246,239,.75);background:transparent}.hero-c .btn.hc-secondary:hover{background:rgba(251,246,239,.12)}
.open.after-hero{padding-top:var(--s4)}.forwho-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:0 0 var(--s4)}.forwho-bar .lbl{margin:0}.forwho-bar .chips{min-width:0;max-width:100%}
/* v0.9 words panels: deliberate typography where no honest photograph exists (no gradient, no fake image) */
.tpanel.words{background:#EFE3D6;color:#5B2949;border:1px solid #E2D2C2;justify-content:center;align-items:flex-start;padding:clamp(12px,2vw,22px)}
.tpanel.words::before{display:none}
.tpanel.words .w-line{font-family:var(--serif);font-size:clamp(1.05rem,1.6vw,1.45rem);line-height:1.12;color:#5B2949;max-width:18ch;border-left:2px solid var(--copper,#AF694D);padding-left:12px}
.occ .tpanel.words{padding:8px}.occ .tpanel.words .w-line{display:block!important;font-size:.82rem;line-height:1.1;padding-left:7px;color:#5B2949}
.shop-hero.noimg{background:linear-gradient(180deg,#3a2233,#5B2949)}.shop-hero.noimg .scrim{display:none}.k-thumbs .tpanel>*{display:none}
/* extend mode: a studio photograph on one side; its plain backdrop continues as a panel behind the copy */
.hero-c.mode-extend{background:linear-gradient(180deg,var(--hc-top,#2a2e31),var(--hc-bottom,#5a6061))}
.hero-c.mode-extend::after{display:none}
.hero-c.mode-extend .hc-fig{left:auto;right:0;width:min(62%,900px);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22%);mask-image:linear-gradient(90deg,transparent 0,#000 22%)}
.hero-c.mode-extend.side-right .hc-fig{left:0;right:auto;-webkit-mask-image:linear-gradient(270deg,transparent 0,#000 22%);mask-image:linear-gradient(270deg,transparent 0,#000 22%)}
@media (max-width:760px){
 .hero-c,.hero-c.mode-extend{display:block;min-height:0;background:var(--bg)}
 .hero-c.mode-extend .hc-fig{width:100%;-webkit-mask-image:none;mask-image:none}
 /* mobile: a shorter picture (about 340-390px tall at 390px wide) so the headline and Browse gifts arrive sooner;
    each photograph has its own mobile crop point (focalMobile / srcMobile) that keeps face, hands and gift */
 .hc-fig{position:relative;height:clamp(340px,92vw,390px)}.hc-fig img{object-position:var(--hc-pos-m,50% 40%)}
 .hc-credit{font-size:.62rem;bottom:6px;right:8px}
 .hero-c::after{display:none}
 .hc-copy{padding:18px 0 8px}.open.after-hero{padding:8px 0 0}.open.after-hero .forwho-bar{margin-bottom:0}.open.after-hero + .shopfirst{padding-top:28px}.hc-inner{color:var(--ink)}
 .hc-inner h1{color:var(--ink);font-size:clamp(34px,9.4vw,44px);line-height:1.02;margin-bottom:10px}.hc-inner .lead{margin:0 0 14px}.hc-inner .open-cta{margin-top:0}.hc-inner .lead{color:var(--ink-2)}
 .hc-inner .open-more{color:var(--ink-2)}.hc-inner .open-more .linkish{color:var(--plum)}
 .hero-c .btn.hc-primary{background:var(--plum);color:#FBF6EF;border-color:var(--plum)}.hero-c .btn.hc-secondary{color:var(--plum);border-color:var(--plum)}
}
.mv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);margin-top:var(--s3)}
.mv{border:1px solid var(--line);border-radius:var(--rad);background:var(--surface);padding:var(--s3)}
.mv h3{margin:0 0 8px}.mv-stage{min-height:110px;display:flex;align-items:center;justify-content:center}
.mv-stage .oo{width:120px;height:auto}.mv-stage .busy .oo{width:64px;flex-basis:64px}
.mv-msg.reveal-in{animation:reveal-body .5s var(--ease) .75s both}
.oo.nav-demo .oo-l{animation:nav-l .3s var(--ease)}.oo.nav-demo .oo-r{animation:nav-r .3s var(--ease)}
.rm-preview .oo *,.rm-preview .mv-msg{animation:none!important}
.rm-preview .oo.is-reveal .oo-l,.rm-preview .oo.is-reveal .oo-r{opacity:0}.rm-preview .oo.is-reveal .oo-h{opacity:1}
@media (max-width:720px){.mv-grid{grid-template-columns:1fr}}
.reveal-mark{display:flex;justify-content:center;margin:0 auto var(--s3)}.reveal-mark .oo{width:96px;height:auto}
.reveal-mark.opened .oo{width:132px}
.reveal-card.reveal-in{animation:reveal-body .5s var(--ease) .75s both}
@keyframes reveal-body{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes view-in{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
 .oo *,.oo.is-thinking *,.oo.is-reveal *,.oo.is-success *,.brand .w svg *,#view.nav-in > *,.reveal-card.reveal-in,.mv-msg.reveal-in{animation:none!important}
 .oo.is-reveal .oo-l,.oo.is-reveal .oo-r{opacity:0}.oo.is-reveal .oo-h{opacity:1}
}
.cert-fig{margin:var(--s3) 0;background:#fff;border-radius:var(--rad);box-shadow:0 24px 60px -40px rgba(36,20,30,.6);overflow:hidden}
.cert-fig > svg{display:block;width:100%;height:auto}
.cert-controls{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center}
.cert-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--s4);align-items:start;margin-top:var(--s3)}
.cert-layout .cert-fig{margin:0}.cert-layout.is-phone{grid-template-columns:minmax(0,420px) minmax(0,1fr)}
.cert-aside{border:1px solid var(--line);background:var(--surface);border-radius:var(--rad);padding:var(--s3)}.cert-aside h3{margin:0 0 8px}
.cert-printcopy{display:none}
@media (max-width:860px){.cert-layout,.cert-layout.is-phone{grid-template-columns:1fr}}
.ok-banner{background:#EEF5EC;border:1px solid #B9D3B1;color:#23401C;border-radius:var(--rad);padding:12px 16px;margin-bottom:var(--s3);font-size:.95rem}
.cert-preview{max-width:760px}
.cert-actions{margin:var(--s2) 0}
.cert-text{white-space:pre-wrap;font-size:.86rem;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px}
.verify{max-width:640px;margin:0 auto}.verify-mark svg{width:44px;height:44px}
.vdl{display:grid;grid-template-columns:max-content 1fr;gap:6px 18px;margin:16px 0}.vdl dt{font-weight:700}
.docrow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:var(--s3)}
.docbtn{border:1px solid var(--line);background:var(--surface);border-radius:var(--rad);padding:14px;text-align:start;cursor:pointer;color:inherit;display:flex;flex-direction:column;gap:4px}.docbtn:hover{border-color:var(--plum)}.docbtn span{font-size:.8rem;color:var(--ink-2)}
.docu{background:#fff;border:1px solid var(--line);border-radius:var(--rad);padding:clamp(18px,3vw,40px);max-width:820px;margin:0 auto}
.docu-h{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:16px}
.docu-logo > svg{height:40px;width:auto}.docu-f{border-top:1px solid var(--line);margin-top:18px;padding-top:10px;font-size:.75rem;color:var(--ink-3)}
.docu-t{width:100%;margin:12px 0}
.email-frame{border:1px solid var(--line);border-radius:var(--rad);overflow:hidden}.email-frame .mail-logo > svg{height:34px;width:auto}
.cc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:var(--s2)}
.cc-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s3);align-items:start}
.cc-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);padding:14px;position:sticky;top:84px}
.cc-side h3{margin:0}.cc-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.cc-item{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:center;border:1px solid var(--line-2);background:#fff;border-radius:12px;padding:6px;text-align:start;cursor:pointer;color:inherit}
.cc-item .prodimg .ph,.cc-item .tpanel{aspect-ratio:1/1;border-radius:8px;min-height:0;padding:4px}.cc-item .exlabel,.cc-item .tpanel span{display:none}.cc-item .tpanel b{font-size:.6rem}
.cc-item b{font-size:.9rem;display:block;line-height:1.2}
.cpicks .pcard .pc-desc{display:none}
.cmp td,.cmp th{font-size:.84rem;vertical-align:top}
.cc-band{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3);align-items:center;background:var(--plum-soft);border-radius:var(--radL);padding:clamp(20px,3vw,40px)}
.cc-q{font-size:clamp(26px,3vw,42px);line-height:1.08;margin:6px 0 10px}
.filmwrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--s4);align-items:center}
.film{margin:0}.film-frame{position:relative;border-radius:var(--radL);overflow:hidden}
.film-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:0;border-radius:999px;background:rgba(255,253,249,.94);color:var(--plum);font:700 .95rem var(--sans,inherit);padding:14px 22px;cursor:pointer;min-height:48px}
.film-play[disabled]{opacity:.7;cursor:default}.film figcaption{margin-top:8px}
.rv-stage{margin-top:var(--s3)}.rv-stage video{width:100%;border-radius:12px;background:#000;margin:10px 0}.rv-controls{margin-top:8px}
@media (max-width:760px){ .cc-grid,.filmwrap,.cc-band,.docrow{grid-template-columns:1fr} .cc-side{position:static} }
@media print{
  .hdr,footer,.noprint,.facbtn,#fac,.drawer{display:none!important}
  body{background:#fff}.wrap.sec{padding:0;width:100%}
  .cert-fig{box-shadow:none;margin:0;border-radius:0}.cert-printcopy{display:block!important}
  @page{size:A4 landscape;margin:0}
}

/* ===== v0.9 homepage composition ===== */
.proto-note{font-size:.82rem;color:var(--ink-2);background:var(--gold-soft);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:14px 0 0;max-width:72ch}
.proto-note b{color:var(--ink)}
/* how it works: one photograph, five routes */
.journey-band{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.jb{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,5vw,80px);align-items:center}
.jb-fig{margin:0;position:relative}.jb-fig .ph{border-radius:var(--radL);overflow:hidden;box-shadow:0 30px 60px -40px rgba(44,32,41,.55)}
.jb-fig figcaption{font-family:var(--serif);font-size:1.25rem;margin-top:12px;color:var(--ink)}
.jb-copy h2{font-size:clamp(30px,3.4vw,50px);line-height:1.04;margin:0 0 var(--s3);max-width:19ch}
.jb-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.jb-step{width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) 20px;gap:14px;align-items:center;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);padding:14px 4px;cursor:pointer;color:var(--ink);font:inherit}
.jb-step:hover{background:var(--plum-soft)}.jb-step:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.jb-n{font-family:var(--serif);font-size:1.7rem;color:var(--copper);line-height:1}
.jb-step b{display:block;font-size:1.02rem}.jb-step span span{display:block;font-size:.88rem;color:var(--ink-2);margin-top:2px}
.jb-step .go{color:var(--plum);font-size:1.1rem}
/* the certificate as a keepsake */
.keepsake{background:linear-gradient(180deg,var(--bg) 0%,#F1E7DC 100%)}
.ks{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(24px,5vw,72px);align-items:center}
.ks-copy h2{font-size:clamp(32px,3.8vw,56px);line-height:1.02;margin:0 0 14px;max-width:14ch}
.ks-list{margin:var(--s3) 0;padding:0;list-style:none}.ks-list li{padding:9px 0 9px 26px;border-bottom:1px solid var(--line);position:relative}
.ks-list li::before{content:"";position:absolute;left:4px;top:17px;width:10px;height:10px;border-radius:50%;border:1.5px solid var(--copper)}
.ks-themes{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--s3)}
.ks-fig{margin:0}.ks-paper{transform:rotate(-1.2deg);border-radius:6px;overflow:hidden;box-shadow:0 2px 3px rgba(44,32,41,.12),0 40px 70px -30px rgba(44,32,41,.55);background:#fff}
.ks-land > svg,.ks-port > svg{display:block;width:100%;height:auto}.ks-port{display:none}
.ks-fig figcaption{font-size:.78rem;color:var(--ink-2);margin-top:18px;text-align:center}
/* concierge example */
.cc-band{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.cc-sample{background:var(--surface);border-radius:var(--rad);padding:18px;display:flex;flex-direction:column;gap:10px;box-shadow:0 20px 40px -34px rgba(44,32,41,.6)}
.cc-sample p{margin:0}.cc-you{align-self:flex-end;background:var(--plum);color:#FBF3EE;border-radius:16px 16px 4px 16px;padding:10px 14px;max-width:88%;font-size:.93rem}
.cc-bot{align-self:flex-start;background:var(--bg);border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:10px 14px;max-width:92%;font-size:.93rem}
/* reveal: the attached minute */
.reveal-minute{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:18px;align-items:center;margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--line)}
.rm-cert > svg{display:block;width:100%;height:auto;border-radius:4px;box-shadow:0 16px 30px -24px rgba(44,32,41,.6)}
@media (max-width:760px){
 .jb,.ks,.reveal-minute{grid-template-columns:1fr}
 .jb-fig .ph{aspect-ratio:4/3!important}
 .ks-fig{order:-1}.ks-paper{transform:none;max-width:300px;margin-inline:auto}.ks-land{display:none}.ks-port{display:block}
 .cc-band{grid-template-columns:1fr}
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .keepsake{background:var(--bg)}}

/* product page: at a glance, and the words preview */
.glance{display:grid;grid-template-columns:minmax(110px,max-content) minmax(0,1fr);gap:8px 18px;margin:var(--s3) 0;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--rad);font-size:.92rem}
.glance dt{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-2);padding-top:3px}
.glance dd{margin:0}
.pers-preview{margin:10px 0 6px;padding:14px 16px;border:1px dashed var(--copper);border-radius:12px;background:var(--bg)}
.pers-preview p{font-family:var(--serif);font-size:1.6rem;line-height:1.15;margin:4px 0;min-height:1.2em;word-break:break-word}
@media (max-width:520px){.glance{grid-template-columns:1fr;gap:2px 0}.glance dd{margin-bottom:8px}}
.k-thumbs .tpanel > *{display:none!important}
.opts .pill{font-size:.62rem;padding:2px 8px;align-self:center;white-space:nowrap;margin-left:6px}
/* v0.9: no gradient stand-ins — a missing photograph is stated in type on a plain warm ground */
.tpanel:not(.bydesign){background:#EFE3D6!important;border:1px solid #E2D2C2}.tpanel:not(.bydesign)::before{display:none!important}
.tpanel.product:not(.bydesign){justify-content:flex-end}.tpanel.product:not(.bydesign) b{font-family:var(--serif);color:#5B2949;font-weight:400;font-size:1.05rem}
.tpanel.product:not(.bydesign) span{color:#6D5A63}

/* ===== v0.9.1 homepage: shorter, compact occasions and moods ===== */
.sec-head{align-items:flex-end;margin-bottom:var(--s3);gap:12px}
.kinds-compact{margin-top:var(--s3)}
.kind2.nothumb{grid-template-columns:1fr}.kind2.nothumb .k-txt{padding-left:4px}
.occ.occ-words{grid-template-columns:1fr;padding:12px 14px;border-left:3px solid var(--copper)}
.moodrow{margin-top:var(--s4)}.moodrow .lbl{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--ink-2);margin-bottom:10px}
.mood-chips{display:flex;flex-wrap:wrap;gap:10px}
.mood-chip{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);cursor:pointer;text-align:left;font:inherit;min-height:56px}
.mood-chip:hover{border-color:var(--plum)}.mood-chip:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.mood-chip .ph{width:44px;height:44px;flex:0 0 44px;border-radius:50%;overflow:hidden;aspect-ratio:1/1!important}.mood-chip .ph img{width:100%;height:100%;object-fit:cover}
.mood-chip .exlabel,.mood-chip .cred{display:none}
.mood-chip b{display:block;font-family:var(--serif);font-weight:400;font-size:1.05rem;line-height:1.1}
.mood-chip .mc-line{display:block;font-size:.76rem;color:var(--ink-2)}
.mood-chip .pill{margin-top:2px}
.mc-private{width:44px;height:44px;flex:0 0 44px;border-radius:50%;background:#2C2029;box-shadow:inset 0 0 0 1px rgba(212,144,111,.6)}
.jb-more{margin-top:var(--s3);color:var(--ink-2)}
@media (max-width:760px){
 .homepicks .pcard:nth-child(n+5){display:none}
 .kinds-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
 .mood-chip .mc-line{display:none}
 .mood-chip{padding:4px 12px 4px 4px;min-height:48px}.mood-chip .ph,.mc-private{width:38px;height:38px;flex-basis:38px}
 .jb-fig{display:none}
}

/* v0.9.1 · end of homepage: no cream gap before the footer; tighter lead-in to the Wall */
body:has(#view .wall-sec) footer{margin-top:0}
#view .wall-sec{padding-top:28px}
.spend-sum{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.minute-accept{display:flex;gap:8px;align-items:flex-start;margin:8px 0 10px;font-size:.92rem}.minute-accept input{margin-top:4px}
/* v0.9.1 · gifts without a photograph: text card, no empty frame */
.pcard.nophoto{background:var(--surface);border-left:3px solid var(--copper,#b8734a);align-self:start}
.pcard.nophoto .pc-nophoto{display:block;padding:14px 16px 0;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.pcard.nophoto .pc-name{font-size:1.25rem}
/* v0.9.1 · the reveal shows the phone certificate on phones, so its words stay readable */
.rm-cert .ks-land > svg,.rm-cert .ks-port > svg{border-radius:4px;box-shadow:0 16px 30px -24px rgba(44,32,41,.6)}
@media (max-width:760px){.rm-cert .ks-land{display:none}.rm-cert .ks-port{display:block;max-width:300px;margin-inline:auto}}
/* v0.9.2 · Try an example (homepage) and the example guide bar */
.try-ex{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:10px 0 4px}
.try-ex .lbl{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.try-row{display:flex;flex-wrap:wrap;gap:6px}
.try-btn{min-height:40px;padding:6px 14px;border:1px dashed var(--plum);border-radius:999px;background:transparent;color:var(--plum);cursor:pointer;font:inherit;font-size:.9rem}
.try-btn:hover,.try-btn:focus-visible{background:var(--plum-soft);outline:none}
.try-ex .tiny{margin:0;flex-basis:100%}
.ex-bar{background:var(--plum-soft);border-bottom:1px solid var(--line);padding:10px 0}
.ex-head{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}.ex-head b{font-family:var(--serif);font-weight:400;font-size:1.15rem}
.ex-head #exLeave{margin-left:auto}
.ex-steps{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0}
.ex-steps button{display:flex;gap:8px;align-items:center;min-height:40px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-size:.9rem;cursor:pointer}
.ex-steps button[aria-current="step"]{background:var(--plum);color:var(--plum-ink);border-color:var(--plum)}
.ex-steps .n{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--surface);color:var(--ink);font-size:.8rem}
.ex-steps button[aria-current="step"] .n{background:var(--plum-ink);color:var(--plum)}
.ex-note{margin:8px 0 0;font-size:.9rem;color:var(--warn)}
@media (max-width:760px){.try-btn{flex:1 1 100%;text-align:left}.ex-steps{flex-direction:column}.ex-steps button{width:100%}.ex-head #exLeave{margin-left:0}}
/* v0.9.3 · the Oomiva gift-card illustration fills its card like a photograph */
.prodimg .gc-art{display:block;width:100%;height:auto;aspect-ratio:4/3}
.pcard .prodimg .gc-art,.k-thumbs .gc-art,.bline .gc-art,.cc-item .gc-art{aspect-ratio:1/1}
.k-thumbs .gcard{border-radius:10px;overflow:hidden}
/* v0.9.3 · story cards: their own photo, or a branded illustration band */
.wp.words{overflow:hidden}
.wp .wp-media{display:block;margin:-1px -1px 0}
.wp .wp-media .ph{border-radius:0;aspect-ratio:16/9}
.wp .wp-art > svg{display:block;width:100%;height:auto;aspect-ratio:16/9}

/* release additions: the purchase form sits beside its live certificate preview */
.mf{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:start}.mf-prev{position:sticky;top:90px;margin:0}
.mf .total{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.chk{display:flex;gap:10px;align-items:flex-start;margin:14px 0;font-size:.95rem}.chk input{margin-top:4px;width:auto}
ol.how{max-width:60ch;padding-left:20px;line-height:1.6}ol.how li{margin:8px 0}
.reveal-card .words{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.3;white-space:pre-wrap}.rv-when{font-family:var(--serif);font-size:1.4rem;margin:6px 0 16px}
.doc{max-width:760px}.doc h2{margin-top:22px}
.hdr a.brand{text-decoration:none;color:inherit}footer a.fl{display:block;text-decoration:none}footer a.fl:hover{text-decoration:underline}a.btn{text-decoration:none;display:inline-flex;align-items:center}
.hdr .rel-nav{display:flex;gap:16px;align-items:center}.hdr .rel-nav a{color:inherit;text-decoration:none;font-weight:600}
@media (max-width:760px){.mf{grid-template-columns:1fr}.mf-prev{position:static;max-width:260px;margin:0 auto}}
