:root{--paper:#f5f6f1;--ink:#203d32;--muted:#526357;--green:#234e3c;--yellow:#f3d76a;--white:#fff;--soft:#e7eddf;--field:#eef1e9;--radius:16px;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s5:48px;--s6:80px;font-family:"MiSans","HarmonyOS Sans SC","Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;font-size:16px;line-height:1.65}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px;scrollbar-color:var(--muted) var(--paper)}body{margin:0}body.modal-open{overflow:hidden}::selection{background:var(--yellow);color:var(--ink)}button,input,select{font:inherit;color:inherit}input{caret-color:var(--green)}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none;text-underline-offset:5px}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:4px}img{display:block;max-width:100%;object-fit:contain}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;flex-shrink:0}button{border:0}h1,h2,h3,h4,p{margin:0}h1,h2,h3{letter-spacing:-.03em;text-wrap:balance}p{text-wrap:pretty}h2{font-size:40px;line-height:1.3}h3{font-size:20px;line-height:1.5}.shell{width:min(1280px,calc(100% - 64px));margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}[hidden]{display:none!important}.topbar{background:var(--paper)}.header-inner{height:96px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:20px;font-weight:800}.brand img{width:48px;height:48px}.nav{display:flex;gap:32px}.nav a{padding:12px 0}.nav a:hover,.text-link:hover,.footer-links a:hover{text-decoration:underline}.primary,.quiet,.text-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;gap:16px;padding:12px 24px;border:0;border-radius:999px;font-size:16px;font-weight:700;line-height:1.5;transition:transform .2s,background-color .2s}.primary{background:var(--green);color:var(--white)}.primary:hover{background:var(--ink);transform:translateY(-2px)}.primary:active,.quiet:active{transform:translateY(1px)}.quiet{background:var(--soft)}.quiet:hover{background:#dce5d5}.text-button{background:transparent;padding-inline:0}.text-button:hover{text-decoration:underline}.hero{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:570px;padding:64px 64px 88px;background:var(--yellow);border-radius:var(--radius);isolation:isolate}.hero-copy{position:relative;z-index:2}.hero h1{font-size:clamp(56px,5.4vw,78px);line-height:1.18;font-weight:900;margin-bottom:24px}.hero-copy>p{font-size:16px;line-height:1.85}.hero-action{margin-top:32px}.hero-copy .hero-note{font-size:13px;margin-top:20px;color:var(--ink)}.hero-art{position:relative;align-self:stretch;min-height:410px}.hero-main-art{width:90%;max-width:440px;position:absolute;top:10px;right:0;animation:hello 6s ease-in-out infinite}.hero-friend{position:absolute;width:32%;max-width:160px}.friend-one{left:-4%;bottom:-10px;transform:rotate(-12deg)}.friend-two{right:-5%;bottom:-35px;transform:rotate(12deg)}.hero-copy>*{animation:arrive .65s both}.hero-copy>p{animation-delay:.08s}.hero-copy>.hero-action{animation-delay:.16s}.hero-copy>.hero-note{animation-delay:.24s}.school-section{padding-block:80px}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:32px}.section-head p{margin-top:12px}.section-head>span{font-size:13px;color:var(--muted);white-space:nowrap}.catalog-controls{background:var(--soft);padding:24px;border-radius:var(--radius);margin-bottom:24px}.search-row{display:flex;gap:16px}.search{display:flex;align-items:center;gap:12px;flex:1;min-width:0;background:var(--white);padding:0 20px;border-radius:999px}.search input{width:100%;min-width:0;border:0;background:transparent;min-height:54px;outline-offset:0}.search input:focus-visible{outline:0}.search:focus-within{outline:3px solid var(--green);outline-offset:3px}.search input::placeholder{color:var(--muted)}.region-label select{min-height:54px;max-width:100%;border:0;padding:0 40px 0 20px;background:var(--white);border-radius:999px;cursor:pointer}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px}.filters{display:flex;gap:8px;flex-wrap:wrap}.filter{font-size:13px;min-height:44px;padding:10px 18px;border-radius:999px;background:transparent;transition:background-color .2s}.filter:hover{background:var(--white)}.filter.selected{background:var(--green);color:var(--white)}.reset-button{min-height:44px;background:none;font-size:13px;text-decoration:underline;white-space:nowrap}.school-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.school-card{position:relative;display:flex;flex-direction:column;align-items:center;background:var(--white);border-radius:var(--radius);padding:20px 16px 16px;min-width:0;text-align:center;transition:background-color .2s}.school-card:hover{background:var(--field)}.school-card .seal{width:96px;height:96px;margin:20px 0;background:var(--seal,var(--soft));transition:transform .25s}.seal{display:grid;place-items:center;flex-shrink:0;border-radius:50%;overflow:hidden}.seal-art{width:100%;height:100%;object-fit:cover;border-radius:50%}.seal:hover{transform:rotate(-5deg) scale(1.04)}.school-meta{min-width:0;width:100%;flex:1}.school-meta strong{display:block;font-size:16px;line-height:1.6;font-weight:750;overflow-wrap:anywhere}.school-meta small{display:block;font-size:13px;line-height:1.7;color:var(--muted);margin:8px 0 20px;overflow-wrap:anywhere}.card-topline{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:22px;color:var(--muted);font-size:13px;text-align:left}.school-meta strong a:hover{text-decoration:underline}.community-button{background:var(--soft);border:0;border-radius:10px;font-size:13px;min-height:44px;padding:10px 8px;width:100%;white-space:normal;overflow-wrap:anywhere;font-weight:700;transition:background-color .2s,transform .2s}.community-button:hover{background:var(--yellow);transform:translateY(-2px)}.tag-featured{font-size:13px;color:var(--green);display:block}.map-footer{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:24px;font-size:13px;color:var(--muted);min-height:48px}.community-section{background:var(--soft);padding-block:64px}.community-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;align-items:center}.community-copy>p{margin:20px 0 24px}.sample-art{display:flex;margin-top:32px;gap:0}.sample-art img{width:144px;height:144px}.sample-art img+img{margin-left:-16px;transform:rotate(8deg)}.community-copy .sample-note{font-size:13px;color:var(--muted);margin-top:8px}.creations{padding:40px;background:var(--white);border-radius:var(--radius)}.creations>p{font-size:13px;color:var(--muted);margin-top:8px}.community-list{margin-top:24px}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px 16px;gap:12px;min-height:220px}.empty img{width:120px;height:120px}.empty strong{font-size:16px}.empty p{font-size:13px;max-width:30ch;color:var(--muted)}.empty-filter{grid-column:1/-1;padding:48px 24px;text-align:center;background:var(--white);border-radius:var(--radius)}.empty-filter button{margin-top:16px}.community-item{display:grid;grid-template-columns:60px 1fr auto;gap:16px;align-items:center;background:var(--field);padding:16px;width:100%;margin-top:12px;border-radius:var(--radius);text-align:left}.community-item strong{display:block;font-size:16px}.community-item small{display:block;font-size:13px;color:var(--muted)}.mini-art{width:60px;height:60px}.score{font-size:13px}.rules-section{display:grid;grid-template-columns:1fr 1.1fr;gap:80px;padding-block:80px;align-items:start}.rules-intro>p{max-width:32ch;margin:24px 0}.text-link{display:inline-flex;align-items:center;min-height:44px;font-weight:700;text-decoration:underline}.schedule{background:var(--white);border-radius:var(--radius);overflow:hidden}.daily-strip{background:var(--green);color:var(--white);padding:32px}.daily-strip p{font-size:13px;margin-top:8px}.countdown{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px}.countdown>span{font-size:13px}.clock{font-size:20px;font-weight:750;font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1.2}.timeline{margin-top:20px;height:6px;background:#496754;border-radius:99px;overflow:hidden}.timeline>div{height:100%;background:var(--yellow)}.schedule-list{list-style:none;margin:0;padding:8px 32px 32px}.schedule-list li{display:grid;grid-template-columns:120px 1fr;gap:16px;padding-top:32px}.schedule-list>li>strong{font-size:13px;padding-top:5px;font-variant-numeric:tabular-nums}.schedule-list h3{font-size:16px}.schedule-list p{font-size:13px;color:var(--muted);margin-top:8px}.footer .preview-note{font-size:13px;color:#e3e9dd;max-width:48ch;margin-top:24px}.footer{background:var(--green);color:var(--white);position:relative;z-index:0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:40px;min-height:300px;padding-block:48px}.footer-name{font-weight:800;font-size:40px;letter-spacing:-.03em}.footer p{font-size:13px;margin-top:16px;color:#e3e9dd}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.footer-links>a,.admin-link{min-height:44px;display:flex;align-items:center}.admin-link{background:transparent;color:inherit;padding:0;font-size:13px}.footer img{width:160px;height:160px}.footer a:focus-visible,.footer button:focus-visible{outline-color:var(--yellow)}main{position:relative;z-index:1;background:var(--paper);padding-top:8px}.modal-wrap{display:none;position:fixed;inset:0;background:#102c2399;z-index:50;padding:24px;align-items:center;justify-content:center}.modal-wrap.open{display:flex}.modal{position:relative;width:min(760px,100%);max-height:90dvh;overflow:auto;background:var(--paper);border-radius:var(--radius);padding:40px;animation:arrive .2s ease-out}.modal.narrow{max-width:540px}.modal h2{font-size:28px;line-height:1.4;padding-right:24px}.modal-close{position:absolute;right:16px;top:16px;width:44px;height:44px;border:0;border-radius:50%;background:var(--soft);font-size:24px;display:grid;place-items:center}.modal-intro{font-size:13px;color:var(--muted);margin:16px 0 24px}.community-head{display:flex;align-items:center;gap:16px;padding:20px;background:var(--soft);border-radius:var(--radius)}.community-head .seal{width:64px;height:64px}.community-heading{flex:1;min-width:0}.community-heading strong{font-size:16px}.community-heading p{font-size:13px;color:var(--muted)}.community-head .quiet{font-size:13px;background:var(--white)}.community-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0}.community-actions h3{font-size:16px}.community-actions .primary{font-size:13px}.submission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.submission-grid .empty{grid-column:1/-1}.submission{padding:16px;background:var(--white);border-radius:var(--radius);position:relative}.submission-img{aspect-ratio:1;overflow:hidden;border-radius:var(--radius)}.submission-img img{width:100%;height:100%;object-fit:cover}.submission h4{font-size:16px;margin-top:12px;overflow-wrap:anywhere}.submission small{font-size:13px;color:var(--muted)}.vote-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:16px;font-size:13px}.vote-btn{background:var(--green);color:var(--white);min-height:44px;padding:8px 12px;border-radius:999px;font-size:13px}.winner-badge{font-size:13px;font-weight:700}.field{margin-top:20px}.field>label:first-child{font-weight:700;font-size:13px;display:block;margin-bottom:8px}.field input:not([type=file]),.field select{width:100%;min-height:48px;border:1px solid #99a896;border-radius:8px;background:var(--white);padding:10px 14px;font-size:16px}.field input::placeholder{color:var(--muted)}.field input[type=file]{width:100%;font-size:13px}.upload-zone{position:relative;min-height:190px;padding:24px;display:grid;place-items:center;text-align:center;background:var(--soft);border:2px dashed #77896f;border-radius:var(--radius);cursor:pointer;overflow:hidden}.upload-zone:focus-within{outline:3px solid var(--green);outline-offset:3px}.upload-zone input{position:absolute;inset:0;opacity:0;height:100%;cursor:pointer}.upload-zone strong{display:block;font-size:16px;margin:8px 0}.upload-zone small{font-size:13px;color:var(--muted)}.upload-symbol{font-size:28px}.upload-preview{display:none;max-width:140px;max-height:140px;border-radius:50%}.upload-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.toast{position:fixed;bottom:24px;left:50%;z-index:60;transform:translate(-50%,12px);max-width:calc(100% - 32px);background:var(--green);color:var(--white);padding:16px 24px;border-radius:var(--radius);opacity:0;pointer-events:none;font-size:16px;transition:transform .2s,opacity .2s}.toast.show{opacity:1;transform:translate(-50%,0)}.skip-link{position:fixed;left:16px;top:-80px;z-index:80;background:var(--green);color:var(--white);padding:12px 24px}.skip-link:focus{top:8px}.reveal.is-visible{animation:arrive .7s cubic-bezier(.16,1,.3,1) both}.school-card.is-visible{animation:arrive .5s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--delay,0ms)}@keyframes arrive{from{opacity:.5;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes hello{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-10px) rotate(1deg)}}
@media(min-width:1600px){.hero h1{font-size:78px}}
@media(max-width:1100px){.hero{padding:48px 40px 80px;min-height:500px}.hero h1{font-size:56px}.hero-art{min-height:340px}.hero-main-art{top:32px}.school-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.community-layout,.rules-section{gap:40px}.nav{gap:20px}.footer-name{font-size:32px}}
@media(max-width:760px){.shell{width:calc(100% - 40px)}.nav{display:none}.header-inner{height:80px}.brand{font-size:16px;gap:8px}.brand img{width:40px;height:40px}.header-cta{font-size:13px;padding:10px 18px;min-height:44px}.hero{grid-template-columns:1fr;padding:36px 28px 60px;min-height:0}.hero h1{font-size:56px;line-height:1.2;margin-bottom:16px}.hero-copy>p{font-size:16px}.hero-action{margin-top:24px}.hero-art{min-height:280px;margin-top:12px}.hero-main-art{width:240px;height:240px;right:calc(50% - 130px);top:0}.hero-friend{width:104px;height:104px;max-width:none}.friend-one{left:0;bottom:0}.friend-two{right:0;bottom:12px}.hero-copy .hero-note{margin-top:16px}.school-section{padding-block:48px}.section-head{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:24px}h2{font-size:32px}.section-head p{margin-top:12px}.catalog-controls{padding:16px}.search-row{gap:12px;flex-direction:column}.search{padding-inline:16px}.region-label select{width:100%;min-height:48px}.filter-row{gap:8px;align-items:flex-start;flex-direction:column}.filters{width:100%;gap:0;justify-content:space-between}.filter{padding-inline:12px}.school-card{padding:16px 12px 12px}.school-card .seal{width:80px;height:80px;margin:16px 0}.school-meta strong{font-size:13px;min-height:42px;display:flex;align-items:center;justify-content:center}.school-meta small{min-height:44px;margin:6px 0 16px}.card-topline{flex-wrap:wrap}.school-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.map-footer{gap:16px;align-items:flex-start;flex-direction:column}.map-footer .quiet{width:100%}.community-section{padding-block:40px}.community-layout{grid-template-columns:1fr;gap:32px}.community-copy{position:relative}.sample-art{position:absolute;right:0;bottom:14px;margin:0;pointer-events:none}.sample-art img{width:88px;height:88px}.sample-art img+img{margin-left:-20px}.community-copy .sample-note{margin-top:20px;max-width:24ch}.creations{padding:24px}.rules-section{grid-template-columns:1fr;gap:32px;padding-block:48px}.rules-intro>p{max-width:100%;margin:16px 0}.daily-strip{padding:24px}.schedule-list{padding:0 24px 24px}.schedule-list li{grid-template-columns:1fr;gap:8px;padding-top:24px}.schedule-list>li>strong{padding:0;color:var(--muted)}.footer{position:static}.footer-inner{min-height:260px;gap:24px;flex-wrap:wrap;padding-block:40px}.footer-name{font-size:28px}.footer-links{flex-direction:row;flex-wrap:wrap;gap:16px}.footer img{display:none}.modal-wrap{padding:12px}.modal{padding:28px 20px;max-height:92dvh}.modal h2{font-size:24px}.community-head{flex-wrap:wrap;padding:16px}.community-head .quiet{width:100%}.community-actions{align-items:flex-start;flex-direction:column}.submission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-actions .primary,.upload-actions .quiet{font-size:13px;padding-inline:16px}.toast{width:max-content;font-size:13px}}
@media(max-width:360px){.hero h1{font-size:44px}.hero{padding-inline:24px}.hero-art{min-height:240px}.hero-main-art{width:210px;height:210px;right:calc(50% - 115px)}.hero-friend{width:88px;height:88px}.sample-art img{width:64px;height:64px}.filter{padding-inline:8px}.school-card{padding:14px 8px 10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.footer{position:static}}

/* Task flow refinements: navigation, round states, resilient forms. */
:root { --error:#9b3226; --error-surface:#fff0eb; --ease-out:cubic-bezier(.16,1,.3,1); }
html { scroll-padding-top:112px; }
.topbar { position:sticky; top:0; z-index:20; }
.header-inner { height:80px; }
.nav a { min-height:44px; text-underline-offset:8px; }
.nav a[aria-current] { text-decoration:underline; text-decoration-thickness:2px; }
.hero { min-height:480px; padding:48px 56px 56px; }
.hero h1 { font-size:clamp(48px,5.2vw,72px); }
.hero-art { min-height:360px; }
.hero-main-art { max-width:370px; top:0; }
.hero-friend { max-width:130px; }
.friend-one { bottom:4px; left:0; }
.friend-two { bottom:-8px; right:0; }
.welcome-strip { display:flex; justify-content:space-between; align-items:center; gap:24px; padding-block:22px; font-size:14px; }
.welcome-strip p { color:var(--muted); }
.welcome-strip a { min-height:44px; display:flex; align-items:center; font-weight:700; flex-shrink:0; }
.welcome-strip a:hover { text-decoration:underline; }
.school-section { padding-top:36px; }
.school-card:focus-within { background:var(--field); }
.school-grid>.empty { grid-column:1/-1; }
.school-meta strong a { display:inline-flex; align-items:center; min-height:44px; }
.school-meta small { margin-top:2px; }
.card-topline { flex-wrap:wrap; }
.community-item { transition:background-color .2s; }
.community-item:hover { background:var(--soft); }
.community-item>div { min-width:0; overflow-wrap:anywhere; }
.community-item .score { white-space:nowrap; }
.sample-art { gap:12px; }
.sample-art img+img { margin-left:0; }
.community-copy .sample-note { margin-bottom:0; }
.connection-notice { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px 24px; background:var(--error-surface); border-radius:var(--radius); margin-bottom:24px; }
.connection-notice p { font-size:14px; color:var(--error); }
.connection-notice button { flex-shrink:0; }
.faq-section { display:grid; grid-template-columns:1fr 1.1fr; gap:80px; padding-bottom:80px; }
.faq-section h2 { font-size:32px; }
.faq-section>div>p { margin-top:16px; color:var(--muted); }
.faq-list details { padding:0 0 16px; }
.faq-list summary { font-weight:700; cursor:pointer; min-height:48px; padding:10px 0; list-style:none; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:''; width:9px; height:9px; flex-shrink:0; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); margin-right:5px; transition:transform .2s; }
.faq-list details[open] summary::after { transform:rotate(225deg); }
.faq-list summary:focus-visible { outline:3px solid var(--green); outline-offset:4px; border-radius:4px; }
.faq-list details p { font-size:15px; color:var(--muted); padding:4px 24px 8px 0; line-height:1.9; }
.community-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.community-tabs button { padding:10px 16px; min-height:44px; border-radius:999px; background:var(--soft); font-size:14px; }
.community-tabs button[aria-pressed=true] { background:var(--green); color:var(--white); }
.community-tabs button:hover { text-decoration:underline; text-underline-offset:4px; }
.round-hint { font-size:14px; color:var(--muted); margin:16px 0 24px; }
.submission small,.submission .work-date { font-size:13px; overflow-wrap:anywhere; color:var(--muted); }
.submission h4 { line-height:1.6; }
.submission .vote-btn { width:100%; }
.winner-badge { display:block; margin-bottom:12px; color:var(--green); }
.form-message { padding:16px; margin:16px 0; background:var(--soft); border-radius:12px; font-size:14px; overflow-wrap:anywhere; }
.form-message.error { background:var(--error-surface); color:var(--error); }
.form-message a { display:block; padding:6px 0; text-decoration:underline; }
.form-message:focus { outline:2px solid currentColor; outline-offset:3px; }
.field-help { margin-top:8px; font-size:13px; line-height:1.7; color:var(--muted); overflow-wrap:anywhere; }
.field-error { margin-top:8px; color:var(--error); font-size:14px; }
.field [aria-invalid=true] { border-color:var(--error); }
.upload-zone.dragging { background:var(--yellow); border-color:var(--green); }
.upload-symbol { width:32px; height:32px; margin-inline:auto; }
.upload-preview { width:140px; height:140px; object-fit:cover; }
.upload-actions { flex-wrap:wrap; }
.modal { overscroll-behavior:contain; scrollbar-gutter:stable; }
.modal h2 { max-width:100%; overflow-wrap:anywhere; padding-right:40px; }
.modal-close { z-index:2; }
.modal-close:hover { background:var(--yellow); }
.modal .field select { text-overflow:ellipsis; }
.modal .field input,.modal .field select { scroll-margin-block:24px; }
.toast { bottom:max(24px,env(safe-area-inset-bottom)); }
.empty-filter p { margin-top:8px; color:var(--muted); font-size:14px; }
.primary:disabled,.quiet:disabled { transform:none; }
@media (max-width:1100px) {
  .hero { padding:40px; min-height:440px; }
  .hero-art { min-height:300px; }
  .hero-main-art { top:24px; }
  .faq-section { gap:40px; }
  .welcome-strip { align-items:flex-start; }
  .welcome-strip p { max-width:34ch; }
}
@media (max-width:760px) {
  html { scroll-padding-top:132px; }
  .header-inner { height:auto; min-height:114px; display:grid; grid-template-columns:1fr auto; gap:0 12px; padding-top:10px; }
  .brand { min-height:54px; }
  .header-cta { padding-inline:16px; }
  .nav { display:flex; grid-column:1/-1; grid-row:2; justify-content:space-between; gap:16px; font-size:14px; }
  .nav a { padding:10px 4px; }
  .hero { padding:28px 24px 24px; }
  .hero h1 { font-size:clamp(38px,10.5vw,56px); line-height:1.22; margin-bottom:16px; }
  .hero-copy>p { font-size:15px; line-height:1.8; }
  .hero-action { margin-top:20px; }
  .hero-copy .hero-note { margin-top:14px; }
  .hero-art { min-height:164px; margin-top:12px; }
  .hero-main-art { width:166px; height:166px; top:0; right:calc(50% - 83px); }
  .hero-friend { width:76px; height:76px; }
  .friend-one { left:0; bottom:0; }
  .friend-two { right:0; bottom:0; }
  .welcome-strip { gap:4px; flex-direction:column; padding-block:16px; }
  .welcome-strip p { max-width:none; }
  .welcome-strip a { font-size:13px; }
  .school-section { padding-top:24px; }
  .section-head { gap:8px; }
  .catalog-controls { padding:16px 12px; }
  .search input { font-size:16px; }
  .filter { font-size:12px; padding-inline:10px; }
  .filters { justify-content:flex-start; gap:2px; }
  .school-meta strong { font-size:14px; }
  .community-button { font-size:13px; }
  .sample-art { position:static; margin-top:24px; }
  .sample-art img { width:96px; height:96px; }
  .sample-art img+img { margin-left:0; }
  .community-copy .sample-note { max-width:none; margin-top:12px; }
  .community-item { padding:12px; gap:12px; grid-template-columns:48px 1fr auto; }
  .community-item strong { font-size:14px; }
  .mini-art { width:48px; height:48px; }
  .connection-notice { align-items:stretch; flex-direction:column; gap:12px; padding:16px; }
  .faq-section { grid-template-columns:1fr; gap:20px; padding-bottom:48px; }
  .faq-section h2 { font-size:28px; }
  .faq-list summary { font-size:15px; }
  .modal-wrap { padding:8px; }
  .modal { padding:28px 18px; max-height:calc(100dvh - 16px); }
  .modal h2 { font-size:22px; }
  .community-tabs { gap:6px; }
  .community-tabs button { font-size:13px; padding-inline:12px; }
  .submission-grid { gap:10px; }
  .submission { padding:12px; }
  .submission h4 { font-size:14px; }
  .modal .upload-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .upload-actions .primary,.upload-actions .quiet { padding-inline:10px; }
}
@media (prefers-reduced-motion:reduce) { .faq-list summary::after { transition:none; } }

/* Email sign-in uses the same cream paper / green ink as the campus directory. */
.header-actions { display:flex; align-items:center; gap:12px; }
.account-button { font-size:14px; white-space:nowrap; padding-inline:18px; }
.account-button.is-signed-in { display:inline-flex; align-items:center; gap:8px; max-width:190px; }
.account-button .account-avatar { width:28px; height:28px; border-radius:50%; object-fit:cover; background:#dcebd2; flex:0 0 auto; }
.account-button span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.page-login.is-signed-in { display:inline-flex; align-items:center; gap:8px; max-width:200px; }
.page-login .account-avatar { width:30px; height:30px; object-fit:cover; border-radius:50%; background:#e4f4e9; flex-shrink:0; }
.page-login.is-signed-in span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:140px; }
.custom-avatar { margin-top:22px; display:grid; gap:12px; padding:18px; border:1px solid #c6dcd5; border-radius:12px; background:#f5faf6; }
.custom-avatar input { max-width:100%; min-width:0; }
.custom-avatar button { justify-self:start; }
#avatarPreview { object-fit:cover; border-radius:50%; }
.profile-header>img,.member-link img { object-fit:cover; }
@media(max-width:760px){.page-login.is-signed-in,.account-button.is-signed-in{max-width:145px;gap:6px}.page-login.is-signed-in span,.account-button.is-signed-in span{max-width:82px}}
.auth-welcome { display:flex; align-items:center; gap:12px; margin:0 40px 20px 0; }
.auth-welcome img { width:72px; height:72px; object-fit:cover; border-radius:50%; background:#fff; flex-shrink:0; }
.auth-welcome span { color:var(--muted); font-size:12px; letter-spacing:.06em; }
.auth-modal .modal-intro { margin-bottom:16px; }
.code-entry { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
.code-entry .quiet { font-size:14px; padding:10px 14px; white-space:nowrap; }
.code-entry input { letter-spacing:.14em; min-width:0; }
.auth-submit { width:100%; margin-top:24px; }
.auth-privacy { margin-top:16px; }
.account-details { background:var(--soft); border-radius:12px; margin:24px 0 16px; padding:20px; }
.account-details dt { color:var(--muted); font-size:13px; margin-bottom:5px; }
.account-details dd { margin:0 0 18px; font-size:15px; overflow-wrap:anywhere; }
.account-details dd:last-child { margin-bottom:0; }
/* Keep the three portraits inside their own stage, above the welcome strip. */
.hero { overflow:hidden; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.hero-art { position:relative; width:100%; height:390px; min-height:0; align-self:center; }
.hero-main-art { width:min(78%,370px); height:auto; aspect-ratio:1; max-width:370px; top:20px; right:7%; animation:portrait-float 7s ease-in-out infinite; }
.hero-friend { width:28%; height:auto; aspect-ratio:1; max-width:132px; filter:drop-shadow(0 8px 10px #203d3214); }
.friend-one { left:0; bottom:30px; transform:rotate(-10deg); animation:friend-float 8s ease-in-out infinite; }
.friend-two { right:0; bottom:8px; transform:rotate(9deg); animation:friend-float 8s ease-in-out -4s infinite; }
@keyframes portrait-float { 0%,100% { transform:translateY(0) rotate(-3deg); } 50% { transform:translateY(-8px) rotate(0deg); } }
@keyframes friend-float { 0%,100% { translate:0 0; } 50% { translate:0 -6px; } }
@media(max-width:1100px) {
  .hero-art { height:320px; }
  .hero-main-art { width:78%; top:16px; right:5%; }
  .friend-one { bottom:20px; }
  .friend-two { bottom:10px; }
}
@media(max-width:760px) {
  .hero { grid-template-columns:1fr; }
  .hero-art { height:200px; min-height:0; max-width:330px; margin:20px auto 0; }
  .hero-main-art { width:184px; max-width:64%; height:auto; top:0; right:calc(50% - 92px); }
  .hero-friend { width:82px; max-width:27%; }
  .friend-one { bottom:12px; left:0; }
  .friend-two { bottom:6px; right:0; }
  .header-actions { gap:0; }
  .header-actions .header-cta { display:none; }
  .account-button { padding-inline:12px; font-size:13px; }
  .auth-modal h2 { font-size:22px; padding-right:0; }
  .auth-welcome { margin-bottom:16px; }
}
@media(prefers-reduced-motion:reduce) { .hero-main-art,.hero-friend { animation:none; } }

/* The existing yellow-green campus notebook, extended to private review states. */
#iconDescription { width:100%; box-sizing:border-box; resize:vertical; min-height:100px; padding:13px; border:1px solid #b9c7bf; border-radius:12px; background:#fff; color:#183d32; font:inherit; }
.icon-consent { display:flex; gap:10px; align-items:flex-start; font-size:13px; line-height:1.7; color:#355246; margin:16px 0; }
.icon-consent input { flex:0 0 18px; width:18px; height:18px; margin-top:3px; accent-color:#1d5944; }
.icon-kicker { display:block; color:#57715f; font-size:11px; letter-spacing:.1em; margin-bottom:14px; }
.icon-rules { padding-left:22px; color:#355246; line-height:1.85; font-size:14px; }
.icon-rules li { margin:10px 0; }
.icon-status { display:inline-block; background:#fff0af; color:#504319; border-radius:6px; padding:5px 9px; font-size:12px; margin-bottom:12px; }
.icon-status[data-state="ready"] { background:#e0f0e3; color:#20513b; }
.icon-status[data-state="rejected"],.icon-status[data-state="removed"] { background:#fae6de; color:#833d2c; }
.icon-entry .submission-img { border-radius:50%; overflow:hidden; }
.icon-entry .submission-img img { border-radius:50%; object-fit:cover; }
.icon-description,.icon-reason { font-size:13px; line-height:1.65; overflow-wrap:anywhere; white-space:pre-wrap; }
.icon-reason { background:#fbf2e5; color:#714c2f; padding:10px; border-left:3px solid #dbab65; }
.icon-hidden-art { display:grid; place-items:center; min-height:160px; font-size:13px; color:#4c6354; }
.community-tabs { flex-wrap:wrap; }
.community-actions { flex-wrap:wrap; gap:10px; }
