:root{--ink:#493c40;--muted:#796c76;--purple:#79567f;--line:#e8dfe6;--soft:#f0e5ef;--paper:#fff;--ground:#faf7f4}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font:16px/1.65 -apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button,select{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #a77aae;outline-offset:3px}.top{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1200px)/2));gap:20px}.brand{font-size:27px;font-weight:800;color:var(--purple);white-space:nowrap}.brand span{font-size:10px;letter-spacing:2px;display:block;line-height:1.2;color:var(--muted)}.top-note,.back{font-size:14px;color:var(--muted)}.shell{max-width:1248px;margin:auto;padding:38px 24px}.intro{margin-bottom:30px}.eyebrow{color:var(--purple);font-size:13px;font-weight:700;letter-spacing:1px;margin:0 0 6px}h1{font-size:34px;line-height:1.35;letter-spacing:-1.2px;margin:0 0 10px}h2{font-size:21px;margin:0;letter-spacing:-.5px}.intro>p:last-child{margin:0;color:var(--muted)}.workspace{background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 35px #62425908}.filters{display:flex;align-items:end;gap:16px;padding:24px;background:#fcf8fb;border-bottom:1px solid var(--line)}label{font-size:13px;color:var(--muted);font-weight:600;display:block;flex:1;max-width:290px}select{display:block;width:100%;margin-top:6px;padding:10px 36px 10px 12px;border:1px solid #d9cbd7;border-radius:9px;background:#fff;color:var(--ink);min-height:46px;font-size:15px}button{background:white;color:var(--ink);border:1px solid var(--line);border-radius:9px;min-height:44px;padding:8px 15px}.quiet{background:transparent;font-size:14px}.calendar-head{display:flex;justify-content:space-between;align-items:center;padding:25px 24px 4px;gap:16px}.month-nav{display:flex;align-items:center;gap:20px}.month-nav button{font-size:25px;line-height:1;padding:4px 14px}.calendar-head>span{font-size:14px;color:var(--purple);font-weight:600}.data-note{font-size:12px;color:var(--muted);margin:8px 24px 20px}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekday{padding:12px;text-align:center;color:var(--muted);font-size:13px;border-top:1px solid var(--line);background:#f8f0f7}.day{min-height:118px;padding:10px 7px;border-top:1px solid var(--line);border-right:1px solid var(--line);min-width:0}.day:nth-child(7n){border-right:0}.day.other{background:#f9f5f7;color:#aa9aa8}.date{font-size:13px;display:inline-flex;width:26px;height:26px;align-items:center;justify-content:center;margin-bottom:5px}.today .date{background:var(--purple);color:white;border-radius:50%}.event-link{display:block;background:#eee0ef;border-left:3px solid var(--purple);border-radius:4px;padding:6px 7px;margin:3px 0;color:#604067;font-size:13px;line-height:1.5;overflow-wrap:anywhere}.event-link.demo{background:#f5eeef;border-color:#c2a8b6;color:#705764}.event-link:hover{background:#e6d3e7}.month-list{margin-top:30px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.section-head span{font-size:13px;color:var(--muted)}.list-item{display:flex;align-items:center;gap:22px;padding:20px 24px;background:#fff;border:1px solid var(--line);border-radius:14px;margin-bottom:10px}.list-item:hover{border-color:#b895bd}.date-block{min-width:76px;color:var(--purple);font-weight:700;font-size:20px}.item-main{flex:1;min-width:0}.item-main strong{display:block;font-size:17px}.item-main small{font-size:13px;color:var(--muted)}.arrow{color:var(--purple)}.pill{display:inline-block;background:var(--soft);color:var(--purple);font-size:12px;padding:3px 10px;border-radius:20px;margin-right:6px}.empty{text-align:center;padding:34px;color:var(--muted)}footer{text-align:center;color:var(--muted);font-size:12px;margin:32px 0 4px}.detail-shell{max-width:1080px;margin:auto;padding:32px 24px 60px}.article-head{background:white;padding:34px;border:1px solid var(--line);border-radius:20px 20px 0 0;border-top:4px solid var(--purple)}.article-head h1{margin:16px 0}.meta{font-size:14px;color:var(--muted)}.detail-content{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 20px 20px;padding:32px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:34px;align-items:start;min-width:0}.gallery,.copy{min-width:0}.thumbs{min-width:0;max-width:100%}.photo-main{width:100%;max-height:650px;object-fit:contain;background:#f6eff4;border-radius:12px;display:block}.photo-link{display:block}.photo-caption{font-size:12px;color:var(--muted);margin:9px 0 12px}.thumbs{display:flex;gap:10px}.thumbs button{width:65px;height:82px;padding:3px;border-radius:7px}.thumbs button[aria-pressed=true]{border:2px solid var(--purple)}.thumbs img{width:100%;height:100%;object-fit:cover;border-radius:4px}.copy h2{margin:0 0 12px}.copy p{margin:0 0 16px}.facts{margin:20px 0;padding:18px 0;border-block:1px solid var(--line)}.facts div{display:flex;gap:16px;margin:8px 0}.facts dt{color:var(--muted);font-size:14px;min-width:70px}.facts dd{margin:0;font-size:14px}.offers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.offer{background:#f7f0f5;padding:14px;border-radius:10px}.offer span{font-size:13px;display:block}.offer strong{color:var(--purple);font-size:27px}.notes{font-size:14px;padding-left:20px;color:var(--muted)}.sale{display:block;padding:17px 20px;background:var(--purple);color:#fff;border-radius:12px;margin:12px 0}.sale strong,.sale small{display:block}.sale small{opacity:.85;font-size:13px}.source{border-top:1px solid var(--line);margin-top:22px;padding-top:18px;font-size:12px;color:var(--muted)}.no-photo{background:var(--soft);padding:50px 24px;border-radius:12px;text-align:center;color:var(--purple)}.no-photo strong{display:block;font-size:24px;margin-bottom:8px}.copy section{margin-bottom:26px}.error{padding:60px;text-align:center}.error a{color:var(--purple);text-decoration:underline}@media(max-width:700px){.top{height:75px;padding:0 20px}.top-note{display:none}.shell{padding:24px 14px}.intro{margin-bottom:22px}h1{font-size:28px}.intro>p:last-child{font-size:14px}.filters{padding:16px;gap:10px;flex-wrap:wrap}label{max-width:none;min-width:120px}.quiet{width:100%}.calendar-head{padding:18px 16px 4px;flex-wrap:wrap}.month-nav{gap:12px}.data-note{margin:10px 16px 18px}.calendar{display:block;padding:0 12px 12px}.weekday,.day.other,.day:not(:has(.event-link)){display:none}.day{min-height:0;border-right:0;padding:12px 0;display:grid;grid-template-columns:35px 1fr;gap:4px}.date{grid-row:1 / span 20}.event-link{font-size:14px;padding:9px 10px;margin:0 0 4px;grid-column:2}.section-head{display:block}.section-head span{display:block;margin-top:4px}.list-item{padding:16px;gap:12px}.date-block{font-size:17px;min-width:60px}.item-main strong{font-size:15px}.detail-shell{padding:24px 14px}.article-head{padding:24px 20px}.detail-content{display:flex;flex-direction:column;padding:20px;gap:28px}.gallery,.copy{width:100%}.photo-main{max-height:510px}.facts div{flex-wrap:wrap;gap:4px 16px}.offers{gap:8px}.error{padding:35px 10px}}

/* Palette and identity adapted from the owner's cafe and Monglerak channels. */
.top{height:94px;background:#fffdfb;border-bottom-color:#eadfe6}
.brand{display:flex;align-items:center;gap:12px;font-size:29px;letter-spacing:-1.4px;color:#6d5157}
.brand img{border-radius:50%;width:56px;height:56px}
.brand .brand-word{display:block;font-size:29px;letter-spacing:-1.4px;color:#6d5157;line-height:1.2}
.brand .brand-word>span{font-size:12px;font-weight:500;letter-spacing:0;margin-top:5px;color:#86717f}
.channel-links{display:flex;align-items:center;gap:24px;font-size:13px;color:#765b78}
.channel-links a:hover{text-decoration:underline;text-underline-offset:5px}
.shell{padding-top:28px}
.intro{display:grid;grid-template-columns:1fr 1.35fr;gap:30px;align-items:center;margin-bottom:26px}
.intro-copy{padding:8px 0}.intro-copy>p:last-child{margin:12px 0 0;color:var(--muted);font-size:15px}
.intro h1{font-size:33px;color:#59424c;letter-spacing:-1.3px}
.eyebrow{font-size:12px;letter-spacing:.3px;color:#88648c}
.brand-scene{display:block;width:100%;height:auto;border-radius:16px}
.workspace{border-radius:18px;box-shadow:0 8px 24px #68406805}
.filters{border-bottom-style:dashed}
.month-nav h2{color:#654b62}
.event-link{border-left-width:2px;border-radius:6px}
.list-item{border-radius:12px}
.article-head{border-top:4px solid #b28ab8;background:#fffcfd}
.article-head h1{color:#59424c}
.offer{border:1px solid #ede0ec}.sale{background:#79567f}
footer strong{font-weight:500;display:inline-block;margin-bottom:5px;color:#886d89}
@media(max-width:700px){
.top{height:auto;min-height:86px;padding:13px 18px;flex-wrap:wrap;gap:12px}
.brand img{width:47px;height:47px}.brand .brand-word{font-size:25px}.brand .brand-word>span{font-size:11px}
.channel-links{width:100%;justify-content:center;gap:24px;border-top:1px solid var(--line);padding-top:10px;font-size:12px}
.intro{grid-template-columns:1fr;gap:15px}.intro-copy{padding:0}.intro h1{font-size:28px}
.brand-scene{max-width:530px;margin:auto;border-radius:12px}.intro-copy>p:last-child{font-size:14px}.intro-copy br{display:none}
}
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:30px repeat(var(--lanes,1),minmax(30px,auto));position:relative;border-top:1px solid var(--line);padding-bottom:5px}
.week .day{grid-row:1 / -1;min-height:0;padding:4px 7px;border-top:0;border-bottom:1px solid var(--line);z-index:0}
.week .event-link{grid-column:var(--start) / span var(--span);grid-row:calc(var(--lane) + 2);z-index:1;min-width:0;margin:1px 3px;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-self:start}
@media(max-width:700px){.week{grid-template-rows:26px repeat(var(--lanes,1),minmax(26px,auto));padding-bottom:4px}.week .day{padding:3px 2px}.week .date{width:23px;height:23px;font-size:11px;margin:0}.week .event-link{font-size:10px;line-height:1.3;padding:4px 3px;margin:1px 2px;white-space:normal;overflow-wrap:anywhere}}
/* Calendar rows share one seven-column grid so continuous event bars line up with day columns. */
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.calendar-grid>.weekday{grid-column:span 1}
.calendar-grid>.week{grid-column:1 / -1}
.week{grid-template-rows:30px repeat(var(--lanes,1),minmax(30px,auto))}
.week .day{grid-row:1 / -1}
.week .event-link{grid-row:calc(var(--lane) + 2)}
@media(max-width:700px){.calendar-grid{display:block}.calendar-grid>.weekday{display:none}.calendar-grid>.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:26px repeat(var(--lanes,1),minmax(26px,auto))}.week .day{display:block;grid-row:1 / -1}.week .event-link{display:block;grid-row:calc(var(--lane) + 2)}}
#calendar>.calendar-grid{grid-column:1 / -1;min-width:0}
.photo-viewer{position:relative;display:grid;place-items:center;background:#f6eff4;border-radius:12px;overflow:hidden}.photo-viewer .photo-link{width:100%}.photo-viewer .photo-main{max-height:650px}.photo-nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;min-height:0;padding:0;border:1px solid #ffffff99;border-radius:50%;background:#493c40aa;color:#fff;font-size:30px;line-height:1;display:grid;place-items:center}.photo-nav:hover{background:#493c40dd}.photo-prev{left:12px}.photo-next{right:12px}.photo-count{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:3px 10px;border-radius:20px;background:#493c40bb;color:#fff;font-size:12px;line-height:1.6}.thumbs{overflow-x:auto;padding:3px 1px 8px}.thumbs button{flex:0 0 65px}.photo-link[hidden]{display:none}

/* Keep the carousel frame and controls stationary as images of different ratios change. */
.photo-viewer{height:clamp(360px,58vw,650px);}
.photo-viewer .photo-link{height:100%;display:grid;place-items:center;overflow:hidden}
.photo-viewer .photo-main{width:100%;height:100%;max-height:none;object-fit:contain}
@media(max-width:700px){.photo-viewer{height:min(125vw,560px);min-height:360px}}
