:root{
    --ink:#22261f;
    --muted:#74786d;
    --cream:#f4efe2;
    --paper:#fffdf8;
    --olive:#7f9051;
    --lime:#b7c96e;
    --wine:#74283d;
    --line:#e7e0d1;
    --shadow:0 32px 90px rgba(63,54,38,.16);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
    margin:0;
    color:var(--ink);
    font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
    background:
        radial-gradient(circle at 13% 17%,rgba(183,201,110,.28),transparent 27%),
        radial-gradient(circle at 88% 78%,rgba(116,40,61,.16),transparent 28%),
        linear-gradient(145deg,#f7f3e7 0%,#efeadc 100%);
}
button,input{font:inherit}
.entry-page{
    min-height:100vh;
    display:grid;
    place-items:center;
    padding:34px 20px;
    position:relative;
    overflow:hidden;
}
.entry-decor{position:fixed;pointer-events:none;opacity:.78;filter:blur(.1px)}
.entry-decor-left{
    width:280px;height:280px;left:-120px;bottom:-95px;border-radius:50%;
    background:radial-gradient(circle at 58% 40%,rgba(183,201,110,.8),rgba(127,144,81,.14) 58%,transparent 70%);
}
.entry-decor-right{
    width:340px;height:340px;right:-150px;top:-110px;border-radius:50%;
    background:radial-gradient(circle at 42% 58%,rgba(116,40,61,.36),rgba(116,40,61,.07) 60%,transparent 70%);
}
.entry-card{
    width:min(760px,100%);
    background:rgba(255,253,248,.94);
    border:1px solid rgba(231,224,209,.95);
    border-radius:34px;
    box-shadow:var(--shadow);
    padding:34px;
    position:relative;
    z-index:2;
    backdrop-filter:blur(10px);
}
.entry-brand{display:flex;align-items:center;gap:20px;margin-bottom:26px}
.brand-logo{
    width:72px;height:72px;flex:0 0 72px;border-radius:23px;
    display:grid;place-items:center;background:var(--ink);color:white;
    font-family:Georgia,"Times New Roman",serif;font-size:1.75rem;letter-spacing:.03em;
    box-shadow:0 12px 30px rgba(34,38,31,.18)
}
.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.12em;color:var(--olive);margin-bottom:5px}
.brand-copy h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,5vw,3rem);font-weight:500;line-height:1.05}
.brand-copy p{margin:7px 0 0;color:var(--muted)}
.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}
.mode-button{
    border:1px solid var(--line);background:#fff;border-radius:20px;padding:16px;
    display:flex;align-items:center;gap:13px;text-align:left;cursor:pointer;color:var(--ink);
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.mode-button:hover{transform:translateY(-2px);border-color:#cfd6b9;box-shadow:0 10px 25px rgba(60,64,48,.07)}
.mode-button.active{background:#252922;border-color:#252922;color:white;box-shadow:0 14px 34px rgba(34,38,31,.16)}
.mode-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:#f4f1e8;font-size:1.35rem}
.mode-button.active .mode-icon{background:rgba(255,255,255,.1)}
.mode-button strong,.mode-button small{display:block}
.mode-button strong{font-size:1rem;margin-bottom:3px}
.mode-button small{color:#83877d;font-size:.78rem}
.mode-button.active small{color:#c8ccc3}
.mode-panel{display:none;border:1px solid var(--line);border-radius:24px;background:#fff;padding:26px}
.mode-panel.active{display:block;animation:panelIn .2s ease-out}
@keyframes panelIn{from{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:none}}
.guest-welcome,.admin-login{max-width:590px;margin:0 auto;text-align:center}
.guest-art{display:flex;justify-content:center;align-items:center;gap:10px;margin:2px 0 14px;font-size:2rem}
.guest-art span{width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#f7f4eb;border:1px solid #ece6d8}
.guest-art .olive{transform:rotate(-6deg)}
.guest-art .grape{transform:translateY(-5px)}
.guest-art .wine{transform:rotate(5deg)}
.mode-panel h2{font-family:Georgia,"Times New Roman",serif;font-size:1.85rem;font-weight:500;margin:5px 0 8px}
.mode-panel p{color:var(--muted);line-height:1.55;margin:0 auto 20px;max-width:520px}
.primary-action{
    width:100%;min-height:54px;border:0;border-radius:15px;background:var(--ink);color:#fff;
    text-decoration:none;display:flex;align-items:center;justify-content:center;gap:12px;
    font-weight:800;cursor:pointer;padding:14px 18px;transition:.18s ease;
}
.primary-action:hover{background:#30352c;transform:translateY(-1px);color:#fff}
.primary-action span{font-size:1.3rem;line-height:1}
.admin-login{text-align:left}
.admin-login h2,.admin-login>p{text-align:center}
.field{display:block;text-align:left;margin-top:14px}
.field>span{display:block;font-weight:700;font-size:.88rem;margin:0 0 7px}
.field input{
    width:100%;height:52px;border:1px solid #dfe2d8;border-radius:14px;background:#fff;padding:0 15px;color:var(--ink);outline:none;
    transition:border-color .15s,box-shadow .15s;
}
.field input:focus{border-color:#9dab78;box-shadow:0 0 0 4px rgba(127,144,81,.12)}
.password-field{position:relative}
.password-field input{padding-right:52px}
.password-toggle{
    position:absolute;right:7px;top:7px;width:38px;height:38px;border:0;border-radius:10px;background:#f2f3ee;color:#686e62;cursor:pointer
}
.admin-action{margin-top:18px}
.login-error{background:#fff0f1;border:1px solid #f2c8cc;color:#8b2435;border-radius:13px;padding:11px 13px;text-align:center;font-size:.9rem;margin:0 0 12px}
.entry-footer{display:flex;align-items:center;justify-content:center;gap:9px;color:#989b92;font-size:.76rem;margin-top:20px}
.entry-footer .dot{color:#c5c7c0}
@media(max-width:640px){
    .entry-page{padding:18px 12px}
    .entry-card{border-radius:26px;padding:22px 16px}
    .entry-brand{align-items:flex-start;gap:14px}
    .brand-logo{width:58px;height:58px;flex-basis:58px;border-radius:18px;font-size:1.35rem}
    .brand-copy h1{font-size:2rem}
    .mode-switch{grid-template-columns:1fr}
    .mode-panel{padding:22px 16px}
}

/* V1.3 personalized guest access */
.guest-pin-form{display:grid;gap:12px;margin-top:20px}.guest-pin-form label>span{display:block;font-size:.78rem;font-weight:800;color:var(--muted);margin-bottom:7px}.guest-pin-form input{width:100%;border:1px solid var(--line);border-radius:17px;padding:15px 18px;background:#fff;text-align:center;font-size:1.8rem;font-weight:900;letter-spacing:.55em;color:var(--ink);outline:none}.guest-pin-form input:focus{border-color:#aab97e;box-shadow:0 0 0 4px rgba(127,144,81,.12)}.entry-version{text-align:center;color:#9a9d94;font-size:.64rem;font-weight:800;letter-spacing:.11em;margin-top:22px}
