*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--navy: #0D3B6E;--gold: #C9960A;--text: #1a1a2a;--muted: #8a8a9a;--line: #e4e4ec;--bg: #ffffff;--space-xs: clamp(.4rem, 1vmin, .6rem);--space-sm: clamp(.7rem, 2vmin, 1rem);--space-md: clamp(1rem, 3vmin, 1.75rem);--space-lg: clamp(1.5rem, 4vmin, 2.5rem);--space-xl: clamp(2rem, 5vmin, 3.5rem);--fs-eyebrow: clamp(.58rem, 1.2vmin, .72rem);--fs-title: clamp(1.6rem, 5vmin, 3.4rem);--fs-loc: clamp(.7rem, 1.4vmin, .85rem);--fs-msg: clamp(.95rem, 2.2vmin, 1.25rem);--fs-cdnum: clamp(1.6rem, 5vmin, 3rem);--fs-cdlbl: clamp(.52rem, 1vmin, .62rem);--fs-input: clamp(.82rem, 1.6vmin, .92rem);--fs-foot: clamp(.65rem, 1.2vmin, .75rem)}html{height:100%;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}body{min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#app{min-height:100svh;display:flex;flex-direction:column;padding:clamp(1.2rem,4svh,3.5rem) clamp(1.2rem,6vw,3.5rem) clamp(1rem,3svh,2.5rem) clamp(1.2rem,6vw,3.5rem);max-width:720px;margin:0 auto;width:100%}.main{flex:1;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:var(--fs-eyebrow);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-md);opacity:0;animation:up .5s ease .1s forwards}.school-name{font-family:Playfair Display,Georgia,serif;font-size:var(--fs-title);font-weight:700;color:var(--navy);line-height:1.08;letter-spacing:-.01em;margin-bottom:var(--space-xs);opacity:0;animation:up .5s ease .18s forwards}.school-location{font-size:var(--fs-loc);color:var(--muted);letter-spacing:.04em;margin-bottom:var(--space-lg);opacity:0;animation:up .5s ease .26s forwards}.divider{width:36px;height:2px;background:var(--gold);margin-bottom:var(--space-md);opacity:0;animation:up .5s ease .3s forwards}.message{font-family:Playfair Display,Georgia,serif;font-size:var(--fs-msg);font-style:italic;line-height:1.6;margin-bottom:var(--space-xl);opacity:0;animation:up .5s ease .38s forwards}.countdown{display:flex;align-items:flex-start;gap:clamp(1rem,4vw,2.8rem);margin-bottom:var(--space-xl);opacity:0;animation:up .5s ease .46s forwards;flex-wrap:wrap}.cd-block{display:flex;flex-direction:column;gap:clamp(2px,.5vmin,5px);flex-shrink:0}.cd-num{font-family:Playfair Display,Georgia,serif;font-size:var(--fs-cdnum);font-weight:700;color:var(--navy);line-height:1;min-width:2ch;display:inline-block}.cd-num.tick{animation:blink .28s ease}.cd-label{font-size:var(--fs-cdlbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.cd-sep{font-family:Playfair Display,serif;font-size:var(--fs-cdnum);font-weight:300;color:var(--line);line-height:1;flex-shrink:0;-webkit-user-select:none;user-select:none}.notify-section{opacity:0;animation:up .5s ease .54s forwards}.notify-label{font-size:clamp(.72rem,1.4vmin,.8rem);color:var(--muted);margin-bottom:var(--space-xs)}.notify-row{display:flex;gap:8px;width:100%;max-width:440px}.notify-input{flex:1;min-width:0;padding:clamp(8px,1.5vmin,11px) clamp(10px,2vw,14px);border:1px solid var(--line);border-radius:4px;font-family:Inter,sans-serif;font-size:var(--fs-input);color:var(--text);background:#fff;outline:none;transition:border-color .2s;-webkit-appearance:none}.notify-input::placeholder{color:#c0c0cc}.notify-input:focus{border-color:var(--navy)}.notify-btn{padding:clamp(8px,1.5vmin,11px) clamp(14px,3vw,22px);background:var(--navy);color:#fff;border:none;border-radius:4px;font-family:Inter,sans-serif;font-size:clamp(.75rem,1.4vmin,.84rem);font-weight:500;letter-spacing:.04em;cursor:pointer;transition:background .2s;white-space:nowrap;flex-shrink:0;-webkit-tap-highlight-color:transparent}.notify-btn:hover{background:#0a2f5a}.notify-btn:active{background:#061d3a}.notify-btn:disabled{opacity:.5;cursor:default}.notify-success{font-size:clamp(.78rem,1.4vmin,.84rem);color:var(--gold);padding:clamp(6px,1vmin,10px) 0}.footer{flex-shrink:0;border-top:1px solid var(--line);padding-top:clamp(.8rem,2svh,1.5rem);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;opacity:0;animation:fadeIn .6s ease .8s forwards}.footer-left{font-size:var(--fs-foot);color:var(--muted);line-height:1.7}.footer-left a{color:var(--muted);text-decoration:none}.footer-left a:hover{color:var(--navy)}.footer-right{display:flex;gap:6px;align-items:center}.house-dot{width:clamp(6px,1vmin,8px);height:clamp(6px,1vmin,8px);border-radius:50%;opacity:.35;transition:opacity .2s;cursor:default}.house-dot:hover{opacity:1}.h-b{background:#3b82f6}.h-r{background:#ef4444}.h-g{background:#22c55e}.h-y{background:#eab308}@keyframes up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes blink{0%,to{opacity:1}50%{opacity:.25}}@media (max-height: 480px) and (orientation: landscape){#app{padding-top:clamp(.7rem,2svh,1.2rem);padding-bottom:clamp(.5rem,1.5svh,1rem);max-width:900px}.school-name{font-size:clamp(1.3rem,4.5vw,2.2rem)}.school-location{margin-bottom:var(--space-sm)}.message{margin-bottom:var(--space-md);font-size:clamp(.85rem,1.8vw,1.05rem)}.countdown{margin-bottom:var(--space-md)}.divider{margin-bottom:var(--space-sm)}.main{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;column-gap:clamp(1.5rem,4vw,3rem);align-content:center}.eyebrow{grid-column:1;grid-row:1}.school-name{grid-column:1;grid-row:2}.school-location{grid-column:1;grid-row:3}.divider{grid-column:2;grid-row:1;align-self:end}.message{grid-column:2;grid-row:2}.countdown{grid-column:2;grid-row:3;margin-bottom:0}.notify-section{grid-column:1 / -1;grid-row:4;margin-top:var(--space-sm)}}@media (min-width: 768px){#app{max-width:760px}}@media (min-width: 1200px){#app{max-width:820px}}@media (min-width: 1800px){#app{max-width:960px}}@media (max-width: 359px){.cd-sep{display:none}.countdown{gap:clamp(.7rem,3vw,1.2rem)}.notify-row{flex-direction:column}.notify-btn{width:100%;text-align:center}.footer-left{font-size:.62rem}}@media print{#app{padding:2rem}.notify-section,.footer-right{display:none}}
