/* Hallmark · shape: Catalogue · genre: editorial · theme: brand · redesign: full
 * paper: supplied cream · accent: supplied burgundy · display: Pridi · body: IBM Plex Sans Thai · hero: Counter · nav: edge-aligned · footer: colophon · signature: one pendant selected by color
 * posture: Restrained · contrast: checked in browser · fold: checked in browser · v2.0.0 */
/* Hallmark · pre-emit critique: human product photography replaces fantasy staging; product controls carry the first screen. */
/* Hallmark · dropped three product cards and their data-product controls: user requested one image with color buttons. Reworded generic campaign headings using supplied product and project nouns. */
@import url('./tokens.css');
@import url('./base.css');
html{scroll-behavior:smooth}body{font-weight:400;line-height:1.75;font-synthesis:none}a{text-decoration:none}button{cursor:pointer}button,a,input,summary{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:var(--color-transparent)}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}button:active,.button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button[aria-busy=true]{cursor:progress}button:disabled:hover{background:var(--color-paper-2)}button{color:var(--color-ink)}h1,h2,h3{line-height:1.5;font-weight:400}h1{font-size:var(--text-display)}h2{font-size:var(--text-section)}h3{font-size:var(--text-title)}p{margin:0 0 var(--space-md)}img{object-fit:cover}fieldset{min-width:0}header,main,footer{max-width:var(--container);margin-inline:auto}header{min-height:88px;padding:var(--space-md) var(--gutter);display:flex;justify-content:space-between;align-items:center;gap:var(--gap-columns);border-bottom:1px solid var(--color-rule)}.brand{display:flex;gap:var(--space-sm);align-items:center;flex-shrink:0}.brandmark{font-size:2rem;color:var(--color-accent)}.brand>span:last-child{font-family:var(--font-display);font-size:1.65rem;line-height:1.25}.brand small{font-family:var(--font-body);display:block;font-size:var(--text-xs);margin-top:var(--space-2xs);color:var(--color-muted)}nav{display:flex;gap:var(--space-lg);font-size:var(--text-sm)}nav a{white-space:nowrap;padding-block:var(--space-xs)}nav a:hover{color:var(--color-accent);text-decoration:underline}#menu{display:none}.skip{position:absolute;top:calc(-1 * var(--space-3xl));left:var(--space-md);padding:var(--space-xs) var(--space-md);background:var(--color-ink);color:var(--color-paper);z-index:var(--z-toast)}.skip:focus-visible{top:var(--space-md)}
.hero{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-columns);padding:var(--space-xl) var(--gutter) var(--space-2xl);align-items:center}.shop-photo{margin:0;min-width:0}.shop-photo>img{height:560px;width:100%;background:var(--color-paper-2);object-fit:contain}.shop-photo>p{font-size:var(--text-xs);color:var(--color-muted);margin:var(--space-xs) 0 0}.shop-copy{min-width:0}.shop-copy h1{margin-bottom:var(--space-md)}.shop-intro{color:var(--color-ink-2);max-width:36ch;font-size:var(--text-md)}.shop-price{margin:var(--space-lg) 0}.shop-price strong{font-size:2rem;font-weight:500;font-variant-numeric:tabular-nums;line-height:1.4}.shop-price strong span{font-variant-numeric:tabular-nums;font-size:var(--text-sm);font-weight:400}.shop-price p{font-variant-numeric:tabular-nums;font-size:var(--text-sm);margin:var(--space-2xs) 0 0;color:var(--color-muted)}.shop-colors{border:0;padding:0;margin:0 0 var(--space-lg)}.shop-colors legend{font-size:var(--text-sm);padding:0;margin-bottom:var(--space-xs)}.shop-colors legend span{margin-left:var(--space-xs);color:var(--color-muted)}.swatches{display:flex;gap:var(--space-xs);flex-wrap:wrap}.swatches button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);background:var(--color-paper);border:1px solid var(--color-muted);border-radius:var(--radius-input);min-height:44px;padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);white-space:nowrap}.swatches button:hover{background:var(--color-paper-2)}.swatches button.active{border-color:var(--color-accent);outline:1px solid var(--color-accent);color:var(--color-accent);font-weight:500}.color-dot{height:12px;width:12px;border-radius:50%;border:1px solid var(--color-muted)}.color-gold{background:var(--color-gold)}.color-silver{background:var(--color-silver)}.color-rose{background:var(--color-rose)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:var(--space-sm) var(--space-lg);border:1px solid var(--color-accent);border-radius:var(--radius-input);font-weight:500;font-size:var(--text-md);white-space:nowrap;line-height:1.5}.primary{background:var(--color-accent);color:var(--color-accent-ink)}.primary:hover{background:var(--color-hover);border-color:var(--color-hover)}.shop-copy>.button{width:100%}.shop-note{font-size:var(--text-xs);color:var(--color-muted);margin:var(--space-sm) 0}.text-link,.hero-story-link{display:inline-block;background:none;border:0;border-bottom:1px solid var(--color-muted);padding:var(--space-xs) 0;font-size:var(--text-sm);font-weight:400;text-align:left;color:var(--color-ink)}.text-link:hover{color:var(--color-accent);border-color:var(--color-accent)}.specs{margin-top:var(--space-lg);border-top:1px solid var(--color-rule);padding-top:var(--space-md);font-size:var(--text-sm)}summary{cursor:pointer}.specs summary{font-size:var(--text-sm)}.specs dl{margin:var(--space-md) 0}.specs dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-md);border-bottom:1px solid var(--color-rule);padding:var(--space-xs) 0}.specs dd{margin:0}.specs>p{color:var(--color-muted)}
.section{padding:var(--space-3xl) var(--gutter)}.meaning{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--gap-columns);border-top:3px solid var(--color-ink);border-bottom:1px solid var(--color-rule);margin-inline:var(--gutter);padding-inline:0}.meaning blockquote{font-family:var(--font-display);font-size:clamp(1.5rem,2.6vw,2.5rem);line-height:1.6;margin:0 0 var(--space-lg);color:var(--color-ink)}.meaning-copy p{max-width:55ch;color:var(--color-ink-2)}.meaning-copy>p:last-child{margin-bottom:0}.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--gap-columns);align-items:center}.story-pics{position:relative;padding-right:var(--space-2xl);padding-bottom:var(--space-xl)}.journey{height:480px;width:100%;object-position:50% 40%}.small-pic{position:absolute;bottom:0;right:0;width:45%;margin:0;border:var(--space-xs) solid var(--color-paper)}.small-pic img{height:220px;width:100%}.small-pic figcaption{font-size:var(--text-xs);color:var(--color-muted);background:var(--color-paper);padding-top:var(--space-xs)}.story-copy h2{margin-bottom:var(--space-lg)}.story-copy p{color:var(--color-ink-2)}.gold-line{display:none}.visits{background:var(--color-paper-2);padding-top:var(--space-2xl);padding-bottom:var(--space-xxl)}.visits-heading{max-width:800px;margin-bottom:var(--space-xl)}.visits-heading h2{margin-bottom:var(--space-md)}.visits-heading>p{max-width:65ch;color:var(--color-ink-2)}.visit-chapter{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-columns);align-items:center}.visit-chapter+.visit-chapter{margin-top:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid var(--color-rule)}.visit-main button,.visit-thumbs button{padding:0;border:0;display:block;background:none;width:100%}.visit-main button>img{width:100%;max-height:420px;object-fit:contain;object-position:center}.visit-main button>span{display:none}.photo-caption{font-size:var(--text-xs);color:var(--color-muted);margin:var(--space-xs) 0 0}.visit-copy h3{margin-bottom:var(--space-md)}.visit-copy p{color:var(--color-ink-2)}.visit-thumbs{display:flex;gap:var(--space-md);margin-top:var(--space-lg)}.visit-thumbs>button{width:112px}.visit-thumbs img{height:120px;width:100%;object-position:center 30%}.visits>.text-link{margin-top:var(--space-xl)}.stupa{padding:var(--space-3xl) var(--gutter)}.stupa-top{padding:0;display:flex;justify-content:space-between;gap:var(--gap-columns);align-items:end;margin-bottom:var(--space-xl)}.stupa-top p{max-width:45ch;color:var(--color-ink-2);margin:0}.stupa-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg)}.gallery-item{border:0;padding:0;background:none;text-align:left;color:var(--color-ink)}.gallery-item img{height:330px;width:100%}.gallery-item>span{font-size:var(--text-sm);display:block;margin-top:var(--space-sm)}.gallery-item:hover>span{text-decoration:underline}.stupa-note{display:flex;justify-content:space-between;gap:var(--space-md);font-size:var(--text-xs);color:var(--color-muted);padding-top:var(--space-lg)}.stupa-note a{border-bottom:1px solid var(--color-muted);white-space:nowrap}.faq{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:0 var(--gap-columns);border-top:1px solid var(--color-rule);padding-top:var(--space-2xl);padding-bottom:var(--space-2xl)}.faq h2{grid-column:1;grid-row:1/8}.faq details{grid-column:2;border-bottom:1px solid var(--color-rule);padding:var(--space-md) 0}.faq summary{font-size:var(--text-md);padding-right:var(--space-md)}.faq details p{font-size:var(--text-md);color:var(--color-ink-2);margin:var(--space-md) 0 0}.faq a{color:var(--color-accent);text-decoration:underline}.participate{padding:var(--space-2xl) var(--gutter);background:var(--color-paper-2);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-lg) var(--gap-columns);align-items:start}.participate h2{grid-column:1;grid-row:1}.participate>p{grid-column:1;grid-row:2;color:var(--color-ink-2)}.contact-grid{grid-column:2;grid-row:1/4}.contact-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);padding:var(--space-md) 0;border-bottom:1px solid var(--color-rule);gap:var(--space-xs) var(--space-md);align-items:center}.contact-card:first-child{padding-top:0}.contact-card small{font-size:var(--text-sm)}.contact-card strong{font-size:var(--text-md);font-weight:500}.contact-card>span{grid-column:2;font-size:var(--text-sm);text-decoration:underline;color:var(--color-accent)}.contact-card.primary{background:none;color:var(--color-ink)}.contact-card:hover{color:var(--color-accent)}.participate>#interest{grid-column:1;grid-row:3;width:max-content}.notice{grid-column:1/-1;font-size:var(--text-xs);color:var(--color-muted)}footer{padding:var(--space-xl) var(--gutter) var(--space-2xl);display:flex;justify-content:space-between;gap:var(--gap-columns);align-items:center}.footer-contacts{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--text-sm)}footer>a:last-child{font-size:var(--text-sm)}footer a:hover{text-decoration:underline}
/* Existing reservation wiring retains a single scroll surface and clear contact action. */
dialog{background:var(--color-paper);color:var(--color-ink);border:0;padding:var(--space-xl);max-height:90dvh;width:min(940px,94%);overflow:auto}dialog::backdrop{background:var(--color-overlay)}.close{position:sticky;top:0;float:right;margin:calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg)) 0;background:var(--color-paper);border:0;border-radius:50%;font-size:1.75rem;width:44px;height:44px;z-index:var(--z-raised);line-height:1}.modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap-columns);align-items:start}.modal-figure{margin:0}.modal-figure>img{height:400px;width:100%;object-fit:contain}.modal-figure figcaption{font-variant-numeric:tabular-nums;font-size:var(--text-xs);color:var(--color-muted);margin-top:var(--space-sm)}.modal-content h2{font-size:var(--text-title);margin-bottom:var(--space-md)}.modal-price{font-size:2rem;font-weight:500;margin:0;font-variant-numeric:tabular-nums}.modal-price span{font-variant-numeric:tabular-nums;font-size:var(--text-sm);font-weight:400}.modal-edition{font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-lg)}#selected-color{font-size:var(--text-sm);margin:var(--space-xs) 0 var(--space-lg)}label[for=qty]{display:block;font-size:var(--text-sm)}#qty{min-height:48px;width:112px;border:1px solid var(--color-muted);padding:var(--space-xs) var(--space-sm);background:var(--color-paper);border-radius:var(--radius-input);margin:var(--space-xs) 0 var(--space-md);font-size:var(--text-md);color:var(--color-ink)}.modal-note{font-size:var(--text-sm);color:var(--color-muted)}.chat-options{display:flex;gap:var(--space-md);flex-wrap:wrap;font-size:var(--text-sm);align-items:center}.chat-options>a,.chat-options>button{font-size:inherit;background:none;border:0;border-bottom:1px solid var(--color-muted);padding:var(--space-xs) 0;color:var(--color-ink);white-space:nowrap}.save-options{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--color-rule);font-size:var(--text-sm)}.save-options .text-link{display:block}.save-options small{font-size:var(--text-xs);display:block;color:var(--color-muted)}#save-status,#contact-status{font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--color-success);min-height:1lh;margin-top:var(--space-xs)}.modal-action{position:sticky;bottom:calc(-1 * var(--space-xl));display:flex;justify-content:space-between;gap:var(--space-md);align-items:center;background:var(--color-paper);border-top:1px solid var(--color-rule);margin:var(--space-lg) calc(-1 * var(--space-xl)) calc(-1 * var(--space-xl));padding:var(--space-md) var(--space-xl);z-index:var(--z-raised)}.modal-action small{display:block;font-size:var(--text-xs);color:var(--color-muted)}#interest-total{font-size:var(--text-lg);font-weight:500;font-variant-numeric:tabular-nums;margin:0}.modal-action .button{font-size:var(--text-sm)}#lightbox{width:max-content;max-width:95%;text-align:center}#lightbox>img{max-height:76dvh;max-width:85dvw;width:auto;object-fit:contain}#lightbox>p{font-size:var(--text-sm);margin:var(--space-md) 0 0;max-width:65ch}.mobile-buybar{display:none}body:has(dialog[open]){overflow-y:hidden}
@media(max-width:1000px){:root{--gutter:24px;--gap-columns:24px}.hero{gap:var(--gap-columns)}.shop-photo>img{height:500px}nav{gap:var(--space-md);font-size:var(--text-xs)}.brand>span:last-child{font-size:1.4rem}.brand small{font-size:var(--text-xs)}.story,.meaning,.faq{gap:var(--gap-columns)}.participate{gap:var(--space-lg) var(--space-xl)}}
@media(max-width:760px){header{min-height:72px;padding-block:var(--space-sm);gap:var(--space-md);position:relative}.brandmark{font-size:1.75rem}.brand>span:last-child{font-size:1.4rem}.brand small{font-size:.6875rem}#menu{display:block;background:none;border:1px solid var(--color-rule);padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm);min-height:44px;white-space:nowrap}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--color-paper);z-index:var(--z-dropdown);padding:var(--space-lg) var(--gutter);border-bottom:1px solid var(--color-rule);font-size:var(--text-md)}nav.open{display:flex;flex-direction:column;gap:var(--space-sm)}body{padding-bottom:var(--space-xxl)}.hero{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);padding:var(--space-lg) var(--gutter) var(--space-xl)}.shop-copy{display:contents}.shop-copy h1{order:0;font-size:1.875rem;line-height:1.45;margin:0}.shop-photo{order:1}.shop-photo>img{height:250px;object-fit:contain}.shop-photo>p{font-size:var(--text-xs);margin-top:var(--space-2xs)}.shop-intro{order:2;max-width:none;margin:0}.shop-price{order:3;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin:0}.shop-price strong{font-size:1.75rem;white-space:nowrap}.shop-price strong span{font-variant-numeric:tabular-nums;font-size:var(--text-xs)}.shop-price p{font-variant-numeric:tabular-nums;font-size:var(--text-xs);max-width:none;margin:0;text-align:right}.shop-colors{order:4;margin:0}.shop-copy>.button{order:5}.shop-note{order:6;margin:0}.shop-copy>.text-link{order:7;width:max-content;padding-top:0}.specs{order:8;margin-top:0}.swatches{gap:var(--space-xs)}.swatches button{font-size:var(--text-sm);padding:var(--space-xs) var(--space-sm)}.section{padding:var(--space-2xl) var(--gutter)}.meaning{margin-inline:var(--gutter);padding-inline:0;grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.meaning h2 br{display:none}.meaning blockquote{font-size:1.6rem;margin-bottom:var(--space-md)}h2{font-size:1.875rem}.story{grid-template-columns:minmax(0,1fr);gap:var(--gap-columns)}.story-pics{padding-right:var(--space-xl);padding-bottom:var(--space-lg)}.journey{height:360px}.small-pic img{height:160px}.story-copy h2 br{display:none}.visits-heading{margin-bottom:var(--space-lg)}.visits-heading h2{font-size:1.7rem}.visit-chapter{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.visit-main button>img{max-height:360px}.visit-thumbs>button{width:96px}.visit-thumbs img{height:100px}.visit-chapter+.visit-chapter{margin-top:var(--space-xl);padding-top:var(--space-xl)}.visit-copy h3{font-size:1.5rem}.stupa{padding:var(--space-2xl) var(--gutter)}.stupa-top{display:block;margin-bottom:var(--space-lg)}.stupa-top h2{margin-bottom:var(--space-md)}.stupa-gallery{grid-template-columns:minmax(0,1fr);gap:var(--gap-columns)}.gallery-item img{height:330px;object-fit:contain;background:var(--color-paper-2)}.stupa-note{display:block}.stupa-note a{display:block;width:max-content;margin-top:var(--space-sm)}.faq{grid-template-columns:minmax(0,1fr);gap:0}.faq h2{grid-column:1;grid-row:auto;margin-bottom:var(--space-lg)}.faq details{grid-column:1}.participate{grid-template-columns:minmax(0,1fr);padding:var(--space-xl) var(--gutter);gap:var(--space-lg)}.participate h2,.participate>p,.contact-grid,.participate>#interest,.notice{grid-column:1;grid-row:auto}.participate h2{font-size:1.875rem}.contact-card{grid-template-columns:minmax(0,1fr) minmax(0,2fr);font-size:var(--text-sm);gap:var(--space-xs)}.contact-card strong{font-size:var(--text-sm)}.contact-card small{font-size:var(--text-xs)}footer{display:block;padding:var(--space-xl) var(--gutter)}.footer-contacts{margin:var(--space-lg) 0;gap:var(--space-sm)}.mobile-buybar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--color-paper);color:var(--color-ink);border-top:1px solid var(--color-rule);padding:var(--space-sm) var(--gutter) max(var(--space-sm),env(safe-area-inset-bottom));align-items:center;justify-content:space-between;gap:var(--space-md);z-index:var(--z-sticky)}.mobile-buybar strong{display:block;font-size:var(--text-md);font-weight:500;font-variant-numeric:tabular-nums}.mobile-buybar small{font-size:var(--text-xs);color:var(--color-muted)}.mobile-buybar .button{font-size:var(--text-sm);padding-inline:var(--space-md);min-height:44px}body:has(dialog[open]) .mobile-buybar{display:none}#product-dialog{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:100dvh;padding:0;margin:0}#product-dialog .close{top:var(--space-xs);margin:var(--space-xs) var(--space-xs) calc(-1 * var(--space-xl)) 0}.modal-grid{display:block;padding:var(--space-lg) var(--gutter) 0}.modal-figure>img{height:220px}.modal-figure figcaption{font-variant-numeric:tabular-nums;font-size:var(--text-xs)}.modal-content{padding-top:var(--space-lg)}.modal-content h2{font-size:1.5rem}.modal-content .modal-note{font-size:var(--text-sm)}.modal-action{bottom:0;margin:var(--space-lg) 0 0;padding:var(--space-sm) var(--gutter) max(var(--space-sm),env(safe-area-inset-bottom))}.modal-action small{font-size:.6875rem}.modal-action .button{font-size:var(--text-sm);padding-inline:var(--space-sm)}#lightbox{padding:var(--space-lg)}#lightbox>img{max-width:80dvw}#lightbox>p{font-size:var(--text-xs)}}
@media(max-width:360px){:root{--gutter:16px}.brand>span:last-child{font-size:1.25rem}.brand small{font-size:.625rem}.shop-copy h1{font-size:1.7rem}.shop-photo>img{height:210px}.swatches button{padding-inline:var(--space-xs);font-size:.8125rem}.color-dot{width:10px;height:10px}.shop-price strong{font-size:1.6rem}.shop-price p{font-variant-numeric:tabular-nums;font-size:.75rem}.contact-card{grid-template-columns:minmax(0,1fr)}.contact-card>span{grid-column:1}.modal-action{gap:var(--space-xs)}.modal-action .button{font-size:.8125rem}.mobile-buybar .button{font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}


.product-dimensions{font-size:var(--text-sm);color:var(--color-ink);margin:var(--space-sm) 0;font-variant-numeric:tabular-nums}.product-dimensions span{color:var(--color-muted)}
@media(max-width:760px){.shop-copy>.product-dimensions{order:6;margin:0}.shop-note{order:7}.shop-copy>.text-link{order:8}.specs{order:9}}
