@font-face{font-family:Kai;src:url('/font')}*{box-sizing:border-box}body{margin:0;color:#462a19;background:#faf4e8;font:18px/1.5 Kai,DFKai-SB,BiauKai,serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:#fffaf0;border:1px solid #cdb693;border-radius:24px;padding:10px 16px;white-space:nowrap}button:hover{background:#efe3ca}button:disabled{opacity:.45;cursor:default}.primary{background:#235746;color:white}.danger{color:#922f24}header{max-width:1350px;margin:auto;padding:24px;display:flex;justify-content:space-between;align-items:center;gap:16px}h1{font-size:32px;margin:4px 0}h2{font-size:25px}h3{font-size:21px}p{margin:8px 0}small{font-size:14px}main{max-width:1350px;padding:0 24px 40px;margin:auto}nav,.actions,.filters{display:flex;gap:10px;flex-wrap:wrap}.filters{padding:18px;background:#fffaf1;border:1px solid #eadbc3;border-radius:18px;margin-bottom:20px}label{display:flex;flex-direction:column;gap:5px;min-width:0}.filters label{flex:1 1 130px}.filters .search{flex-basis:250px}input,select,textarea{width:100%;min-width:0;max-width:100%;padding:10px;border:1px solid #cdb693;border-radius:10px;background:white}textarea{min-height:90px;resize:vertical}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:20px}.tile{background:#fffaf1;border:1px solid #e0cba7;border-radius:20px;overflow:hidden;box-shadow:0 8px 20px #67411a0a;cursor:pointer;min-width:0;text-align:left;padding:0;white-space:normal}.tile .tile-food{width:100%;height:150px;object-fit:cover;display:block}.tile .tile-art{width:100%;height:220px;object-fit:cover;object-position:center}.tile-info{padding:12px 16px}.tile h3{margin:3px 0}.tile .date{font-size:16px}.empty{text-align:center;padding:70px 15px;background:#fffaf0;border-radius:20px}.detail-grid{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:28px;align-items:start;margin-top:20px}.card{background:#fffaf1;border:2px solid #bba071;border-radius:20px;overflow:hidden;box-shadow:0 10px 25px #56371b14;min-width:0}.card-top{padding:12px;background:#eadcc3;display:flex;justify-content:center;align-items:center;gap:8px}.pill{font-size:24px;border:1px solid #bda477;padding:4px 20px;border-radius:25px;background:#fff9e8;white-space:nowrap}.badge{font-size:14px;border:1px solid #bda477;border-radius:14px;padding:3px 8px;white-space:nowrap}.food-area{height:260px;position:relative}.food-area img{width:100%;height:100%;object-fit:cover}.food-label{position:absolute;bottom:0;left:0;right:0;padding:18px 14px 10px;color:white;background:linear-gradient(transparent,#000b);text-shadow:0 1px 3px #000}.food-label strong{font-size:22px}.quote{padding:12px;text-align:center;font-size:21px}.performance{width:100%;height:370px;object-fit:cover;object-position:center;display:block}.bottom{display:flex;align-items:center;justify-content:center;gap:5px;padding:10px 5px;white-space:nowrap;font-size:14px}.bottom .score{font-size:20px}.stars{position:relative;display:inline-block;color:#d7cdb9;white-space:nowrap;font-size:17px;line-height:1}.stars .fill{position:absolute;left:0;top:0;overflow:hidden;color:#eaa119}.back{padding:18px;min-height:650px}.person{border-bottom:1px solid #e2d4bc;padding:12px 0;display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px}.person img{width:64px;height:74px;object-fit:contain}.comment{white-space:pre-wrap;overflow-wrap:anywhere;font-size:18px}.metadata{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px}.metadata dd{margin:0;overflow-wrap:anywhere}.panel{background:#fffaf1;border:1px solid #e0cba7;border-radius:18px;padding:20px;min-width:0}.gallery{display:grid;grid-template-rows:2fr 1fr;gap:12px;height:460px}.preview{width:100%;height:100%;min-height:0;object-fit:contain;background:#f0e7d7;border-radius:14px}.thumbs{display:flex;gap:8px;min-width:0;align-items:center}.thumb{padding:4px;position:relative;border-radius:10px;flex:1;min-width:0;height:110px}.thumb img{width:100%;height:100%;object-fit:cover;border-radius:6px}.thumb.selected{outline:2px solid #28634f}.thumb .badge{position:absolute;bottom:4px;left:3px;background:#fff9}.revision{padding:12px;border-bottom:1px solid #e0cba7;overflow-wrap:anywhere}dialog{border:1px solid #cdb693;border-radius:18px;width:min(760px,calc(100% - 24px));max-height:90dvh;padding:22px;background:#fffaf1}dialog::backdrop{background:#21150766}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.span{grid-column:1/-1}.participant-form{background:#f4ead8;padding:14px;border-radius:12px;margin:12px 0}.photo-option{display:flex;flex-direction:row;align-items:center;margin:8px 0}.photo-option input{width:auto}.photo-option img{width:65px;height:50px;object-fit:cover}.footer-note{font-size:16px;color:#785e49}#notice{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);max-width:calc(100% - 24px);padding:10px 18px;background:#423024;color:white;border-radius:14px;z-index:10;pointer-events:none}#notice:empty{display:none}.date-heading{margin-top:26px}details{margin:12px 0}summary{cursor:pointer}.actions{margin:14px 0}.back-link{margin-bottom:12px}@media(max-width:700px){header{display:block;padding:18px 14px}header nav{margin-top:16px}main{padding:0 12px 30px}.detail-grid{grid-template-columns:1fr;gap:18px}.filters{padding:12px}.filters label{flex-basis:120px}.form-grid{grid-template-columns:1fr}.span{grid-column:auto}.panel{padding:14px}.gallery{height:350px}.thumb{height:90px}.pill{font-size:23px;padding:4px 16px}.food-area{height:240px}.performance{height:345px}.bottom{font-size:14px;gap:4px}.bottom .score{font-size:19px}.bottom .stars{font-size:16px}h1{font-size:29px}.grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* STEP 8.1: food integrity takes precedence over filling the stage. */
.tile .tile-food{object-fit:contain;background:#f1e9d9}
.food-area{height:280px;background:#f1e9d9}
.food-area img{display:block;object-fit:contain;object-position:center;image-orientation:from-image}
.food-label{position:static;color:#442b1d;background:#fff9ed;text-shadow:none;padding:10px 14px}
.preview{border-radius:0;image-orientation:from-image}
.gallery{grid-template-rows:minmax(0,2fr) minmax(0,1fr)}
.thumbs{overflow-x:auto;overflow-y:hidden;padding:5px;scroll-padding:5px;overscroll-behavior-x:contain}
.thumb{flex:0 0 96px;min-width:96px}
.detail-grid>section,.panel,#gallery,#card-face{min-width:0}
@media(max-width:600px){.food-area{height:270px}.thumb{flex-basis:88px;min-width:88px}.gallery{height:360px}}
