/*
Theme Name: SPEVO — Seoul Fine Dining
Theme URI: https://example.com/spevo
Author: Portfolio Concept
Description: Editorial modern-European restaurant theme for SPEVO Seoul. Cinematic imagery, elegant motion, responsive layouts and reservation-first UX.
Version: 1.0.0
Text Domain: spevo
*/
:root{--ink:#07110d;--ink2:#0e1b15;--cream:#f4f0e8;--paper:#fbf8f1;--gold:#c7a05b;--gold2:#e4c887;--muted:#b9b4aa;--line:rgba(199,160,91,.28);--serif:"Cormorant Garamond",Georgia,serif;--sans:Inter,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--cream);font-family:var(--sans);overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.wrap{width:min(1400px,92vw);margin:auto}.topbar{position:fixed;z-index:50;left:0;right:0;top:0;height:86px;display:flex;align-items:center;background:linear-gradient(180deg,rgba(5,8,6,.94),rgba(5,8,6,.68),transparent);backdrop-filter:blur(10px)}.nav{display:flex;align-items:center;justify-content:space-between;width:min(1400px,92vw);margin:auto}.brand{font:500 34px/1 var(--serif);letter-spacing:.14em}.brand small{display:block;font:600 9px/1.2 var(--sans);letter-spacing:.26em;margin-top:6px;color:var(--gold2)}.links{display:flex;gap:34px;align-items:center;font-size:12px;letter-spacing:.11em}.links a{opacity:.82;position:relative}.links a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--gold);transition:.35s}.links a:hover:after{right:0}.btn{display:inline-flex;align-items:center;gap:14px;padding:15px 22px;border:1px solid var(--gold);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;transition:.28s}.btn:hover{background:var(--gold);color:#0c120f;transform:translateY(-2px)}.btn.fill{background:var(--gold);color:#0b100d}.menu-toggle{display:none;border:1px solid var(--line);width:44px;height:44px;border-radius:50%;background:none;color:white}.hero{min-height:760px;display:grid;grid-template-columns:44% 56%;position:relative;background:#050907;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 58% 30%,rgba(199,160,91,.12),transparent 34%),radial-gradient(circle at 9% 50%,rgba(199,160,91,.06),transparent 26%);pointer-events:none}.hero-copy{padding:170px 4vw 80px max(4vw,calc((100vw - 1400px)/2));z-index:2}.eyebrow{color:var(--gold2);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:28px}.hero h1,.section-title{font:500 clamp(56px,6vw,104px)/.94 var(--serif);letter-spacing:.01em;margin:0}.hero h1 span{display:block}.hero p{max-width:500px;color:#d5d0c8;line-height:1.8;font-size:15px;margin:28px 0 30px}.actions{display:flex;gap:18px;flex-wrap:wrap}.hours{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:0;margin-top:60px;max-width:650px}.hours div{padding:0 20px;border-left:1px solid var(--line);font-size:12px;line-height:1.6}.hours div:first-child{padding-left:0;border-left:0}.hours b{display:block;color:var(--gold2);letter-spacing:.08em;margin-bottom:4px}.hero-media{position:relative;overflow:hidden}.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.84) contrast(1.03);transform:scale(1.04);animation:heroBreath 15s ease-in-out infinite alternate}.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#050907 0,rgba(5,9,7,.55) 16%,transparent 50%),linear-gradient(0deg,rgba(5,9,7,.35),transparent 35%)}.seal{position:absolute;z-index:4;right:7%;top:21%;width:108px;height:108px;border:1px solid rgba(199,160,91,.45);border-radius:50%;display:grid;place-items:center;color:var(--gold2);font:500 32px var(--serif);animation:spin 18s linear infinite}.seal:before{content:"SEOUL · CLASSIC EUROPEAN · SPEVO · ";position:absolute;font:600 8px var(--sans);letter-spacing:.2em;width:160px;text-align:center;transform:rotate(-18deg)}.scrollmark{position:absolute;right:26px;bottom:30px;z-index:4;font-size:9px;letter-spacing:.22em;color:#e8ded0;writing-mode:vertical-rl}.about{background:var(--paper);color:#1c211e;padding:110px 0;position:relative;overflow:hidden}.about:before{content:"S";position:absolute;left:-25px;top:-65px;font:500 330px var(--serif);color:rgba(199,160,91,.08)}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}.about-copy{max-width:520px}.about h2{font:500 clamp(48px,5vw,76px)/1 var(--serif);margin:10px 0 25px}.about p{line-height:1.9;color:#55584f}.photo-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:12px}.photo-grid .tall{grid-row:span 2;height:520px}.photo-grid img{width:100%;height:254px;object-fit:cover}.photo-grid .tall img{height:100%}.image-frame{overflow:hidden;position:relative}.image-frame img{transition:transform .8s cubic-bezier(.2,.8,.2,1)}.image-frame:hover img{transform:scale(1.045)}.menu-section{padding:115px 0;background:linear-gradient(120deg,#07150f,#0c2119 65%,#09130f);position:relative;overflow:hidden}.menu-section:before{content:"";position:absolute;width:520px;height:520px;border:1px solid rgba(199,160,91,.08);border-radius:50%;left:-200px;top:90px}.menu-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px}.menu-head h2{font:500 clamp(52px,5vw,82px)/.98 var(--serif);margin:6px 0}.menu-head p{max-width:430px;color:#bdbab2;line-height:1.7}.dish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.dish{border:1px solid var(--line);background:#0d1c16;overflow:hidden;transition:transform .35s,border-color .35s}.dish:hover{transform:translateY(-8px);border-color:rgba(228,200,135,.75)}.dish img{height:340px;width:100%;object-fit:cover;transition:transform .7s}.dish:hover img{transform:scale(1.045)}.dish-body{padding:24px}.dish h3{font:500 30px var(--serif);margin:0 0 8px}.dish p{font-size:13px;color:#bfbab1;line-height:1.65;min-height:42px}.price{display:flex;justify-content:space-between;align-items:center;margin-top:20px;color:var(--gold2);font-weight:700}.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#09120e;color:var(--gold2);padding:16px 0}.marquee-track{display:flex;width:max-content;animation:marquee 24s linear infinite}.marquee span{font:500 22px var(--serif);letter-spacing:.06em;padding-right:46px}.info{background:var(--paper);color:#1c211e;padding:70px 0}.info-grid{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 1fr;gap:0}.info-card{padding:15px 34px;border-left:1px solid rgba(70,65,55,.16)}.info-card:first-child{border-left:0;padding-left:0}.info-card h4{font:500 26px var(--serif);margin:0 0 16px}.info-card p{font-size:13px;line-height:1.8;color:#5d5b55}.reserve-card{background:var(--ink);color:var(--cream);padding:34px}.reserve-card h4{color:var(--gold2)}.footer{padding:35px 0;background:#050907;border-top:1px solid rgba(255,255,255,.06)}.footer .wrap{display:flex;align-items:center;justify-content:space-between;color:#9f9e98;font-size:11px}.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}.reveal.in{opacity:1;transform:none}.cursor-glow{position:fixed;pointer-events:none;z-index:8;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(205,167,91,.11),transparent 68%);transform:translate(-50%,-50%);mix-blend-mode:screen}.grain{position:fixed;inset:0;z-index:100;pointer-events:none;opacity:.035;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='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E")}.line-orbit{position:absolute;border:1px solid rgba(199,160,91,.2);border-radius:50%;width:220px;height:220px;right:-60px;top:55px;animation:float 8s ease-in-out infinite}.line-orbit:after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--gold2);left:36px;top:30px;box-shadow:0 0 22px var(--gold2)}@keyframes heroBreath{to{transform:scale(1.10) translate3d(-1.5%,.8%,0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(14px) rotate(9deg)}}@keyframes marquee{to{transform:translateX(-50%)}}@media(max-width:1000px){.links{display:none}.menu-toggle{display:block}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{padding:145px 6vw 70px}.hero-media{height:520px}.hero-media:after{background:linear-gradient(0deg,#050907 0,transparent 38%)}.seal{top:auto;bottom:70px}.hours{grid-template-columns:repeat(2,1fr);gap:20px}.about-grid{grid-template-columns:1fr}.dish-grid{grid-template-columns:1fr}.dish img{height:420px}.info-grid{grid-template-columns:1fr 1fr;gap:30px}.info-card{border-left:0;padding:0}.menu-head{display:block}.cursor-glow{display:none}}@media(max-width:620px){.brand{font-size:27px}.topbar{height:72px}.hero-copy{padding-top:120px}.hero h1{font-size:58px}.hours{grid-template-columns:1fr 1fr}.hours div{padding-left:12px}.hero-media{height:420px}.seal{width:86px;height:86px;right:5%}.about,.menu-section{padding:80px 0}.photo-grid{grid-template-columns:1fr}.photo-grid .tall{grid-row:auto;height:390px}.photo-grid img{height:300px}.dish img{height:320px}.info-grid{grid-template-columns:1fr}.footer .wrap{gap:20px;align-items:flex-start;flex-direction:column}.btn{padding:13px 17px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}.reveal{opacity:1;transform:none}}
