/* Warm paper, embossed edges and tactile controls. */
:root{--lift-edge:#d7b49a;--lift-shadow:#78452d24;--card-shadow:0 2px 0 #e4d0b7,0 9px 22px #79513612,inset 0 1px 0 #fff,inset 0 0 0 1px #fff8e9;--control-shadow:0 3px 0 var(--lift-edge),0 5px 9px var(--lift-shadow),inset 0 1px 0 #ffffffc9,inset 0 -1px 0 #a67b4620}
body{background-color:#e7d2c8;background-image:radial-gradient(ellipse at 50% 0,#fff7e680,transparent 70%),repeating-linear-gradient(112deg,#a8795810 0,#a8795810 1px,transparent 1px,transparent 8px)}
.page{background-color:#fbf5ec;background-image:radial-gradient(#ad7a4d12 .55px,transparent .7px),linear-gradient(100deg,#f5e4d61a,#fffaf550 48%,#f0d8c515);background-size:5px 5px,100% 100%;box-shadow:0 0 0 1px #dac0a6,0 18px 65px #6f432d26,inset 1px 0 #fff9ec,inset -1px 0 #fff9ec}
.masthead{border-bottom:1px solid #e6cfb0;box-shadow:0 2px 10px #7c48260a}
.hero{border-color:#caa66c;box-shadow:0 2px 0 #cfad86,0 11px 25px #8c503126,inset 0 0 0 1px #fff8e4}
.hero::after{content:'';position:absolute;inset:5px;z-index:2;border:1px solid #fce8bf99;border-radius:3px 3px 17px 17px;box-shadow:inset 0 1px 0 #fff8e8a1;pointer-events:none}
.hero h1{text-shadow:0 1px 0 #fffaf0,0 3px 6px #9d5e3b13}.hero-rule{height:2px;background:linear-gradient(90deg,#a67a33,#ead39c,#a67a33);box-shadow:0 1px 0 #fffaf0}
.section-head{border-left:0;position:relative;padding-left:12px}.section-head::before{content:'';position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:2px;background:linear-gradient(90deg,#9b6e2e,#e5cd91,#a87a34);box-shadow:1px 0 0 #fff8e8,0 2px 3px #835f3626}.section-head h2{text-shadow:0 1px 0 #fffdf3}
.weather-card,.schedule-card,.place-card,.note-card{border:1px solid #e4cfb3;box-shadow:var(--card-shadow);background-color:#fffdf8;background-image:linear-gradient(135deg,#fffefc 0%,#fffaf1 100%)}
.weather-card{background-image:radial-gradient(ellipse at 100% 0,#f1d8a72e,transparent 70%),linear-gradient(135deg,#fffefb,#fff7e7)}
.clothing{border:1px solid #e4d0bb;background:linear-gradient(135deg,#f5e7db,#fbf2e8);box-shadow:inset 0 1px 3px #8c593018,0 1px 0 #fff}
.weather-icon{filter:drop-shadow(0 2px 0 #b1833925) drop-shadow(0 5px 7px #b88b3930)}
.temperature{text-shadow:0 1px 0 #fff,0 2px 2px #7b3f2a0d}
.day-badge,.photo-tag{box-shadow:0 1px 0 #cfb38d,0 2px 5px #6c442a14,inset 0 1px 0 #fff8e6;border:1px solid #e0c9a4}
.timeline-entry::after{background:radial-gradient(circle at 30% 25%,#ffe8b0,#b68d49 80%);box-shadow:0 1px 2px #79522530}
.place-photo{box-shadow:inset 0 -1px 0 #d4bc98}.place-address{border:1px solid #ebdcc6;box-shadow:inset 0 1px 2px #85604012,0 1px 0 #fffdf8;background:linear-gradient(#f5eddc,#fbf5e8)}
.venue{border-color:#c39b62;background-image:radial-gradient(ellipse at 0 0,#d79c7a60,transparent 60%),linear-gradient(135deg,#bc7360,#995146 75%);box-shadow:0 3px 0 #814236,0 9px 20px #78412d24,inset 0 1px 0 #f7d6a97a,inset 0 0 0 4px #fff3cb0a}
.venue h2{text-shadow:0 1px 1px #713b2c55}
:is(.date-tab,.city-tabs button,.weather-dates button,.place-actions>*,.teacher-card,.dialog-close){--lift-edge:#d7b49a;--lift-shadow:#78452d24;position:relative;border:1px solid #d9bfa1;background:linear-gradient(180deg,#fffef9,#f2e3d0);box-shadow:var(--control-shadow);transition:transform .15s ease,box-shadow .15s ease,background .18s ease,border-color .18s ease;touch-action:manipulation}
.weather-dates{gap:7px;margin-bottom:15px}.weather-dates button{min-height:40px;border-radius:9px;font-size:10px;color:#8c6950;padding:6px 2px;text-shadow:0 1px 0 #fff9e9}
.weather-dates button.selected{--lift-edge:#b38355;border-color:#c4a16e;background:linear-gradient(#f8e8c7,#e7c994);color:#80572a;text-shadow:0 1px 0 #fff4d8;box-shadow:var(--control-shadow)}
.date-tabs{margin-bottom:18px}.date-tab{min-height:94px;--lift-edge:#d6bda4;color:#937964}.date-tab strong{text-shadow:0 1px 0 #fffdf6}.date-tab.selected{--lift-edge:#8b4238;--lift-shadow:#924f3733;background:linear-gradient(155deg,#dca392,#bd7361 45%,#a75447);border-color:#ae6b50;box-shadow:var(--control-shadow);color:#fff2dd;text-shadow:0 1px 1px #7d3d3255}.date-tab.selected strong{color:#fff0ca;text-shadow:0 2px 1px #823f314d}
.teacher-card{min-height:69px;--lift-edge:#dfc4aa;--lift-shadow:#79503418;background:linear-gradient(135deg,#fffefa,#fbf1e4);border-color:#e4ceb1;box-shadow:0 2px 0 var(--lift-edge),0 5px 12px var(--lift-shadow),inset 0 1px 0 #fff}
.teacher-avatar{background:radial-gradient(circle at 28% 20%,#fff6e4,#ecd0b5 80%);border-color:#d5b184;box-shadow:0 2px 0 #caab83,0 3px 6px #9668441c,inset 0 1px 0 #fff8e5;text-shadow:0 1px 0 #fff6e8}
.teacher-card .more{background:linear-gradient(#fcf1db,#ebd3ab);border:1px solid #dbbd8c;border-radius:14px;padding:4px 8px;color:#936826;box-shadow:0 2px 0 #c6a374,inset 0 1px #fff6dd;font-size:9px}
.city-tabs{margin-bottom:21px}.city-tabs button{min-height:42px;color:#8e6e56;text-shadow:0 1px 0 #fff9e9}.city-tabs button.selected{--lift-edge:#873f35;--lift-shadow:#974d3933;background:linear-gradient(#cc8d79,#ae5b4d);border-color:#ac6751;color:#fff1d3;text-shadow:0 1px 1px #78392e55;box-shadow:var(--control-shadow)}
.place-actions{gap:11px;margin-top:15px;margin-bottom:4px}.place-actions>*{--lift-edge:#8b4236;--lift-shadow:#8c4d3330;min-height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(#ce907b,#ae594a);color:#fff3d6;border-color:#af6953;border-radius:8px;text-shadow:0 1px 1px #703a2d55;box-shadow:var(--control-shadow)}
.place-actions>*+*{--lift-edge:#b58b4a;--lift-shadow:#9d753126;background:linear-gradient(#faebc6,#e2c181);border-color:#cba764;color:#78521e;text-shadow:0 1px 0 #fff1ce;box-shadow:var(--control-shadow)}
.weather-source a{padding:2px 5px;border:1px solid #e6d2af;border-radius:5px;background:linear-gradient(#fff9eb,#f1e2c6);box-shadow:0 1px 0 #cfb58b,inset 0 1px #fff}
.bottom-nav{border-top:1px solid #c8a87b;background:linear-gradient(180deg,#fffdf9fa,#f7ebdbfa);box-shadow:0 -5px 22px #79513118,inset 0 1px 0 #fff6de;gap:5px;padding-top:8px;padding-bottom:calc(9px + env(safe-area-inset-bottom))}.bottom-nav a{min-height:46px;justify-content:center;border-radius:10px;border:1px solid transparent;transition:transform .15s ease,box-shadow .15s ease,background .18s ease;color:#9c846a}.bottom-nav a.active{border-color:#e3c7a2;background:linear-gradient(#fff7e9,#ead4b9);color:#a45343;box-shadow:0 2px 0 #c4a481,0 3px 7px #895b3720,inset 0 1px 0 #fffdf1;text-shadow:0 1px #fff9eb}.bottom-nav a.active svg{filter:drop-shadow(0 1px 0 #fff6df)}
.dialog-close{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;top:11px;right:12px;font-size:24px;--lift-edge:#ceb08f;color:#96764f}
dialog{border-color:#c9a975;background-image:linear-gradient(125deg,#fffdf7,#fcf0dd);box-shadow:0 3px 0 #b88e5c,0 25px 70px #54342e55,inset 0 1px 0 #fff}
@media(hover:hover) and (pointer:fine){:is(.date-tab,.city-tabs button,.weather-dates button,.place-actions>*,.teacher-card,.dialog-close):hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--lift-edge),0 9px 17px var(--lift-shadow),inset 0 1px 0 #ffffffd9}.bottom-nav a:hover{background-color:#f5e4ce;transform:translateY(-1px)}}
:is(.date-tab,.city-tabs button,.weather-dates button,.place-actions>*,.teacher-card,.dialog-close):active{transform:translateY(2px);box-shadow:0 1px 0 var(--lift-edge),0 2px 3px var(--lift-shadow),inset 0 2px 4px #73422320}.bottom-nav a:active{transform:translateY(2px);box-shadow:inset 0 2px 4px #73422322}
:is(.date-tab,.city-tabs button,.weather-dates button,.place-actions>*,.teacher-card,.dialog-close):focus-visible,.bottom-nav a:focus-visible{outline:2px solid #9b6330;outline-offset:4px}
@media(max-width:360px){.teacher-card .more{font-size:8px;padding:3px 5px}.teacher-card{gap:9px}.weather-dates button{font-size:9px}.date-tabs{gap:7px}}
@media(prefers-reduced-motion:reduce){:is(.date-tab,.city-tabs button,.weather-dates button,.place-actions>*,.teacher-card,.dialog-close),.bottom-nav a{transition:none} :is(.date-tab,.city-tabs button,.weather-dates button,.place-actions>*,.teacher-card,.dialog-close):is(:hover,:active),.bottom-nav a:is(:hover,:active){transform:none}}
:is(.date-tab,.city-tabs button,.weather-dates button,.place-actions>*,.teacher-card,.dialog-close){--control-shadow:0 3px 0 var(--lift-edge),0 5px 9px var(--lift-shadow),inset 0 1px 0 #ffffffc9,inset 0 -1px 0 #a67b4620}
.weather-dates button,.city-tabs button,.place-actions>*{min-height:44px}.dialog-close{width:40px;height:40px}
/* Keep primary action labels legible over the raised red surface. */
.place-actions>button,.place-actions>a{background:linear-gradient(#ce907b,#ae594a);color:#fff3d6}
.place-actions>a{background:linear-gradient(#faebc6,#e2c181);color:#78521e}
