*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:clip;transition:background-color .5s ease,color .5s ease}
img,svg,canvas,iframe{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 14px;background:var(--accent);color:var(--bg);border-radius:8px;text-decoration:none}
.skip:focus{top:12px}

.wrap{width:min(1240px,100% - 48px);margin-inline:auto}
@media (max-width:640px){.wrap{width:calc(100% - 32px)}}

.site-header{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px clamp(16px,3vw,40px);transition:background-color .4s ease,backdrop-filter .4s ease,padding .4s ease}
.site-header[data-scrolled]{background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);padding-block:12px}
.brand{display:inline-flex;align-items:baseline;gap:.5em;text-decoration:none;font-family:var(--font-display);font-weight:600;letter-spacing:.02em;white-space:nowrap}
.brand small{font-family:var(--font-body);font-weight:500;font-size:.62em;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav{display:flex;gap:clamp(12px,2vw,28px);font-size:14px}
.nav a{text-decoration:none;color:var(--muted);transition:color .2s}
.nav a:hover{color:var(--fg)}
.header-tools{display:flex;align-items:center;gap:10px}
.chip{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:transparent;text-decoration:none;font-size:13px;cursor:pointer;transition:border-color .2s,background-color .2s}
.chip:hover{border-color:var(--fg)}
.theme-toggle{width:38px;padding:0;justify-content:center}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .sun{display:none}
[data-theme="light"] .theme-toggle .sun{display:block}
[data-theme="light"] .theme-toggle .moon{display:none}
@media (max-width:900px){.nav{display:none}}
@media (max-width:480px){.brand small{display:none}.chip-variant span{display:none}}

.btn{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 26px;border-radius:999px;border:1px solid var(--fg);background:var(--fg);color:var(--bg);text-decoration:none;font-weight:600;font-size:15px;cursor:pointer;transition:transform .3s cubic-bezier(.2,.8,.2,1),background-color .3s,color .3s}
.btn:hover{transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--fg)}
.btn svg{width:16px;height:16px}

.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.eyebrow::before{content:"";width:22px;height:1px;background:currentColor}
.demo-tag{display:inline-block;margin-left:8px;padding:2px 7px;border:1px solid var(--line);border-radius:999px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);vertical-align:middle}

[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity 1s cubic-bezier(.2,.8,.2,1),transform 1s cubic-bezier(.2,.8,.2,1);transition-delay:var(--d,0s)}
[data-reveal].is-in{opacity:1;transform:none}
.word{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.word>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * 45ms + var(--d, 0s))}
.is-in .word>span{transform:none}

.house-frame{width:100%;height:100%;border:0;background:transparent;color-scheme:normal}

.art{width:100%;height:100%;object-fit:cover}
.art-front.art-a{fill:var(--art-a)}.art-side.art-a{fill:var(--art-a-side)}.art-top.art-a{fill:var(--art-a-top)}
.art-front.art-b{fill:var(--art-b)}.art-side.art-b{fill:var(--art-b-side)}.art-top.art-b{fill:var(--art-b-top)}
.art-roof{fill:var(--art-roof)}.art-roof-side{fill:var(--art-roof-side)}
.art-win{fill:var(--art-win)}
.art-glass{fill:var(--art-win);opacity:.75}
.art-col{fill:var(--art-a-side)}
.art-ground{fill:var(--art-ground)}
.art-lines path{stroke:var(--art-line);stroke-width:1;fill:none}
.art-shadow{fill:var(--art-shadow)}
.art-sun{fill:var(--art-sun)}
.art-accent{fill:var(--accent)}

.site-footer{padding:40px 0 48px;border-top:1px solid var(--line);color:var(--muted);font-size:13px}
.site-footer .wrap{display:flex;flex-wrap:wrap;gap:16px 32px;justify-content:space-between}
.site-footer a{color:var(--fg)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  [data-reveal]{opacity:1;transform:none}
  .word>span{transform:none}
}
