:root{--bg: #020202;--bg2: #080808;--ink: #f3f0ea;--muted: #aaa8a2;--dim: #6f6d68;--line: rgba(243,240,234,.14);--line-strong: rgba(243,240,234,.36);--panel: rgba(255,255,255,.045);--panel-strong: rgba(255,255,255,.09);--shadow: 0 40px 120px rgba(0,0,0,.82);--max: min(1160px, calc(100% - 2.5rem) );--radius: 0px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,sans-serif;font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh;overflow-x:hidden}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:9999;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");background-repeat:repeat;background-size:180px 180px}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}button{cursor:pointer;font-family:inherit}h1,h2,h3,h4{font-family:Space Grotesk,sans-serif;font-weight:700;letter-spacing:-.04em;line-height:1.08}h1{font-size:clamp(3rem,8vw,7.5rem)}h2{font-size:clamp(2rem,5vw,4.2rem)}h3{font-size:1.35rem;letter-spacing:-.02em}.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:48px;padding:0 1.6rem;font-family:Space Grotesk,sans-serif;font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:none;transition:opacity .18s,transform .18s;clip-path:polygon(12px 0%,100% 0%,100% calc(100% - 12px),calc(100% - 12px) 100%,0% 100%,0% 12px)}.btn:hover{opacity:.88;transform:translateY(-1px)}.btn:active{transform:translateY(0);opacity:1}.btn-primary{background:var(--ink);color:var(--bg)}.btn-ghost{background:var(--panel);color:var(--ink);border:1px solid var(--line-strong);clip-path:polygon(12px 0%,100% 0%,100% calc(100% - 12px),calc(100% - 12px) 100%,0% 100%,0% 12px)}.btn-sm{min-height:36px;padding:0 1rem;font-size:.72rem}.btn-danger{background:#dc262626;color:#f87171;border:1px solid rgba(220,38,38,.3)}.container{width:var(--max);margin:0 auto}.section-pad{padding:6rem 0}.section-heading{text-align:center;margin-bottom:3.5rem}.section-heading .eyebrow{margin-bottom:.75rem}.section-heading h2{margin-bottom:1rem}.section-heading p{color:var(--muted);max-width:540px;margin:0 auto}.site-header{position:fixed;top:18px;left:50%;transform:translate(-50%);width:var(--max);z-index:100}.nav{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:#020202b8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--line)}.brand{display:flex;flex-direction:column;line-height:1}.brand-main{font-family:Space Grotesk,sans-serif;font-size:1.1rem;font-weight:700;letter-spacing:-.03em}.brand-sub{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.nav-links{display:flex;align-items:center;gap:2rem}.nav-links a{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);transition:color .15s}.nav-links a:hover{color:var(--ink)}.hero{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:9rem 1.25rem 5rem;position:relative;background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(243,240,234,.06) 0%,transparent 70%),var(--bg)}.hero-tagline{font-size:.72rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin-bottom:1.5rem}.hero h1{max-width:900px;margin:0 auto .75rem}.hero-sub{color:var(--muted);font-size:1.1rem;max-width:460px;margin:0 auto 2.5rem}.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:3rem}.hero-specs{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}.hero-specs span:before{content:"·";margin-right:2rem}.hero-specs span:first-child:before{display:none}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line)}.service-card{padding:2.5rem;background:var(--panel);border:none;position:relative;transition:background .2s}.service-card:hover{background:var(--panel-strong)}.service-num{font-family:Space Grotesk,sans-serif;font-size:.68rem;font-weight:700;letter-spacing:.2em;color:var(--dim);margin-bottom:1.5rem}.service-card h3{margin-bottom:.75rem}.service-card p{color:var(--muted);font-size:.9rem;line-height:1.7}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;border:1px solid var(--line)}.step-card{padding:2.5rem;background:var(--panel)}.step-num{font-family:Space Grotesk,sans-serif;font-size:2.5rem;font-weight:700;letter-spacing:-.04em;color:var(--dim);margin-bottom:1rem}.step-card h3{margin-bottom:.6rem}.step-card p{color:var(--muted);font-size:.9rem;line-height:1.7}.booking-shell{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}.booking-intro .eyebrow{margin-bottom:.75rem}.booking-intro h2{margin-bottom:1rem}.booking-intro>p{color:var(--muted);margin-bottom:1.5rem;line-height:1.7}.booking-checks{display:flex;flex-direction:column;gap:.5rem}.booking-checks span{font-size:.82rem;color:var(--muted)}.booking-form{display:flex;flex-direction:column;gap:1rem;padding:2rem;background:var(--panel);border:1px solid var(--line)}.booking-form label{display:flex;flex-direction:column;gap:.4rem;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.booking-form input,.booking-form select,.booking-form textarea{background:#ffffff0f;border:1px solid var(--line);color:var(--ink);font-family:Inter,sans-serif;font-size:.9rem;padding:.7rem .9rem;width:100%;outline:none;transition:border-color .15s;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:var(--line-strong)}.booking-form textarea{resize:vertical;min-height:100px}.booking-form select option{background:#111}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-error{color:#f87171;font-size:.8rem}.booking-confirm{display:grid;place-items:center;min-height:340px;text-align:center;padding:2rem;background:var(--panel);border:1px solid var(--line)}.confirm-check{font-size:3rem;margin-bottom:1rem;color:var(--ink)}.booking-confirm h3{font-size:2rem;margin-bottom:.75rem}.booking-confirm p{color:var(--muted);margin-bottom:1.5rem}.gallery-grid{columns:3 240px;gap:2px}.gallery-grid-item{break-inside:avoid;margin-bottom:2px;position:relative;overflow:hidden;cursor:pointer}.gallery-grid-item img{width:100%;display:block;transition:transform .4s ease}.gallery-grid-item:hover img{transform:scale(1.04)}.gallery-empty{text-align:center;color:var(--dim);padding:4rem 0;font-size:.9rem;letter-spacing:.06em}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:2rem}.lightbox img{max-width:90vw;max-height:88vh;object-fit:contain}.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;background:none;border:1px solid var(--line-strong);color:var(--ink);width:40px;height:40px;font-size:1.4rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.lightbox-close:hover{background:var(--panel-strong)}footer{padding:3rem 0;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;width:var(--max);margin:0 auto}.footer-copy{font-size:.78rem;color:var(--dim)}.footer-links{display:flex;gap:1.5rem}.footer-links a{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);transition:color .15s}.footer-links a:hover{color:var(--ink)}.admin-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{background:#040404;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:2rem 0;position:sticky;top:0;height:100vh;overflow-y:auto}.sidebar .brand{padding:0 1.5rem 2rem;border-bottom:1px solid var(--line);margin-bottom:1rem}.sidebar nav{display:flex;flex-direction:column;gap:.1rem;flex:1;padding:0 .5rem}.sidebar nav button{background:none;border:none;color:var(--muted);text-align:left;padding:.75rem 1rem;font-size:.78rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border-left:2px solid transparent;transition:color .15s,border-color .15s,background .15s;border-radius:0}.sidebar nav button:hover{color:var(--ink);background:var(--panel)}.sidebar nav button.active{color:var(--ink);border-left-color:var(--ink);background:var(--panel)}.back-link{display:block;margin:1.5rem .5rem 0;padding:.6rem 1rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border:1px solid var(--line);text-align:center;transition:color .15s,border-color .15s}.back-link:hover{color:var(--ink);border-color:var(--line-strong)}.dashboard-main{background:#040404;display:flex;flex-direction:column;min-height:100vh}.dashboard-header{padding:1.75rem 2rem;border-bottom:1px solid var(--line);display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;background:#020202}.dashboard-header .eyebrow{margin-bottom:.3rem;color:var(--dim)}.dashboard-header h1{font-size:1.8rem;letter-spacing:-.03em}.dashboard-view{padding:2rem;flex:1}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-bottom:2rem;border:1px solid var(--line)}.stats-grid article{background:var(--panel);padding:1.5rem 1.75rem;display:flex;flex-direction:column;gap:.4rem}.stats-grid article span{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.stats-grid article strong{font-family:Space Grotesk,sans-serif;font-size:2.8rem;font-weight:700;letter-spacing:-.04em;line-height:1}.dashboard-card{background:var(--panel);border:1px solid var(--line);overflow:hidden}.dashboard-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line)}.dashboard-card-head h2{font-size:1rem;font-weight:700;letter-spacing:-.01em}.dashboard-card-head input[type=search]{background:#ffffff0f;border:1px solid var(--line);color:var(--ink);font-family:Inter,sans-serif;font-size:.8rem;padding:.45rem .8rem;min-width:200px;outline:none}.dashboard-card-head input[type=search]:focus{border-color:var(--line-strong)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.82rem}thead tr{border-bottom:1px solid var(--line)}th{padding:.85rem 1rem;text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}td{padding:.85rem 1rem;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink)}td strong{display:block;font-weight:600}td small{display:block;font-size:.75rem;color:var(--muted);margin-top:.15rem}tbody tr:hover td{background:#ffffff05}.empty-row td{text-align:center;color:var(--dim);padding:2.5rem}.badge{display:inline-block;font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .6rem;clip-path:polygon(6px 0%,100% 0%,100% calc(100% - 6px),calc(100% - 6px) 100%,0% 100%,0% 6px)}.badge.pending{background:#fbbf2426;color:#fbbf24}.badge.confirmed{background:#22c55e26;color:#4ade80}.badge.cancelled{background:#ef444426;color:#f87171}.badge.completed{background:#94a3b826;color:#94a3b8}.action-set{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.confirm-btn,.cancel-btn,.edit-btn{display:inline-flex;align-items:center;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.28rem .7rem;min-height:28px;border:1px solid var(--line);background:var(--panel);color:var(--ink);transition:background .15s,border-color .15s;cursor:pointer;clip-path:polygon(6px 0%,100% 0%,100% calc(100% - 6px),calc(100% - 6px) 100%,0% 100%,0% 6px)}.confirm-btn{border-color:#22c55e4d;color:#4ade80;background:#22c55e14}.confirm-btn:hover{background:#22c55e2e}.cancel-btn{border-color:#ef44444d;color:#f87171;background:#ef444414}.cancel-btn:hover{background:#ef44442e}.edit-btn:hover{background:var(--panel-strong);border-color:var(--line-strong)}.toast{font-size:.68rem;color:#4ade80;font-weight:600;letter-spacing:.06em;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;z-index:500;display:flex;align-items:center;justify-content:center;padding:1.5rem}.modal-box{background:#0a0a0a;border:1px solid var(--line-strong);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--line)}.modal-head h3{font-size:1rem;font-weight:700}.modal-close{background:none;border:1px solid var(--line);color:var(--muted);width:32px;height:32px;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s}.modal-close:hover{color:var(--ink);border-color:var(--line-strong)}.modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1rem;flex:1}.modal-body label{display:flex;flex-direction:column;gap:.35rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.modal-body input,.modal-body select,.modal-body textarea{background:#ffffff0d;border:1px solid var(--line);color:var(--ink);font-family:Inter,sans-serif;font-size:.88rem;padding:.6rem .8rem;outline:none;transition:border-color .15s;border-radius:0}.modal-body input:focus,.modal-body select:focus,.modal-body textarea:focus{border-color:var(--line-strong)}.modal-body textarea{resize:vertical;min-height:80px}.modal-body select option{background:#111}.modal-foot{padding:1.25rem 1.5rem;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:.75rem}.av-grid{display:flex;flex-direction:column;gap:0;border:1px solid var(--line)}.av-row{display:grid;grid-template-columns:110px 60px 1fr 1fr;gap:0;align-items:center;border-bottom:1px solid var(--line)}.av-row:last-child{border-bottom:none}.av-day{padding:1rem 1.25rem;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-right:1px solid var(--line)}.av-toggle{padding:.75rem;border-right:1px solid var(--line);display:flex;justify-content:center}.av-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink);cursor:pointer}.av-time{padding:.6rem 1rem;border-right:1px solid var(--line)}.av-time:last-child{border-right:none}.av-time input{background:#ffffff0d;border:1px solid var(--line);color:var(--ink);font-family:Inter,sans-serif;font-size:.82rem;padding:.4rem .6rem;outline:none;width:100%}.av-time input:disabled{opacity:.3}.av-time input:focus{border-color:var(--line-strong)}.cal-toolbar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--line)}.cal-toolbar h3{font-size:1rem}.cal-nav{display:flex;gap:.5rem;align-items:center}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal-dow{padding:.75rem .5rem;text-align:center;font-size:.65rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--line)}.cal-day{min-height:80px;padding:.6rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer;transition:background .15s;position:relative}.cal-day:nth-child(7n){border-right:none}.cal-day:hover{background:var(--panel)}.cal-day.other-month .cal-day-num{color:var(--dim)}.cal-day.today .cal-day-num{background:var(--ink);color:var(--bg);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center}.cal-day.selected{background:var(--panel-strong)}.cal-day-num{font-size:.82rem;font-weight:600;margin-bottom:.4rem;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.cal-dots{display:flex;gap:3px;flex-wrap:wrap}.cal-dot{width:6px;height:6px;clip-path:polygon(3px 0%,100% 0%,100% calc(100% - 3px),calc(100% - 3px) 100%,0% 100%,0% 3px)}.cal-dot.pending{background:#fbbf24}.cal-dot.confirmed{background:#4ade80}.cal-dot.cancelled{background:#f87171}.cal-wrap{display:grid;grid-template-columns:1fr 280px}.cal-body{overflow:hidden}.cal-day-panel{border-left:1px solid var(--line);padding:1.5rem;overflow-y:auto;max-height:520px}.cal-day-panel h4{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:1rem}.panel-booking{padding:.85rem 1rem;border:1px solid var(--line);margin-bottom:.6rem;background:var(--panel)}.panel-booking strong{display:block;font-size:.85rem;margin-bottom:.2rem}.panel-booking span{font-size:.72rem;color:var(--muted);display:block}.gallery-upload-zone{border:1px dashed var(--line-strong);padding:2.5rem;text-align:center;transition:border-color .15s,background .15s;margin-bottom:1.5rem}.gallery-upload-zone.drag-over{border-color:var(--ink);background:var(--panel)}.gallery-upload-zone input{display:none}.gallery-upload-icon{font-size:2.5rem;margin-bottom:.75rem}.gallery-upload-zone p{color:var(--muted);font-size:.85rem;margin-bottom:.3rem}.gallery-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:2px;margin-top:1.5rem}.gallery-photo-tile{aspect-ratio:1;background-size:cover;background-position:center;position:relative;overflow:hidden}.gallery-photo-tile button{position:absolute;top:6px;right:6px;background:#000c;border:1px solid var(--line-strong);color:var(--ink);width:26px;height:26px;font-size:1rem;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;cursor:pointer}.gallery-photo-tile:hover button{opacity:1}.upload-spinner{width:32px;height:32px;border:2px solid var(--line-strong);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto .75rem}@keyframes spin{to{transform:rotate(360deg)}}.clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1px;margin-top:1.5rem;border:1px solid var(--line)}.client-card{padding:1.25rem 1.5rem;background:var(--panel)}.client-card strong{display:block;font-size:.95rem;margin-bottom:.3rem}.client-card span{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.15rem}.blocked-dates-card{margin-top:1.5rem;padding:1.5rem;background:var(--panel);border:1px solid var(--line)}.blocked-dates-card h3{font-size:.9rem;margin-bottom:1rem}.blocked-dates-form{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1rem}.blocked-dates-form input{background:#ffffff0d;border:1px solid var(--line);color:var(--ink);font-family:Inter,sans-serif;font-size:.85rem;padding:.5rem .75rem;outline:none}.blocked-dates-form input:focus{border-color:var(--line-strong)}.blocked-list{display:flex;flex-direction:column;gap:.5rem}.blocked-item{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:#ef44440f;border:1px solid rgba(239,68,68,.2);font-size:.82rem}.blocked-item span{color:var(--muted)}@media (max-width: 1000px){.admin-shell{grid-template-columns:180px 1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.services-grid,.steps-grid,.cal-wrap{grid-template-columns:1fr}.cal-day-panel{border-left:none;border-top:1px solid var(--line);max-height:none}}@media (max-width: 768px){.admin-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;padding:1rem;gap:.5rem}.sidebar .brand{padding:0;border:none;margin:0}.sidebar nav{flex-direction:row;flex-wrap:wrap;padding:0;gap:.25rem}.sidebar nav button{border-left:none;border-bottom:2px solid transparent;padding:.5rem .75rem}.sidebar nav button.active{border-bottom-color:var(--ink);border-left-color:transparent}.back-link{margin:0}.booking-shell,.two-col{grid-template-columns:1fr}.av-row{grid-template-columns:90px 48px 1fr 1fr}.nav-links{display:none}.gallery-grid{columns:2 180px}}@media (max-width: 480px){.stats-grid{grid-template-columns:1fr 1fr}.gallery-grid{columns:2 140px}h1{font-size:clamp(2.4rem,10vw,4rem)}}
