:root { --ink:#18140f; --cream:#f2eadc; --paper:#d8c9b4; --tobacco:#784424; --ember:#d97a32; --muted:#867b6d; --line:rgba(24,20,15,.22); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--cream); color:var(--ink); font:400 16px/1.55 Manrope, sans-serif; } body:before { content:""; pointer-events:none; position:fixed; inset:0; opacity:.12; z-index:9; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.36'/%3E%3C/svg%3E"); }
.skip-link { position:absolute; left:-999px; }.skip-link:focus { left:16px; top:16px; z-index:20; background:var(--cream); color:var(--ink); padding:10px; }
.topbar { height:78px; padding:0 clamp(22px,5vw,72px); display:flex; align-items:center; justify-content:space-between; position:absolute; inset:0 0 auto; z-index:4; color:var(--cream); border-bottom:1px solid rgba(242,234,220,.25); }.brand { display:flex; align-items:center; gap:10px; color:inherit; text-decoration:none; letter-spacing:.08em; line-height:.9; }.brand-mark { border:1px solid currentColor; border-radius:50%; width:38px; height:38px; display:grid; place-items:center; font:19px/1 'Bebas Neue'; letter-spacing:0; }.brand b { font:20px/1 'Bebas Neue'; display:block; }.brand small { font:9px/1 'DM Mono'; letter-spacing:.22em; }.topbar nav { display:flex; gap:30px; }.topbar nav a { color:inherit; text-decoration:none; font:500 11px 'DM Mono'; letter-spacing:.08em; text-transform:uppercase; }.topbar nav a:hover,.text-link:hover { color:var(--ember); }
.button { appearance:none; border:0; display:inline-flex; justify-content:center; align-items:center; gap:18px; background:var(--ember); color:#20140d; padding:17px 21px; text-decoration:none; text-transform:uppercase; letter-spacing:.06em; font:600 11px 'DM Mono'; cursor:pointer; transition:transform .18s ease, background .18s ease; }.button:hover { transform:translate(-3px,-3px); background:#e99750; }.button span { font-size:20px; line-height:0; }.button-small { padding:11px 15px; }
.hero { min-height:780px; height:100svh; position:relative; color:var(--cream); overflow:hidden; }.hero-image { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center; }.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(10,7,4,.83) 0%,rgba(10,7,4,.56) 36%,rgba(10,7,4,.08) 75%),linear-gradient(0deg,rgba(10,7,4,.5),transparent 30%); }.hero-copy { position:relative; z-index:1; padding:clamp(150px,20vh,220px) clamp(22px,12vw,178px) 80px; max-width:820px; }.kicker { font:500 10px 'DM Mono'; letter-spacing:.12em; margin:0 0 20px; color:inherit; }.kicker i { display:inline-block; width:24px; height:1px; vertical-align:middle; margin:0 9px 0 0; background:currentColor; }.hero h1,.section h2,.booking h2 { font:400 clamp(80px,11vw,168px)/.78 'Bebas Neue'; letter-spacing:.01em; margin:0; text-wrap:balance; }.hero h1 em,.booking h2 em { font-style:normal; color:var(--ember); }.hero-text { max-width:410px; margin:30px 0; color:#e8dfd1; }.hero-actions { display:flex; align-items:center; gap:28px; }.text-link { color:var(--cream); text-decoration:none; font:500 11px 'DM Mono'; letter-spacing:.05em; text-transform:uppercase; }.text-link span { margin-left:8px; font-size:16px; }.hero-note,.scroll-cue { position:absolute; bottom:35px; z-index:1; font:10px 'DM Mono'; letter-spacing:.06em; }.hero-note { left:clamp(22px,5vw,72px); }.hero-note span { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--ember); margin-right:8px; }.scroll-cue { right:clamp(22px,5vw,72px); writing-mode:vertical-rl; }.scroll-cue span { margin-top:9px; }
.section { padding:clamp(75px,12vw,170px) clamp(22px,9vw,130px); }.services { display:grid; grid-template-columns:minmax(280px,.8fr) 1.2fr; gap:clamp(50px,10vw,150px); }.section-intro h2,.house h2 { font-size:clamp(58px,8vw,116px); line-height:.83; }.section-intro > p:last-child { max-width:370px; color:#5f5548; margin-top:30px; }.service-list { border-top:1px solid var(--ink); }.service-item { padding:23px 0 22px; display:grid; grid-template-columns:55px 1fr auto; gap:16px; align-items:center; border-bottom:1px solid var(--line); }.service-no { color:var(--tobacco); font:11px 'DM Mono'; }.service-item h3 { margin:0; font:400 29px/1 'Bebas Neue'; letter-spacing:.02em; }.service-item p { margin:4px 0 0; color:var(--muted); font-size:13px; }.service-item strong { font:500 11px 'DM Mono'; letter-spacing:.04em; white-space:nowrap; }
.house { position:relative; background:var(--ink); color:var(--cream); display:grid; grid-template-columns:1fr 1.25fr .75fr; gap:clamp(24px,5vw,85px); align-items:end; overflow:hidden; }.house:after { content:'ESPAÇO'; color:rgba(242,234,220,.035); position:absolute; right:-.1em; bottom:-.18em; font:clamp(180px,31vw,500px)/.7 'Bebas Neue'; pointer-events:none; }.house-content { position:relative; z-index:1; }.house h2 { color:var(--paper); }.house-content > p:not(.kicker) { max-width:370px; color:#c2b7a5; }.house-stamp { position:relative; z-index:1; width:150px; height:150px; border:1px solid var(--ember); color:var(--ember); border-radius:50%; display:grid; place-content:center; text-align:center; font:55px/.65 'Bebas Neue'; transform:rotate(-10deg); }.house-stamp span { font:9px/1.2 'DM Mono'; letter-spacing:.16em; margin-top:11px; }.hours { position:relative; z-index:1; padding:0 0 8px; }.hours>p { font:11px 'DM Mono'; letter-spacing:.1em; margin:0 0 15px; color:var(--ember); }.hours dl { margin:0; border-top:1px solid rgba(242,234,220,.27); }.hours dl div { display:flex; justify-content:space-between; gap:16px; border-bottom:1px solid rgba(242,234,220,.27); padding:10px 0; font-size:12px; }.hours dt { color:#a89d8c; }.hours dd { margin:0; }.hours small { display:block; color:#776e62; margin-top:13px; font-size:10px; }
.booking { min-height:620px; padding:clamp(75px,11vw,150px) clamp(22px,9vw,130px); background:var(--paper); display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,15vw,200px); }.booking h2 { font-size:clamp(70px,9vw,140px); color:var(--ink); }.booking-form { display:grid; align-content:end; gap:20px; max-width:470px; }.booking-form label { font:500 10px 'DM Mono'; letter-spacing:.08em; text-transform:uppercase; }.booking-form input,.booking-form select { display:block; width:100%; border:0; border-bottom:1px solid rgba(24,20,15,.55); border-radius:0; padding:12px 0; color:var(--ink); font:400 17px Manrope; background:transparent; outline:0; }.booking-form input:focus,.booking-form select:focus { border-color:var(--ember); }.booking-form input::placeholder { color:#877c6c; }.booking-form .button { margin-top:9px; align-self:start; }.form-note { font-size:12px; color:#706656; margin:0; }
footer { padding:42px clamp(22px,5vw,72px); background:#0e0c09; color:var(--cream); display:flex; justify-content:space-between; align-items:center; } footer p,footer>a { margin:0; font:10px 'DM Mono'; letter-spacing:.06em; } footer>a { color:var(--ember); text-decoration:none; }
@media (prefers-reduced-motion:no-preference) { .reveal { animation:reveal .8s ease-out both; } @keyframes reveal { from { opacity:0; transform:translateY(24px); } to { opacity:1; transform:none; } } }
@media (max-width:760px) { .topbar { height:68px; }.topbar nav,.topbar .button { display:none; }.hero { min-height:690px; }.hero-copy { padding:150px 25px 75px; }.hero h1 { font-size:82px; }.hero-text { font-size:15px; }.hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }.scroll-cue { display:none; }.services,.house,.booking { grid-template-columns:1fr; }.services { gap:50px; }.service-item { grid-template-columns:35px 1fr; }.service-item strong { grid-column:2; }.house { gap:50px; }.house-stamp { width:115px; height:115px; font-size:43px; }.booking { gap:55px; }.booking h2 { font-size:80px; } footer { align-items:flex-start; gap:24px; flex-direction:column; } }
