:root{--bg-canvas:#fbf1f0;--bg-surface:#fffaf8;--bg-surface-hover:#fff3ef;--text-primary:#1c1917;--text-muted:#57504d;--accent-primary:#6b2155;--accent-secondary:#a84f78;--blush:#f3d9da;--plum-deep:#3a0f2f;--border-subtle:rgba(107,33,85,.18);--ease-kinetic:cubic-bezier(.16,1,.3,1);--shadow-elevation:0 12px 32px -4px rgba(58,15,47,.25);--glow-accent:0 0 24px -4px var(--accent-primary);--glass-backdrop:blur(16px) saturate(180%);--r:4px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg-canvas);color:var(--text-primary);font-family:Charter,"Bitstream Charter",Cambria,Georgia,serif;font-size:1.08rem;line-height:1.68;overflow-wrap:anywhere;hyphens:auto}
h1,h2,h3{line-height:1.15;overflow-wrap:anywhere;hyphens:auto;font-weight:700}
h1{font-size:clamp(2.2rem,5vw,3.7rem);margin:.3rem 0 1rem;letter-spacing:-.01em}
h2{font-size:clamp(1.6rem,3.2vw,2.35rem);margin:.2rem 0 .9rem}
h3{font-size:1.3rem;margin:.2rem 0 .5rem}
p{margin:0 0 1rem}
a{color:var(--accent-primary)}
img{max-width:100%;height:auto;display:block}
:focus-visible{outline:3px solid var(--accent-secondary);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding:0 1.25rem}
.prose{max-width:70ch;margin:0 auto}
.muted{color:var(--text-muted)}
.zone{font-variant-caps:all-small-caps;letter-spacing:.09em;font-weight:700;color:var(--accent-primary);margin:0 0 .4rem;font-size:1.08rem}
.skip{position:absolute;left:-999px;top:0;background:var(--accent-primary);color:#fff;padding:.5rem 1rem;z-index:20}
.skip:focus{left:1rem}
/* header */
.site-head{position:relative;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}
.brand-row{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem}
.brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--text-primary);font-weight:700;font-size:1.3rem;margin-right:auto}
.brand svg{width:34px;height:34px;flex:none}
.menu-btn{display:none;background:none;border:1px solid var(--border-subtle);border-radius:var(--r);font-size:1.6rem;line-height:1;width:44px;height:44px;color:var(--accent-primary);cursor:pointer;align-items:center;justify-content:center}
.primary{border-top:1px solid var(--border-subtle)}
.primary ul{display:flex;justify-content:center;flex-wrap:wrap;gap:.3rem 1.6rem;list-style:none;margin:0 auto;padding:.75rem 1.25rem;max-width:1200px}
.primary a,.tl,.foot-links a{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;transition:background-size .45s var(--ease-kinetic);padding-bottom:2px}
.primary a{color:var(--text-primary)}
.primary a:hover,.primary a[aria-current="page"],.tl:hover,.foot-links a:hover{background-size:100% 2px}
.primary a[aria-current="page"]{color:var(--accent-primary)}
.tl{color:var(--accent-primary);font-weight:700}
/* buttons */
.btn{display:inline-block;background:var(--accent-primary);color:#fffaf8;text-decoration:none;padding:.9rem 1.5rem;border-radius:var(--r);border:0;font:inherit;font-weight:700;cursor:pointer;transition:transform .5s var(--ease-kinetic),box-shadow .5s var(--ease-kinetic)}
.btn:hover{transform:translateY(-5px) scale(1.015);box-shadow:var(--shadow-elevation),var(--glow-accent)}
.linkbtn{background:linear-gradient(currentColor,currentColor) 0 100%/0 2px no-repeat;border:0;color:var(--accent-primary);font:inherit;font-weight:700;cursor:pointer;padding:.2rem 0;transition:background-size .45s var(--ease-kinetic)}
.linkbtn:hover{background-size:100% 2px}
.actions{display:flex;flex-wrap:wrap;gap:1.2rem 1.8rem;align-items:center;margin-top:1.4rem}
/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#fbf1f0,#f3d9da,#fffaf8,#efcfd8);background-size:200% 200%;animation:gradientShift 12s ease infinite}
.hero::before,.hero::after{content:"";position:absolute;border-radius:50%;filter:blur(60px);opacity:.45;pointer-events:none;animation:floatOrb 14s ease-in-out infinite alternate}
.hero::before{width:340px;height:340px;background:#a84f78;top:-120px;right:8%}
.hero::after{width:260px;height:260px;background:#6b2155;bottom:-120px;left:-60px;opacity:.25;animation-delay:-6s}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;padding:4rem 1.25rem 4.5rem}
.hero .lede{font-size:1.2rem;color:var(--text-muted);max-width:52ch}
@keyframes gradientShift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@keyframes floatOrb{to{transform:translate(40px,30px) scale(1.1)}}
/* media */
.media img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r);box-shadow:var(--shadow-elevation)}
.media.wide img{aspect-ratio:16/9}
.media.square img{aspect-ratio:1/1}
figcaption{font-size:.9rem;color:var(--text-muted);margin-top:.5rem}
.band figcaption{color:rgba(253,243,241,.8)}
/* sections */
.sec{padding:4.5rem 0;position:relative}
.sec.blush{background:radial-gradient(circle at 85% 15%,rgba(168,79,120,.22),transparent 45%),var(--blush)}
.band{background:radial-gradient(circle at 10% 20%,rgba(168,79,120,.55),transparent 40%),radial-gradient(circle at 90% 90%,rgba(28,25,23,.35),transparent 45%),var(--accent-primary);color:#fdf3f1}
.band .zone{color:#f5c7d8}
.band a.tl{color:#fffaf8}
.band .muted{color:rgba(253,243,241,.82)}
.sec-head{max-width:68ch;margin-bottom:2rem}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.fluid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}
.block{background:rgba(255,250,248,.72);-webkit-backdrop-filter:var(--glass-backdrop);backdrop-filter:var(--glass-backdrop);border:1px solid var(--border-subtle);border-radius:var(--r);padding:1.7rem;transition:transform .5s var(--ease-kinetic),box-shadow .5s var(--ease-kinetic),background .4s}
.block:hover{transform:translateY(-5px) scale(1.015);box-shadow:var(--shadow-elevation),var(--glow-accent);background:rgba(255,250,248,.86)}
.band .block{background:rgba(255,250,248,.1);border-color:rgba(255,250,248,.24);color:#fdf3f1}
.band .block:hover{background:rgba(255,250,248,.16);box-shadow:var(--shadow-elevation),0 0 24px -4px #f5c7d8}
.lead-block{padding:2.4rem;display:grid;grid-template-columns:1.2fr .8fr;gap:2rem}
.lead-block h2{font-size:clamp(1.9rem,4vw,2.9rem)}
.span2{grid-column:1/-1}
/* room plan */
.plan{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:minmax(74px,auto);gap:8px;padding:12px;border:4px solid currentColor;border-radius:var(--r);position:relative}
.plan div{border:1px dashed rgba(255,250,248,.5);background:rgba(255,250,248,.1);border-radius:var(--r);padding:.55rem .65rem;font-size:.92rem;display:flex;flex-direction:column;justify-content:flex-end;line-height:1.3}
.plan b{font-variant-caps:all-small-caps;letter-spacing:.07em;font-size:1.05rem}
.plan.light{color:var(--accent-primary)}
.plan.light div{border-color:rgba(107,33,85,.4);background:rgba(107,33,85,.06);color:var(--text-primary)}
.p-sort{grid-column:1/3}.p-wash{grid-column:3/5}.p-dry{grid-column:5/7;grid-row:1/3}.p-fold{grid-column:1/5}.p-clean{grid-column:1/2;grid-row:3/5}.p-stock{grid-column:2/5;grid-row:3/4}.p-floor{grid-column:2/5;grid-row:4/5}.p-door{grid-column:5/7;grid-row:3/5}
/* shelf elevation */
.elev{border-left:4px solid currentColor;border-right:4px solid currentColor;padding:0 1rem;border-radius:var(--r) var(--r) 0 0}
.shelf{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;padding:1rem 0 .45rem;border-bottom:5px solid currentColor}
.shelf .h{font-variant-caps:all-small-caps;letter-spacing:.06em;white-space:nowrap;opacity:.85}
.shelf span:last-child{text-align:right}
/* checklist */
.check{list-style:none;padding:0;margin:.6rem 0 0}
.check li{position:relative;padding-left:2rem;margin:.55rem 0}
.check li::before{content:"";position:absolute;left:0;top:.3em;width:1.05rem;height:1.05rem;border:2px solid currentColor;border-radius:3px;opacity:.85}
.check li::after{content:"";position:absolute;left:.33rem;top:.42em;width:.35rem;height:.6rem;border:solid var(--accent-secondary);border-width:0 2px 2px 0;transform:rotate(45deg)}
.band .check li::after{border-color:#f5c7d8}
/* page hero */
.page-hero .hero-grid{padding:3.2rem 1.25rem 3.6rem}
.article-body h2{margin-top:2.4rem}
.note{border-left:4px solid var(--accent-primary);background:var(--bg-surface);padding:1rem 1.2rem;border-radius:var(--r);margin:1.4rem 0}
.table-wrap{overflow-x:auto;margin:1.4rem 0}
table{border-collapse:collapse;width:100%;min-width:480px;background:var(--bg-surface)}
th,td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--border-subtle);vertical-align:top}
th{font-variant-caps:all-small-caps;letter-spacing:.06em;color:var(--accent-primary)}
/* faq */
details{background:rgba(255,250,248,.75);border:1px solid var(--border-subtle);border-radius:var(--r);padding:1rem 1.25rem;margin:0 0 .9rem}
summary{cursor:pointer;font-weight:700;font-size:1.12rem}
details[open] summary{margin-bottom:.6rem;color:var(--accent-primary)}
/* forms */
label{display:block;font-weight:700;margin:.9rem 0 .3rem}
input,select,textarea{width:100%;font:inherit;padding:.75rem;border:1px solid rgba(107,33,85,.35);border-radius:var(--r);background:var(--bg-surface);color:var(--text-primary)}
textarea{min-height:150px;resize:vertical}
pre.out{white-space:pre-wrap;background:var(--bg-surface);border:1px dashed var(--accent-primary);border-radius:var(--r);padding:1rem;font-family:inherit;min-height:4rem}
.status{min-height:1.5rem;color:var(--accent-primary);font-weight:700}
/* footer */
.site-foot{background:var(--plum-deep);color:#f7e6e8;padding:3.2rem 0 1.6rem}
.site-foot a{color:#fffaf8}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1.2fr;gap:2rem}
.foot-brand{font-size:1.25rem;font-weight:700;margin-bottom:.5rem}
.foot-links{list-style:none;padding:0;margin:0}
.foot-links li{margin:.3rem 0}
.site-foot .zone{color:#f5c7d8}
.legal-line{border-top:1px solid rgba(247,230,232,.2);margin-top:2rem;padding-top:1.2rem;font-size:.92rem;color:rgba(247,230,232,.8)}
/* reveal */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease-kinetic),transform .7s var(--ease-kinetic)}
.js .reveal.reveal-visible{opacity:1;transform:translateY(0)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
/* breakpoints */
@media (min-width:1025px){.lead-block{padding:2.8rem}}
@media (max-width:1024px){.hero-grid{gap:2rem}.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:768px){
.menu-btn{display:inline-flex}
.primary{max-height:0;overflow:hidden;border-top:0;transition:max-height .55s var(--ease-kinetic)}
.primary.open{max-height:34rem;border-top:1px solid var(--border-subtle)}
.primary ul{flex-direction:column;align-items:flex-start;gap:0;padding:.4rem 1.25rem 1rem;background:linear-gradient(180deg,var(--bg-surface),var(--blush))}
.primary li{width:100%;border-bottom:1px solid var(--border-subtle)}
.primary a{display:inline-block;padding:.75rem 0}
.hero-grid,.lead-block,.grid2,.foot-grid{grid-template-columns:1fr}
.sec{padding:3.4rem 0}
}
@media (max-width:480px){
body{font-size:1.02rem}
.lead-block,.block{padding:1.3rem}
.plan{grid-template-columns:1fr 1fr}
.plan div{grid-column:auto!important;grid-row:auto!important}
.shelf{flex-direction:column;align-items:flex-start;gap:.2rem}
.shelf span:last-child{text-align:left}
}