﻿
:root{--bg:#f4f6f2;--surface:#fff;--ink:#151716;--muted:#737973;--line:#dfe4de;--lime:#c9fa59;--green:#718c37;--dark:#1b201d;--shadow:0 18px 50px #15221812}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,'Noto Sans KR',sans-serif;line-height:1.55}body.dark{--bg:#111411;--surface:#1b211c;--ink:#f2f5ef;--muted:#a6afa3;--line:#343d35;--dark:#090c0a}.hidden{display:none!important}.shell{width:min(1180px,calc(100% - 48px));margin:auto}.site-header{position:fixed;z-index:20;top:0;width:100%;background:#f4f6f2e8;border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}body.dark .site-header{background:#111411e8}.nav{height:72px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);font-weight:800;letter-spacing:-.7px;text-decoration:none}.mark{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:13px}.brand-muted{color:var(--muted);font-weight:400}.nav-links{display:flex;gap:24px}.nav-links button{border:0;background:none;color:var(--muted);font:600 13px Inter,'Noto Sans KR',sans-serif;cursor:pointer}.nav-links button.active,.nav-links button:hover{color:var(--ink)}.nav-tools{display:flex;align-items:center;gap:10px}.icon-btn,.menu-btn{border:0;background:none;color:var(--ink);font:inherit;cursor:pointer}.menu-btn{display:none}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:3px;padding:13px 18px;background:var(--ink);color:var(--bg);font:700 13px Inter,'Noto Sans KR',sans-serif;cursor:pointer;text-decoration:none}.button.lime{background:var(--lime);color:#111}.button.outline{background:transparent;color:var(--ink);border:1px solid var(--ink)}.button.small{padding:9px 14px}.button.danger{background:#d95d58;color:#fff}.hero{min-height:750px;padding-top:190px;display:flex;justify-content:space-between;position:relative}.eyebrow{margin:0 0 18px;color:var(--green);font-size:11px;font-weight:800;letter-spacing:2px}.hero h1{font-size:clamp(50px,7vw,92px);line-height:1.02;letter-spacing:-5px;margin:0 0 28px}.hero h1 em{font-style:normal;color:var(--green)}.lede{color:var(--muted);font-size:18px;line-height:1.75}.actions{display:flex;align-items:center;gap:24px;margin-top:38px}.plain-link{color:var(--ink);font-size:13px;font-weight:700;text-decoration:none}.hero-orbit{width:330px;height:330px;border:1px solid var(--line);border-radius:50%;margin:60px 80px 0 0;display:grid;place-items:center;position:relative}.hero-orbit:before,.hero-orbit:after{content:"";position:absolute;border:1px solid var(--line);border-radius:50%}.hero-orbit:before{inset:34px}.hero-orbit:after{inset:92px;border-style:dashed}.hero-orbit i{width:11px;height:11px;border-radius:50%;background:var(--lime);position:absolute;right:35px;top:30px}.hero-orbit strong{font-size:50px;font-weight:500}.scroll{position:absolute;bottom:45px;color:var(--muted);font-size:10px;letter-spacing:2px}.scroll i{display:inline-block;width:70px;height:1px;background:var(--line);margin-left:12px;vertical-align:middle}.section{padding:112px 0}.intro,.section-head{display:flex;justify-content:space-between;gap:50px}.section h2{font-size:clamp(32px,4vw,57px);letter-spacing:-3px;line-height:1.12;margin:0}.copy{max-width:470px;margin-top:55px;color:var(--muted);font-size:17px;line-height:1.9}.stats{display:flex;gap:52px;margin-top:50px}.stats strong{display:block;font-size:38px;letter-spacing:-2px}.stats span,.note{font-size:12px;color:var(--muted)}.soft{background:var(--surface);border-block:1px solid var(--line)}.note{line-height:1.8}.business-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px;margin-top:55px}.business{min-height:360px;padding:27px;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none}.business.dark{background:var(--dark);color:#fff}.business.lime{background:var(--lime);color:#111}.business.outline{border:1px solid var(--line);color:var(--ink)}.business h3{font-size:37px;line-height:1;letter-spacing:-2px;margin:18px 0 24px}.business p{font-size:13px;opacity:.7}.arrow{font-size:26px;align-self:end}.view{display:none}.view.active{display:block}.product-title{margin:0 0 8px;font-size:clamp(32px,4vw,54px);letter-spacing:-3px}.product-subtitle{margin:0;color:var(--muted)}.product-nav{display:flex;gap:9px;align-items:center;border-bottom:1px solid var(--line);padding:25px 0 12px;margin-bottom:35px}.product-nav button{border:0;background:none;color:var(--muted);padding:9px 12px;cursor:pointer;font:600 13px Inter,'Noto Sans KR',sans-serif}.product-nav button.active{color:var(--ink);border-bottom:2px solid var(--green)}.module-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.module{padding:25px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.module h3{margin:0 0 7px;font-size:20px;letter-spacing:-1px}.module p{color:var(--muted);font-size:13px}.field{width:100%;padding:13px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit;font-size:13px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.field.full{grid-column:1/-1}.room-grid,.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.room-card,.news-card{padding:21px;background:var(--surface);border:1px solid var(--line)}.room-card h3,.news-card h3{font-size:18px;margin:8px 0}.room-card p,.news-card p{font-size:13px;color:var(--muted)}.room-price{font-size:20px;font-weight:800}.tag{color:var(--green);font-size:11px;font-weight:800;letter-spacing:1px}.empty{padding:25px 0;color:var(--muted);font-size:13px}.dark-band{background:var(--dark);color:#fff}.dark-band .note{color:#b4beb2}.dark-band .eyebrow{color:var(--lime)}.career-row,.admin-row,.route{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid var(--line);padding:22px 0}.career-row h3,.admin-row h3{margin:0;font-size:19px}.career-row p,.admin-row p{margin:4px 0 0;color:var(--muted);font-size:13px}.route{padding:17px;background:var(--surface);border:1px solid var(--line)}.admin-shell{padding-bottom:120px}.admin-tabs{display:flex;gap:8px;overflow:auto;border-bottom:1px solid var(--line);margin:28px 0 30px}.admin-tabs button{border:0;background:none;color:var(--muted);padding:12px;cursor:pointer;font-weight:700;white-space:nowrap}.admin-tabs button.active{color:var(--ink);border-bottom:2px solid var(--green)}.admin-panel{display:none}.admin-panel.active{display:block}.admin-table{display:grid;gap:0}.admin-row{align-items:flex-start;padding:18px 0}.admin-row .actions{margin:0;gap:7px;display:flex}.footer{border-top:1px solid var(--line);padding:32px 0}.footer-inner{display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.modal-bg{position:fixed;z-index:30;inset:0;background:#111a;backdrop-filter:blur(10px);display:grid;place-items:center;padding:20px}.modal{width:min(475px,100%);background:var(--surface);padding:35px;position:relative}.close{position:absolute;right:16px;top:12px;border:0;background:none;color:var(--muted);font-size:25px;cursor:pointer}.modal h2{margin:0 0 23px;font-size:28px;letter-spacing:-1.5px}.modal .field{margin-bottom:10px}.toast{position:fixed;z-index:40;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 20px;font-size:13px}.badge{display:inline-block;padding:5px 9px;background:#edf5df;color:#5c7f25;font-size:11px;font-weight:800}.badge.warn{background:#fff0cf;color:#9b6e19}.badge.danger{background:#ffe0df;color:#a23d39}@media(max-width:820px){.shell{width:calc(100% - 32px)}.nav{height:62px}.nav-links{display:none;position:absolute;top:62px;left:0;right:0;background:var(--surface);padding:18px;flex-direction:column;gap:18px;border-bottom:1px solid var(--line)}.nav-links.open{display:flex}.menu-btn{display:block}.hero{min-height:680px;padding-top:145px}.hero-orbit{display:none}.hero h1{letter-spacing:-3px}.section{padding:78px 0}.intro,.section-head{display:block}.copy{margin-top:35px}.business-grid,.module-grid,.room-grid,.news-grid{grid-template-columns:1fr}.business{min-height:270px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.career-row,.admin-row{align-items:flex-start}.footer-inner{flex-wrap:wrap;gap:12px}}


@keyframes sgIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes sgPop{from{transform:scale(.96);opacity:.4}to{transform:scale(1);opacity:1}}
.view.active{animation:sgIn .45s cubic-bezier(.2,.8,.2,1) both}
.enhance-flash{animation:sgPop .38s ease both}
.module,.room-card,.news-card,.career-row,.admin-row{transition:transform .3s ease,box-shadow .3s ease}
.module:hover,.room-card:hover,.news-card:hover,.career-row:hover,.admin-row:hover{transform:translateY(-3px);box-shadow:0 18px 40px #15221815}
.theme-toggle{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:0;background:var(--surface)}
.theme-toggle:before{content:'+';font-size:18px;color:var(--ink)}
body.dark .theme-toggle:before{content:'-';font-size:22px}
.edit-modal{width:min(560px,100%);max-height:90vh;overflow:auto}
.edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.edit-grid .full{grid-column:1/-1}
.edit-modal .field{margin:0}.edit-label{display:block;margin:0 0 6px;color:var(--muted);font-size:11px;font-weight:700}
.edit-actions,.confirm-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.edit-modal-backdrop{z-index:50}.confirm-modal{width:min(400px,100%)}.confirm-modal p{color:var(--muted);font-size:13px}
@media(max-width:620px){.edit-grid{grid-template-columns:1fr}.edit-grid .full{grid-column:auto}}

.consent-box{margin:4px 0 16px;padding:14px;background:var(--bg);border:1px solid var(--line)}
.consent-title{margin:0 0 10px;font-size:13px;font-weight:800}
.consent-item{display:flex;align-items:flex-start;gap:8px;margin:9px 0;color:var(--ink);font-size:12px;line-height:1.5;cursor:pointer}
.consent-item input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--green);flex:0 0 auto}
.consent-link{padding:0;border:0;background:none;color:var(--green);font:inherit;font-weight:800;text-decoration:underline;cursor:pointer}
.terms-details{margin-top:12px;color:var(--muted);font-size:11px}
.terms-details summary{cursor:pointer;color:var(--ink);font-weight:700}
.terms-copy{max-height:180px;overflow:auto;margin-top:10px;padding:10px;border-top:1px solid var(--line);line-height:1.65}
.terms-copy h4{margin:8px 0 4px;color:var(--ink);font-size:12px}
.terms-copy p{margin:0 0 8px}
#signup-code{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
button:focus-visible,.button:focus-visible,.field:focus-visible,a:focus-visible{outline:3px solid var(--green);outline-offset:3px}
@media(max-width:620px){.nav-tools .button{padding:9px 11px}.admin-row{display:block}.admin-row .actions{margin-top:12px;flex-wrap:wrap}.modal{padding:28px 20px}.product-nav{overflow-x:auto}.product-nav>*{flex:0 0 auto}}
.social-auth{display:grid;gap:8px;margin-top:14px}.auth-divider{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--muted);font-size:11px}.auth-divider:before,.auth-divider:after{content:'';height:1px;background:var(--line);flex:1}.auth-social{width:100%;padding:11px}
.reservation-modal{width:min(480px,100%)}.reservation-modal form{display:grid;gap:12px}.modal-note{margin:-12px 0 10px;color:var(--muted);font-size:13px}.reservation-card{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 0;border-top:1px solid var(--line)}.reservation-card h3{margin:6px 0 4px;font-size:18px}.reservation-card p{margin:0;color:var(--muted);font-size:13px}.auth-feedback{position:fixed;z-index:60;top:92px;left:50%;display:flex;align-items:center;gap:9px;padding:11px 16px;border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);opacity:0;transform:translate(-50%,-12px) scale(.96);transition:opacity .25s ease,transform .25s ease;font-size:13px;font-weight:700}.auth-feedback.show{opacity:1;transform:translate(-50%,0) scale(1)}.auth-feedback-mark{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--lime);color:#111;font-weight:900}
.reservation-admin-group{padding:4px 0 22px}.reservation-admin-group h3{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:15px}.approved-group{border-top:1px solid var(--line);padding-top:22px}.count-badge{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:var(--lime);color:#111;font-size:11px}

