
:root{--paper:#f8f6ef;--ink:#22372e;--muted:#5e6c62;--line:#d8dfd3;--green:#315a46;--gold:#b59a70}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 Arial,sans-serif}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b3742f;outline-offset:4px}.notice{background:#254535;color:#fff;text-align:center;padding:9px 16px;font-size:12px;letter-spacing:.03em}.wrap{max-width:1240px;margin:auto;padding:0 6%}header{display:flex;align-items:center;justify-content:space-between;padding:25px 0;border-bottom:1px solid var(--line);gap:20px}.brand{text-decoration:none;font-size:17px;letter-spacing:.12em;font-weight:700}.brand small{display:block;font-weight:400;font-size:9px;letter-spacing:.42em;color:var(--muted)}nav{display:flex;gap:26px;align-items:center;font-size:13px}nav a{text-decoration:none}.pill{border:1px solid var(--line);padding:9px 18px;border-radius:30px;background:transparent;color:var(--ink)}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8%;padding:66px 0 76px}.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--green);font-weight:700}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.1}h1{font-size:clamp(40px,5.5vw,70px);margin:18px 0 24px;letter-spacing:-.04em}h1 em{color:var(--green);font-weight:400}h2{font-size:38px;margin:10px 0 16px}h3{font-size:24px;margin:0}.sub{color:var(--muted);max-width:380px}.primary{display:inline-block;padding:13px 23px;background:var(--green);color:#fff;border:0;text-decoration:none;font-size:13px}.hero .primary{margin-top:15px}.footnote{font-size:12px;color:var(--muted)}.room{min-height:390px;background:#ddd8cc;position:relative;display:flex;align-items:center;justify-content:center;border-radius:2px;overflow:hidden;background-image:linear-gradient(100deg,transparent 30%,#ffffff40 32%,transparent 65%)}.room:after{content:'';position:absolute;bottom:0;left:0;right:0;height:35px;background:#b8b3a6}.frame{width:58%;height:285px;border:10px solid #342e27;background:#ece9df;padding:17px;box-shadow:14px 17px 24px #34342530;position:relative;transform:rotate(-2deg)}.art{height:100%;width:100%;display:block;object-fit:contain;background:#f5f1e6}.frame .art{background:#000}.art-placeholder{display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;background:#18242b;position:relative;overflow:hidden;color:#fff}.moon{width:100px;height:100px;background:radial-gradient(circle at 33% 28%,#bfc0b0 6%,transparent 7%),radial-gradient(circle at 67% 57%,#a2a698 13%,transparent 14%),radial-gradient(circle at 38% 65%,#969b90 11%,transparent 12%),radial-gradient(circle at 32% 30%,#eee8d6,#a6aa9d 75%,#3e4848);border-radius:50%;box-shadow:0 0 35px #e8ecd512}.caption{position:absolute;bottom:51px;right:15px;font-size:10px;color:#606256}.strip{display:flex;justify-content:space-between;gap:18px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;font-size:12px;color:var(--muted)}.strip span:before{display:none}.section{padding:68px 0}.sectionhead{display:flex;justify-content:space-between;align-items:end;gap:20px}.sectionhead p{max-width:360px;font-size:13px;color:var(--muted)}.filters{display:flex;gap:8px;margin:25px 0}.filter{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:22px;padding:7px 18px;font-size:12px}.filter.active{background:var(--ink);color:#fff;border-color:var(--ink)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.product-image{aspect-ratio:4/5;background:#dedbd2;padding:25px;display:flex;align-items:center;justify-content:center;position:relative}.product-image .art-placeholder,.product-image .art{height:90%;width:88%;border:12px solid #f5f1e6;box-shadow:5px 8px 16px #32362a20}.tag{position:absolute;left:10px;bottom:10px;font-size:9px;background:#f4f1ebed;padding:3px 8px;color:#4b514b}.scene-city{background:linear-gradient(#536c70,#b6b8aa)}.scene-city:before{content:'';width:42%;height:67%;position:absolute;bottom:0;background:repeating-linear-gradient(0deg,transparent 0 8px,#ffffff20 8px 10px),repeating-linear-gradient(90deg,#303f42 0 14px,#899791 14px 17px);transform:skewY(-9deg)}.scene-city:after{content:'';width:28%;height:45%;background:#4a5753;position:absolute;bottom:0;right:0}.scene-wild{background:radial-gradient(ellipse at 60% 35%,#a4aa6a,#475e47 60%,#273f32);}.scene-wild:before{display:none}.pmeta{display:flex;align-items:start;justify-content:space-between;margin:17px 0 5px;gap:5px}.pmeta h3{font-size:22px}.category{font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.price{font-size:13px;white-space:nowrap;padding-top:4px}.view{margin-top:13px;width:100%;border:1px solid #949c8d;padding:11px;background:transparent;font-size:12px;color:var(--ink)}.view:hover{background:#e5e8df}.how{background:#e8eee3;padding:60px 6%;margin:0 -6%;}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:30px}.steps .number{font:italic 24px Georgia;color:var(--green)}.steps h3{font-size:22px;margin:10px 0}.steps p{color:var(--muted);font-size:13px;max-width:290px}.about{display:grid;grid-template-columns:1fr 1fr;gap:50px;padding:70px 0}.about p{color:var(--muted);font-size:14px}details{padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}summary{cursor:pointer;font-weight:600}details p{max-width:700px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:25px 0 40px;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:11px}dialog{border:0;background:var(--paper);color:var(--ink);padding:30px;width:min(600px,calc(100% - 30px));max-height:90dvh;box-shadow:0 15px 100px #0004}dialog::backdrop{background:#18231dcc}.dialogtop{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px;gap:20px}.close{background:transparent;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;font-size:20px}.field{margin:20px 0}.field label{display:block;font-size:12px;margin-bottom:6px}select{width:100%;padding:11px;background:white;border:1px solid var(--line)}.dialogart{height:240px;padding:20px;background:#dedbd2}.dialogart .art-placeholder,.dialogart .art{height:100%;width:100%}.summaryline{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:15px 0}.cartitem{padding:16px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;align-items:start;font-size:13px}.textbutton{background:none;border:0;padding:0;color:var(--green);text-decoration:underline;font-size:12px}.disabled{display:block;width:100%;padding:13px;border:0;background:#dce4d5;color:#586454;cursor:not-allowed}.setup{background:#e8eee3;padding:16px;font-size:12px;margin-top:20px}.upload{font-size:11px;margin:10px 0;color:var(--muted)}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:10px 20px;background:var(--ink);color:white;z-index:5;font-size:13px;border-radius:30px;display:none}.full{width:100%} .status{font-size:12px;color:var(--muted)}
@media(max-width:760px){.wrap{padding:0 6%}nav{gap:12px}nav a{display:none}.hero{grid-template-columns:1fr;padding:38px 0;gap:30px}.room{min-height:310px}.frame{height:250px;width:54%}.hero .sub{max-width:100%}.strip{flex-wrap:wrap;gap:12px}.strip span{flex-basis:44%}.section{padding:40px 0}.sectionhead{display:block}.grid{grid-template-columns:1fr;gap:30px}.product-image{aspect-ratio:5/4}.product-image .art-placeholder,.product-image .art{width:66%}.steps{grid-template-columns:1fr;gap:16px}.how{padding-top:35px;padding-bottom:35px}.about{grid-template-columns:1fr;gap:20px;padding:45px 0}h2{font-size:32px}.filters{flex-wrap:wrap}footer{flex-direction:column}.caption{font-size:9px}dialog{padding:23px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Physical frame presentation: wood edge, inner bevel, paper mount and cast shadow. */
.frame,.photo-frame{position:relative;border:0;padding:11px;background-color:#61472f;background-image:repeating-linear-gradient(94deg,#ffffff08 0 1px,#00000010 1px 3px,transparent 3px 7px),linear-gradient(135deg,#947653 0%,#5c412b 26%,#7b5b3d 49%,#432d1e 75%,#775536 100%);box-shadow:inset 1px 1px 1px #dec6a08a,inset -1px -1px 2px #21140ec9,2px 4px 3px #20170d30,10px 17px 21px #30241630,19px 27px 38px #3024161c;}
.frame:before,.photo-frame:before{content:'';position:absolute;inset:3px;border:1px solid #bca07755;pointer-events:none;box-shadow:inset 1px 1px #2e201962;}
.print-mount{position:relative;padding:20px;background:#f3eddf;background-image:repeating-linear-gradient(6deg,#ffffff09 0 1px,transparent 1px 3px);box-shadow:0 0 0 1px #281b11,0 0 0 3px #a38b6330,inset 1px 2px 3px #624c3740;}
.print-mount:after{content:'';position:absolute;inset:20px;pointer-events:none;box-shadow:inset 1px 2px 3px #241e1966,0 0 0 1px #cfc6b7;}
.frame{width:62%;height:auto;transform:rotate(-2deg);}.frame .print-mount{padding:22px}.frame .print-mount:after{inset:22px}.frame .art{width:100%;height:auto;border:0;box-shadow:none;display:block;background:#000;}
.product-image{background-color:#ddd9ce;background-image:linear-gradient(110deg,#ffffff25,transparent 55%,#c4beb133);padding:28px 22px 38px;}
.photo-frame{width:95%;transform:rotate(-1deg)}.photo-frame.portrait{width:72%}.product-image .photo-frame .art{width:100%;height:auto;max-height:265px;border:0;box-shadow:none;display:block;object-fit:contain;background:#f3eddf;}.product-image .print-mount{padding:16px}.product-image .print-mount:after{inset:16px}.product-image .tag{font-size:9px;bottom:8px;background:transparent;color:#60584c;}
.dialogart{height:290px}.dialogart .art{object-fit:contain;background:transparent;}
@media(max-width:760px){.frame{width:53%}.product-image{aspect-ratio:5/4}.photo-frame{width:85%}.photo-frame.portrait{width:48%}.product-image .photo-frame .art{max-height:230px}.print-mount{padding:15px}.frame .print-mount{padding:18px}.frame .print-mount:after{inset:18px}}

.request-section{display:grid;grid-template-columns:1fr 1fr;gap:65px;border-top:1px solid var(--line);padding:62px 0 70px;scroll-margin-top:25px}.request-section h2{max-width:340px}.request-intro .sub{font-size:14px}.request-note{border-left:2px solid #85977d;padding:0 0 0 18px;margin-top:30px;max-width:350px;font-size:13px}.request-note p{color:var(--muted);margin:8px 0}.request-panel{padding:27px;background:#e8eee3;border:1px solid #d4d9cb}.request-panel .field:first-child{margin-top:0}.request-panel input,.request-panel textarea{width:100%;padding:11px;background:#fff;border:1px solid #bdc7b7;color:var(--ink);border-radius:0;font:inherit;font-size:14px}.request-panel input:focus-visible,.request-panel textarea:focus-visible{outline:3px solid #b3742f;outline-offset:2px}.request-panel textarea{resize:vertical}.request-panel .footnote{margin:7px 0 0}.optional{color:var(--muted);font-weight:400}.request-result{border-top:1px solid #bec8b6;margin-top:22px;padding-top:18px;font-size:12px}.request-result p{overflow-wrap:anywhere}.request-result label{display:block;margin:12px 0 5px}.request-result .textbutton{margin-top:10px}.request-result textarea{font-size:12px}.request-result .status{margin-bottom:0}@media(max-width:1000px){nav{gap:15px;font-size:12px}}@media(max-width:760px){.request-section{grid-template-columns:1fr;gap:25px;padding:38px 0 45px}.request-panel{padding:20px}}

nav a.request-link,nav a.review-link{font-weight:700;color:var(--green);border-bottom:1px solid currentColor;padding:5px 0;text-underline-offset:4px;white-space:nowrap}
@media(max-width:760px){header{flex-wrap:wrap;gap:14px}nav{margin-left:auto}nav a.request-link,nav a.review-link{display:inline-block;font-size:12px}.pill{padding:8px 14px}}
@media(max-width:420px){header nav{width:100%;justify-content:space-between;margin-left:0}}

.local-request{border-left:2px solid var(--green);padding:0 0 0 15px;margin:22px 0}.local-confirm{display:flex;align-items:flex-start;gap:10px;font-size:12px;line-height:1.5}.request-panel .local-confirm input{width:17px;height:17px;flex:0 0 17px;margin:2px 0 0;padding:0;accent-color:var(--green)}

.art.black-and-white{filter:grayscale(1)}

.art.colour-preview{filter:var(--photo-colour,none)}
.art.black-and-white{filter:grayscale(1)}
.primary:hover{background:#244735}.primary:active{background:#1e3c2c}.primary{box-shadow:0 2px 3px #1e372c12}.pill:hover{background:#e8eee3;border-color:#8b9f87}.view{border-color:#9aa98d;color:var(--green)}.view:hover{background:#e8eee3;border-color:var(--green)}.filter:not(.active):hover{background:#e8eee3;border-color:#9eae92}.filter.active{background:var(--green);border-color:var(--green)}.price{font-weight:600;color:var(--green)}.request-panel{border-color:#d3deca}.sectionhead p{color:var(--muted)}.room{background-color:#ddd8cc}.print-mount{background-color:#f6f0e2}

.photo-preview{position:relative;width:100%;overflow:hidden}.protected-photo,.protected-photo img{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.protected-photo img{-webkit-user-drag:none}.photo-watermark{position:absolute;inset:0;z-index:1;display:grid;grid-template-rows:repeat(3,1fr);align-items:center;justify-items:center;overflow:hidden;pointer-events:none}.photo-watermark span{font:700 clamp(9px,1.15vw,15px)/1.4 Arial,sans-serif;letter-spacing:.13em;white-space:nowrap;color:#fff;opacity:.38;text-shadow:0 1px 2px #000b,0 -1px 2px #0008;transform:rotate(-22deg)}.dialogart .photo-preview{height:100%;display:flex;align-items:center;justify-content:center}.dialogart .photo-watermark{inset:0}.dialogart .photo-watermark span{font-size:15px}@media(max-width:760px){.photo-watermark span{font-size:10px}.dialogart .photo-watermark span{font-size:13px}}

.watermark-notice{background:#e8eee3;border-left:2px solid var(--green);padding:12px 15px;font-size:12px;color:var(--muted);margin:18px 0}.watermark-notice strong{color:var(--green);margin-right:6px}

.club-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;background:#e8eee3;padding:32px;border:1px solid #ced9c7}.club-price{font-size:36px;color:var(--green)}.goal-track{height:18px;border-radius:20px;background:#d9dfd3;overflow:hidden;margin:18px 0 8px}.goal-fill{height:100%;width:0;background:var(--green);transition:width .6s ease}.goal-values{display:flex;justify-content:space-between;gap:15px}.goal-section{padding:38px 0 48px;border-top:1px solid var(--line)}.page-main{max-width:850px;margin:45px auto;padding:0 24px}.download-row{padding:24px 0;border-bottom:1px solid var(--line);display:flex;gap:24px;align-items:center}.download-row img{width:145px;max-height:160px;object-fit:contain}.download-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.download-actions button,.download-actions a{font-size:13px}.error-message{color:#924d28}.membership-terms{display:flex;gap:12px;margin:18px 0;font-size:13px;align-items:flex-start}.membership-terms input{flex:0 0 18px;margin-top:5px}.primary:disabled{background:#dce4d5;color:#586454;cursor:not-allowed}.page-status{padding:18px;background:#e8eee3}.link-row{display:flex;gap:15px;flex-wrap:wrap;margin-top:15px}a:focus-visible,button:focus-visible{outline:3px solid #b3742f;outline-offset:3px}.download-row .photo-preview{width:145px;flex-shrink:0}.download-row .photo-preview img{width:100%}@media(max-width:760px){.club-grid{grid-template-columns:1fr;padding:24px;gap:20px}.download-row{align-items:flex-start;gap:15px}.download-row .photo-preview{width:100px}.club-price{font-size:30px}}

.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:24px 0}.review-card{border:1px solid var(--line);padding:24px;background:#fffdf7}.review-card p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.review-card h3{font-size:16px;margin:14px 0 3px}.review-stars{color:#956424;letter-spacing:.16em;font-size:18px}.review-summary{font-size:15px;color:var(--green)}.review-form-section{margin:40px 0;padding:25px;background:#e8eee3;border:1px solid #ced9c7}.review-form-section fieldset{border:0;padding:0;margin:0}.review-form-section .rating-options{margin-top:18px;display:flex;gap:12px;flex-wrap:wrap}.rating-options legend{margin-bottom:12px}.rating-options label{padding:9px 12px;background:#fffdf7;border:1px solid #bdc7b7;cursor:pointer}.rating-options input{accent-color:var(--green)}.review-form-section input[type=text],.review-form-section textarea{width:100%;padding:11px;border:1px solid #bdc7b7;font:inherit;background:#fff}.review-form-section textarea{resize:vertical}.review-form-section fieldset:disabled{opacity:.6}.review-form-section #deleteReview{margin-top:18px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:900px){.review-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.review-grid{grid-template-columns:1fr}.review-form-section{padding:20px}.rating-options label{padding:7px 10px}}
.review-grid>.sub{grid-column:1/-1;max-width:100%}

#reviews{scroll-margin-top:24px}header nav{flex-wrap:wrap}@media(max-width:760px){header nav{gap:10px 12px}}

/* One warm, custom control style across the shop, requests and reviews. */
:root{--control-paper:#fffdf8;--control-border:#9cac96;--control-focus:#b3742f}
input,select,textarea{font:inherit;color:var(--ink)}
:is(.request-panel,.review-form-section,dialog) :is(input:not([type=checkbox]):not([type=radio]),select,textarea){
 width:100%;min-height:46px;border:1px solid var(--control-border);border-radius:8px;
 background-color:var(--control-paper);padding:11px 14px;box-shadow:inset 0 1px 2px #22372e05;
 font-size:16px;line-height:1.45;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease;
}
input::placeholder,textarea::placeholder{color:#737e71;opacity:1}
:is(.request-panel,.review-form-section,dialog) :is(input,select,textarea):hover:not(:disabled){border-color:var(--green)}
:is(input,select,textarea):focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}
:is(.request-panel,.review-form-section,dialog) :is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus{
 border-color:var(--green);box-shadow:0 0 0 3px #315a4615;background-color:#fffefb;
}
textarea{resize:vertical}
textarea[readonly]{background-color:#f4f4eb}
select{appearance:none;-webkit-appearance:none;cursor:pointer;background-image:url('/assets/control-chevron.svg');background-repeat:no-repeat;background-position:right 14px center;background-size:20px}
:is(.request-panel,.review-form-section,dialog) select{padding-right:46px}
select option{color:var(--ink);background:var(--control-paper);padding:10px 14px}
select option:checked{color:var(--green);background:#e8eee3}
select option:disabled{color:var(--muted)}
input:is([type=checkbox],[type=radio]),.request-panel input:is([type=checkbox],[type=radio]){
 appearance:none;-webkit-appearance:none;display:inline-grid;place-content:center;
 flex:0 0 20px;width:20px;height:20px;min-height:20px;padding:0;margin:2px 0 0;
 border:1.5px solid #83947c;background:var(--control-paper);box-shadow:inset 0 1px 2px #22372e08;
 cursor:pointer;vertical-align:middle;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease;
}
input[type=checkbox]{border-radius:5px}
input[type=radio]{border-radius:50%}
input:is([type=checkbox],[type=radio])::before{content:'';display:block;transform:scale(0);transition:transform .16s ease}
input[type=checkbox]::before{width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) scale(0);margin-top:-2px}
input[type=radio]::before{width:8px;height:8px;border-radius:50%;background:#fff}
input:is([type=checkbox],[type=radio]):checked{background:var(--green);border-color:var(--green)}
input[type=checkbox]:checked::before{transform:rotate(-45deg) scale(1)}
input[type=radio]:checked::before{transform:scale(1)}
.rating-options label{display:flex;align-items:center;gap:8px;border-radius:8px;min-height:44px;transition:background-color .18s ease,border-color .18s ease}
.rating-options label:has(input:checked){border-color:var(--green);background:#dce8d6;color:var(--green)}
.rating-options label:has(input:focus-visible){outline:2px solid var(--control-focus);outline-offset:3px}
.rating-options input{margin:0}
input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}
input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:#a34f36}
.local-confirm,.membership-terms{cursor:pointer}
.field label{font-weight:600;color:var(--green)}
button,.primary,.pill{transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease}

/* Where supported, the native option picker also uses the site's palette. */
@supports (appearance:base-select){
 select,select::picker(select){appearance:base-select}
 select::picker-icon{display:none}
 select::picker(select){background:var(--control-paper);border:1px solid var(--control-border);border-radius:10px;box-shadow:0 8px 24px #22372e20;padding:6px;margin-block:6px}
 select option{border-radius:5px;min-height:40px}
 select option:hover,select option:focus{background:#e8eee3}
 select option::checkmark{color:var(--green)}
}

/* Quiet, once-per-element reveals and reversible disclosure transitions. */
.enter-view{animation:enter-view .55s cubic-bezier(.2,.7,.2,1) both}
@keyframes enter-view{from{opacity:.65;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
details summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:32px}
details summary::-webkit-details-marker{display:none}
details summary::after{content:'+';font-size:23px;line-height:1;font-weight:400;color:var(--green);flex-shrink:0;transition:transform .24s ease}
details summary[aria-expanded=true]::after,details[open] summary:not([aria-expanded])::after{transform:rotate(45deg)}
.disclosure-content{display:flow-root;min-height:0}
[hidden]{display:none!important}
dialog[open]{animation:dialog-arrive .2s ease-out}
dialog[open]::backdrop{animation:backdrop-arrive .2s ease-out}
@keyframes dialog-arrive{from{opacity:.6;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .enter-view,dialog[open],dialog[open]::backdrop{animation:none}
 .goal-fill,button,.primary,.pill,input,select,textarea,input::before,.rating-options label,details summary::after{transition:none!important}
}
@media(forced-colors:active){input:is([type=checkbox],[type=radio]){appearance:auto}input:is([type=checkbox],[type=radio])::before{display:none}select{appearance:auto;background-image:none}}

/* Support controls match the shop’s custom input style. */
.goal-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin:22px 0}
.goal-actions p{margin:0}
.donate-nav{border-color:var(--green);color:var(--green)}
.donation-options{padding:0;border:0;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:22px 0}
.donation-options legend{font-size:13px;font-weight:600;color:var(--green);margin-bottom:12px}
.donation-options label{display:flex;gap:8px;align-items:center;justify-content:center;min-height:48px;padding:10px;border:1px solid var(--control-border);border-radius:8px;cursor:pointer;background:var(--control-paper);font-size:14px;transition:background-color .18s,border-color .18s}
.donation-options label:has(input:checked){background:#dce8d6;border-color:var(--green);color:var(--green)}
.donation-options label:has(input:focus-visible){outline:2px solid var(--control-focus);outline-offset:3px}
.donation-options input{margin:0}
#donationCheckout{margin-top:20px}
@media(max-width:420px){.donation-options{grid-template-columns:repeat(2,1fr)}header nav{justify-content:flex-start}header nav #cartOpen{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.donation-options label{transition:none}}

/* Fully custom dropdowns; native selects retain form values and required checks. */
.custom-select{position:relative;width:100%}
.custom-select>select{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;overflow:hidden;clip-path:inset(50%);opacity:0;pointer-events:none}
.select-trigger{width:100%;min-height:46px;text-align:left;border:1px solid var(--control-border);border-radius:8px;background:var(--control-paper) url('/assets/control-chevron.svg') right 14px center/20px no-repeat;color:var(--ink);padding:11px 46px 11px 14px;font:inherit;font-size:16px;line-height:1.45;box-shadow:inset 0 1px 2px #22372e05}
.select-trigger:hover:not(:disabled),.select-trigger[aria-expanded=true]{border-color:var(--green)}
.select-trigger[aria-expanded=true]{box-shadow:0 0 0 3px #315a4615;background-color:#fffefb}
.select-trigger:focus-visible{outline:2px solid var(--control-focus);outline-offset:3px}
.select-trigger.is-placeholder{color:#737e71}
.select-trigger:disabled{opacity:.55;cursor:not-allowed}
.select-trigger[aria-invalid=true]{border-color:#a34f36}
.select-menu{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;max-height:240px;overflow-y:auto;overscroll-behavior:contain;padding:6px;background:var(--control-paper);border:1px solid var(--control-border);border-radius:10px;box-shadow:0 12px 28px #22372e25}
.select-option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 12px;border-radius:6px;cursor:pointer;font-size:15px;line-height:1.45}
.select-option.is-active{background:#e8eee3;color:var(--green)}
.select-option.is-selected{font-weight:600;color:var(--green)}
.select-option[aria-disabled=true]{color:var(--muted);opacity:.65;cursor:default}
.control-error{font-size:12px;color:#924d28;margin:7px 0 0}
@media(forced-colors:active){.select-trigger{border-color:ButtonText;background-image:none}.select-option.is-active{outline:1px solid Highlight}.select-menu{border-color:ButtonText}}

.close{width:auto;min-width:58px;border-radius:6px;padding:8px 12px;font-size:13px}
/* Centre the lunar disc and enlarge only the framed moon preview. */
.hero .frame .photo-preview{aspect-ratio:603/703;background:#000}
.hero .frame .photo-preview .art{position:absolute;left:50%;top:50%;width:125%;max-width:none;height:auto;transform:translate(-48.922%, -42.852%)}

/* Match the gallery and detail moon crops to the framed hero preview. */
.photo-preview.moon-preview{aspect-ratio:603/703;background:#000}
.photo-preview.moon-preview .art{position:absolute;left:50%;top:50%;width:125%;max-width:none;max-height:none;height:auto;border:0;box-shadow:none;background:#000;transform:translate(-48.922%, -42.852%)}
.dialogart .photo-preview.moon-preview{width:auto;max-width:100%;height:100%;margin-inline:auto;display:block}
