
  :root{
    --paper:#f6f1e5;
    --paper-2:#fbf8f0;
    --surface:#ffffff;
    --ink:#17233f;
    --ink-2:#4f5a70;
    --muted:#7d8799;
    --line:#dfe3e8;
    --line-strong:#c8ced8;
    --navy:#263764;
    --navy-2:#344b84;
    --orange:#ef5b2a;
    --orange-dark:#c8411a;
    --orange-soft:#fff0e9;
    --green:#2f7c59;
    --green-soft:#eaf6ef;
    --gold:#e8a83d;
    --gold-soft:#fff6dc;
    --red:#c8422b;
    --red-soft:#fff0ed;
    --blue-soft:#edf2fb;
    --shadow-sm:0 1px 2px rgba(23,35,63,.07);
    --shadow-md:0 14px 36px rgba(23,35,63,.12);
    --radius:8px;
    --max:1180px;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    min-width:320px;
    color:var(--ink);
    background:var(--paper-2);
    font-family:system-ui,-apple-system,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
    font-size:15px;
    line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  body.focus-mode .site-header{display:none;}
  button,input,select,textarea{font:inherit;}
  button,a{-webkit-tap-highlight-color:transparent;}
  button{cursor:pointer;}
  a{color:inherit;text-decoration:none;}
  img{display:block;max-width:100%;}
  [hidden]{display:none!important;}
  .sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }

  .site-header{
    position:sticky;
    top:0;
    z-index:70;
    height:68px;
    border-bottom:1px solid rgba(23,35,63,.08);
    background:rgba(255,255,255,.94);
    backdrop-filter:blur(14px);
  }
  .site-header-inner{
    max-width:var(--max);
    height:100%;
    margin:0 auto;
    padding:0 24px;
    display:flex;
    align-items:center;
    gap:28px;
  }
  .brand{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:max-content;
    border:0;
    padding:0;
    background:transparent;
    color:var(--ink);
    text-align:left;
  }
  .brand-mark{
    width:38px;
    height:38px;
    border:2px solid var(--ink);
    border-radius:7px;
    display:grid;
    place-items:center;
    color:#fff2df;
    background:linear-gradient(145deg,var(--orange),#f47b3e);
    box-shadow:3px 3px 0 var(--ink);
    font-size:22px;
    font-weight:900;
    line-height:1;
  }
  .brand-copy b{
    display:block;
    font-size:15px;
    line-height:1.25;
  }
  .brand-copy span{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:11px;
    line-height:1.2;
  }
  .site-nav{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:24px;
    flex:1;
  }
  .site-nav a,
  .site-nav button{
    border:0;
    padding:6px 0;
    background:transparent;
    color:var(--ink-2);
    font-size:13px;
    font-weight:650;
    white-space:nowrap;
  }
  .site-nav a:hover,
  .site-nav button:hover{color:var(--orange);}
  .site-actions{
    display:flex;
    align-items:center;
    gap:10px;
    margin-left:auto;
  }

  .btn{
    min-height:42px;
    border:1px solid var(--line-strong);
    border-radius:var(--radius);
    padding:9px 16px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:var(--surface);
    color:var(--ink);
    font-size:14px;
    font-weight:750;
    line-height:1.2;
    transition:transform .15s ease,border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease;
  }
  .btn:hover{border-color:var(--navy-2);}
  .btn:active{transform:translateY(1px);}
  .btn.primary{
    border-color:var(--orange);
    background:var(--orange);
    color:#fff;
    box-shadow:3px 3px 0 var(--ink);
  }
  .btn.primary:hover{background:var(--orange-dark);border-color:var(--orange-dark);}
  .btn.secondary{
    border-color:var(--navy);
    background:var(--navy);
    color:#fff;
  }
  .btn.ghost{
    border-color:var(--line);
    background:transparent;
    color:var(--ink-2);
  }
  .btn.danger{
    border-color:#efc6bc;
    background:var(--red-soft);
    color:var(--red);
  }
  .btn.large{
    min-height:50px;
    padding:13px 22px;
    font-size:15px;
  }
  .btn.small{
    min-height:34px;
    padding:6px 11px;
    font-size:12.5px;
  }
  .btn.icon{
    width:42px;
    padding:0;
  }
  .btn:disabled,
  .btn[aria-disabled="true"]{
    cursor:not-allowed;
    opacity:.52;
    box-shadow:none;
    transform:none;
  }
  .text-link{
    border:0;
    padding:0;
    background:transparent;
    color:var(--navy-2);
    font-weight:750;
  }
  .text-link:hover{color:var(--orange);}

  .page-view{
    min-height:calc(100vh - 68px);
  }
  .page-shell{
    max-width:var(--max);
    margin:0 auto;
    padding:38px 24px 76px;
  }
  .page-kicker{
    margin:0 0 7px;
    color:var(--orange);
    font-size:12px;
    font-weight:850;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
  .page-title{
    margin:0;
    color:var(--navy);
    font-size:32px;
    line-height:1.18;
    letter-spacing:-.025em;
  }
  .page-subtitle{
    max-width:720px;
    margin:8px 0 0;
    color:var(--muted);
    font-size:14px;
  }
  .page-head-row{
    display:flex;
    align-items:flex-end;
    gap:20px;
    justify-content:space-between;
    margin-bottom:26px;
  }
  .back-button{
    margin-bottom:22px;
  }
  .section{
    padding:78px 24px;
  }
  .section-inner{
    max-width:var(--max);
    margin:0 auto;
  }
  .section-heading{
    max-width:760px;
    margin-bottom:30px;
  }
  .section-index{
    display:block;
    margin-bottom:8px;
    color:var(--orange);
    font-size:12px;
    font-weight:850;
    letter-spacing:.1em;
  }
  .section-heading h2{
    margin:0;
    color:var(--ink);
    font-size:34px;
    line-height:1.2;
    letter-spacing:-.025em;
  }
  .section-heading p{
    margin:11px 0 0;
    color:var(--ink-2);
  }

  /* Home */
  .hero{
    position:relative;
    min-height:700px;
    overflow:hidden;
    background:
      linear-gradient(90deg,rgba(251,248,240,.98) 0%,rgba(251,248,240,.94) 42%,rgba(251,248,240,.2) 72%,rgba(251,248,240,.05) 100%),
      url("/campus.png") center top/cover no-repeat,
      linear-gradient(180deg,#fbf8f0 0%,#f6f1e5 70%,#e7d5b9 100%);
    image-rendering:pixelated;
  }
  .hero::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:92px;
    background:
      linear-gradient(90deg,transparent 0 5%,rgba(38,55,100,.16) 5% 7%,transparent 7% 14%,rgba(47,124,89,.18) 14% 18%,transparent 18% 100%),
      linear-gradient(180deg,transparent 0 55%,rgba(41,49,78,.22) 55% 100%);
    pointer-events:none;
  }
  .hero-inner{
    position:relative;
    z-index:2;
    max-width:var(--max);
    min-height:640px;
    margin:0 auto;
    padding:76px 24px 118px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
  }
  .hero-kicker{
    display:inline-flex;
    align-items:center;
    gap:10px;
    border:2px solid var(--ink);
    border-radius:999px;
    padding:7px 13px;
    background:#fff8e9;
    box-shadow:3px 3px 0 var(--ink);
    color:var(--ink-2);
    font-size:12px;
    font-weight:750;
  }
  .hero-kicker strong{
    color:var(--orange);
    font-size:13px;
  }
  .hero h1{
    max-width:680px;
    margin:25px 0 0;
    color:var(--navy);
    font-size:66px;
    line-height:.98;
    letter-spacing:-.055em;
  }
  .hero h1 span{
    display:block;
    margin-top:7px;
    color:var(--orange);
    font-size:62px;
  }
  .hero-copy{
    max-width:610px;
    margin:24px 0 0;
    color:var(--ink-2);
    font-size:17px;
    line-height:1.75;
  }
  .hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    margin-top:30px;
  }
  .hero-stats{
    width:min(590px,100%);
    margin-top:46px;
    border-top:1px solid rgba(23,35,63,.18);
    border-bottom:1px solid rgba(23,35,63,.18);
    padding:15px 0;
    display:grid;
    grid-template-columns:repeat(3,1fr);
  }
  .hero-stat{
    padding:0 17px;
  }
  .hero-stat + .hero-stat{border-left:1px solid rgba(23,35,63,.16);}
  .hero-stat b{
    display:block;
    color:var(--navy);
    font-size:24px;
    line-height:1.2;
  }
  .hero-stat span{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:11.5px;
  }
  .hero-ticker{
    position:absolute;
    z-index:3;
    left:0;
    right:0;
    bottom:0;
    min-height:52px;
    padding:12px 24px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    background:var(--navy);
    color:#e8ecf6;
    font-size:12px;
  }
  .hero-ticker strong{
    color:#fff;
    font-size:12.5px;
  }
  .hero-ticker span{white-space:nowrap;}

  .intro-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
  }
  .intro-item{
    border-top:3px solid var(--navy);
    padding:23px 3px 0;
  }
  .intro-item:nth-child(2){border-color:var(--orange);}
  .intro-item:nth-child(3){border-color:var(--green);}
  .intro-number{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border-radius:6px;
    background:var(--blue-soft);
    color:var(--navy);
    font-size:18px;
    font-weight:900;
  }
  .intro-item h3{
    margin:17px 0 7px;
    font-size:18px;
  }
  .intro-item p{
    margin:0;
    color:var(--ink-2);
  }

  .organizer-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
  }
  .organizer-item{
    position:relative;
    padding:24px 2px 4px;
    display:block;
    border-top:3px solid var(--orange);
    color:inherit;
    transition:transform .15s ease;
  }
  .organizer-item:hover{transform:translateY(-3px);}
  .organizer-item:last-child{border-color:var(--navy);}
  .organizer-head{
    display:flex;
    align-items:flex-start;
    gap:14px;
  }
  .organizer-mark{
    width:48px;
    height:48px;
    flex:0 0 auto;
    display:grid;
    place-items:center;
    border-radius:7px;
    background:var(--orange);
    color:#fff;
    font-size:18px;
    font-weight:900;
  }
  .organizer-item:last-child .organizer-mark{background:var(--navy);}
  .organizer-head h3{
    margin:0;
    color:var(--navy);
    font-size:20px;
  }
  .organizer-source{
    display:inline-block;
    margin-top:5px;
    border-radius:999px;
    padding:2px 8px;
    background:var(--gold-soft);
    color:#8d6418;
    font-size:10px;
    font-weight:800;
  }
  .organizer-copy{
    margin:16px 0 0;
    color:var(--ink-2);
    font-size:13.5px;
  }
  .organizer-pending{
    margin:14px 0 0;
    padding-left:12px;
    border-left:2px solid var(--line-strong);
    color:var(--muted);
    font-size:11.5px;
  }
  .organizer-action{
    display:inline-flex;
    align-items:center;
    gap:7px;
    margin-top:16px;
    color:var(--orange);
    font-size:12.5px;
    font-weight:800;
  }
  .organizer-item:last-child .organizer-action{color:var(--navy);}

  .company-hero{
    position:relative;
    overflow:hidden;
    padding:72px 24px 66px;
    background:var(--navy);
    color:#fff;
  }
  .company-hero.ihuntu{
    background:linear-gradient(135deg,#c9431d 0%,#ef5b2a 58%,#f59468 100%);
  }
  .company-hero.happy-elements{
    background:linear-gradient(135deg,#1f2e55 0%,#263764 60%,#46649f 100%);
  }
  .company-hero::after{
    content:"";
    position:absolute;
    right:-70px;
    top:-110px;
    width:370px;
    height:370px;
    border:44px solid rgba(255,255,255,.1);
    border-radius:50%;
  }
  .company-hero-inner{
    position:relative;
    z-index:2;
    max-width:var(--max);
    margin:0 auto;
    display:grid;
    grid-template-columns:220px minmax(0,1fr);
    gap:42px;
    align-items:center;
  }
  .company-hero-mark{
    width:190px;
    height:190px;
    display:grid;
    place-items:center;
    border:3px solid rgba(255,255,255,.85);
    border-radius:18px;
    background:rgba(255,255,255,.12);
    box-shadow:10px 10px 0 rgba(23,35,63,.22);
    font-size:66px;
    font-weight:900;
  }
  .company-hero-kicker{
    display:inline-block;
    margin-bottom:12px;
    color:#fff1e9;
    font-size:11px;
    font-weight:850;
    letter-spacing:.11em;
  }
  .company-hero h1{
    margin:0;
    color:#fff;
    font-size:46px;
    line-height:1.15;
    letter-spacing:-.035em;
  }
  .company-hero p{
    max-width:720px;
    margin:14px 0 0;
    color:rgba(255,255,255,.82);
    font-size:15px;
  }
  .company-hero-badges{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:20px;
  }
  .company-hero-badge{
    border:1px solid rgba(255,255,255,.36);
    border-radius:999px;
    padding:5px 10px;
    background:rgba(255,255,255,.08);
    color:#fff;
    font-size:10.5px;
    font-weight:750;
  }
  .company-page{
    max-width:1000px;
    margin:0 auto;
    padding:54px 24px 72px;
  }
  .company-section{
    display:grid;
    grid-template-columns:190px minmax(0,1fr);
    gap:36px;
    padding:30px 0;
    border-bottom:1px solid var(--line);
  }
  .company-section:first-child{padding-top:0;}
  .company-section-label{
    color:var(--orange);
    font-size:11px;
    font-weight:850;
    letter-spacing:.08em;
  }
  .company-section h2{
    margin:5px 0 0;
    color:var(--navy);
    font-size:25px;
  }
  .company-section-copy{
    color:var(--ink-2);
    font-size:14px;
  }
  .company-section-copy > :first-child{margin-top:0;}
  .company-section-copy > :last-child{margin-bottom:0;}
  .company-source-note{
    margin-top:12px;
    padding-left:12px;
    border-left:2px solid var(--line-strong);
    color:var(--muted);
    font-size:11.5px;
  }
  .business-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
    margin-top:18px;
  }
  .business-item{
    padding:16px 0 4px;
    border-top:2px solid var(--line-strong);
  }
  .business-item:first-child,
  .business-item:nth-child(2){border-color:var(--orange);}
  .business-item b{
    display:block;
    color:var(--navy);
    font-size:14px;
  }
  .business-item span{
    display:block;
    margin-top:5px;
    color:var(--muted);
    font-size:12px;
  }
  .company-role-placeholder{
    padding:17px 18px;
    border-left:3px solid var(--gold);
    background:var(--gold-soft);
    color:#6d5520;
    font-size:12.5px;
  }
  .company-page-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:30px;
  }
  .thanks-wrap{
    margin-top:46px;
    padding-top:28px;
    border-top:1px solid rgba(23,35,63,.22);
  }
  .thanks-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:18px;
  }
  .thanks-head h3{
    margin:0;
    color:var(--navy);
    font-size:24px;
  }
  .thanks-head span{
    color:var(--orange);
    font-size:12px;
    font-weight:800;
  }
  .thanks-copy{
    margin:8px 0 0;
    color:var(--muted);
    font-size:12.5px;
  }
  .thanks-list{
    margin:22px 0 0;
    padding:0;
    list-style:none;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:34px;
  }
  .thanks-list li{
    position:relative;
    padding:11px 6px 11px 22px;
    border-bottom:1px solid var(--line);
    color:var(--ink-2);
    font-size:13px;
  }
  .thanks-list li::before{
    content:"";
    position:absolute;
    left:3px;
    top:18px;
    width:7px;
    height:7px;
    border-radius:2px;
    background:var(--orange);
  }

  .schedule-band{
    background:var(--navy);
    color:#fff;
  }
  .schedule-band .section-heading h2,
  .schedule-band .section-heading p{color:#fff;}
  .schedule-band .section-index{color:#ffb088;}
  .schedule-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
  }
  .schedule-item{
    border-top:1px solid rgba(255,255,255,.35);
    padding:20px 3px 6px;
  }
  .schedule-item span{
    display:block;
    color:#b8c3df;
    font-size:12px;
  }
  .schedule-item b{
    display:block;
    margin-top:9px;
    color:#fff;
    font-size:19px;
  }
  .schedule-item em{
    display:block;
    margin-top:5px;
    color:#ffb088;
    font-size:13px;
    font-style:normal;
    font-weight:750;
  }
  .schedule-item p{
    margin:12px 0 0;
    color:#cbd3e5;
    font-size:12.5px;
  }

  .award-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:18px;
  }
  .award-item{
    min-height:190px;
    padding:26px 24px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--surface);
  }
  .award-item.featured{
    border:2px solid var(--gold);
    background:var(--gold-soft);
  }
  .award-item span{
    color:var(--ink-2);
    font-size:13px;
    font-weight:750;
  }
  .award-item b{
    display:block;
    margin-top:21px;
    color:var(--orange);
    font-size:31px;
    line-height:1.1;
  }
  .award-item p{
    margin:14px 0 0;
    color:var(--muted);
    font-size:12.5px;
  }

  .judge-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:14px;
  }
  .judge-item{
    padding:20px 4px;
    border-bottom:1px solid var(--line);
  }
  .judge-avatar{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--navy);
    color:#fff;
    font-weight:850;
  }
  .judge-item h3{
    margin:15px 0 3px;
    font-size:15px;
  }
  .judge-item p{
    margin:0;
    color:var(--muted);
    font-size:12px;
  }

  .rules-band{
    background:#efe8d8;
  }
  .rules-layout{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:54px;
    align-items:start;
  }
  .rule-list{
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid rgba(23,35,63,.2);
  }
  .rule-list li{
    display:grid;
    grid-template-columns:112px 1fr;
    gap:18px;
    padding:17px 0;
    border-bottom:1px solid rgba(23,35,63,.2);
  }
  .rule-list b{color:var(--navy);}
  .rule-list span{color:var(--ink-2);font-size:13px;}

  .faq-list{
    border-top:1px solid var(--line);
  }
  .faq-list details{
    border-bottom:1px solid var(--line);
  }
  .faq-list summary{
    padding:18px 36px 18px 0;
    position:relative;
    cursor:pointer;
    color:var(--ink);
    font-weight:750;
    list-style:none;
  }
  .faq-list summary::-webkit-details-marker{display:none;}
  .faq-list summary::after{
    content:"+";
    position:absolute;
    right:4px;
    top:15px;
    color:var(--orange);
    font-size:22px;
    line-height:1;
  }
  .faq-list details[open] summary::after{content:"-";}
  .faq-list p{
    max-width:820px;
    margin:-3px 0 20px;
    color:var(--ink-2);
  }

  .home-cta{
    padding:54px 24px;
    background:var(--orange);
    color:#fff;
  }
  .home-cta-inner{
    max-width:var(--max);
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
  }
  .home-cta h2{
    margin:0;
    font-size:30px;
    line-height:1.25;
    letter-spacing:-.02em;
  }
  .home-cta p{
    margin:7px 0 0;
    color:#ffe2d5;
  }
  .home-cta .btn{
    border-color:#fff;
    background:#fff;
    color:var(--orange-dark);
    box-shadow:4px 4px 0 var(--navy);
    min-width:150px;
  }

  .site-footer{
    background:#f1ede4;
    border-top:1px solid var(--line);
  }
  .site-footer-inner{
    max-width:var(--max);
    margin:0 auto;
    padding:38px 24px;
    display:grid;
    grid-template-columns:1.4fr .8fr .6fr;
    gap:28px;
  }
  .site-footer b{color:var(--navy);}
  .site-footer p{
    margin:6px 0 0;
    color:var(--muted);
    font-size:12.5px;
  }
  .site-footer a{
    display:block;
    color:var(--ink-2);
    font-size:12.5px;
  }
  .site-footer a + a{margin-top:5px;}

  /* Shared page components */
  .phase-strip{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--surface);
  }
  .phase-item{
    padding:14px 16px;
    min-width:0;
  }
  .phase-item + .phase-item{border-left:1px solid var(--line);}
  .phase-item b{
    display:block;
    color:var(--navy);
    font-size:13px;
  }
  .phase-item strong{
    display:block;
    margin-top:5px;
    color:var(--orange);
    font-size:15px;
  }
  .phase-item span{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:11px;
  }
  .phase-item.done strong,
  .phase-item.done span{color:var(--green);}

  .progress-steps{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    margin:24px 0 20px;
  }
  .progress-step{
    position:relative;
    text-align:center;
  }
  .progress-step:not(:last-child)::after{
    content:"";
    position:absolute;
    top:14px;
    left:calc(50% + 16px);
    right:calc(-50% + 16px);
    height:2px;
    background:var(--line);
  }
  .progress-step.done:not(:last-child)::after{background:var(--green);}
  .progress-dot{
    position:relative;
    z-index:2;
    width:30px;
    height:30px;
    margin:0 auto;
    display:grid;
    place-items:center;
    border:2px solid var(--line-strong);
    border-radius:50%;
    background:#fff;
    color:var(--muted);
    font-size:12px;
    font-weight:850;
  }
  .progress-step.active .progress-dot{
    border-color:var(--orange);
    background:var(--orange);
    color:#fff;
  }
  .progress-step.done .progress-dot{
    border-color:var(--green);
    background:var(--green);
    color:#fff;
  }
  .progress-label{
    display:block;
    margin-top:8px;
    color:var(--muted);
    font-size:12px;
    font-weight:700;
  }
  .progress-step.active .progress-label{color:var(--orange);}
  .progress-step.done .progress-label{color:var(--green);}

  .form-panel{
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--surface);
    box-shadow:var(--shadow-sm);
  }
  .form-panel-head{
    padding:22px 24px 18px;
    border-bottom:1px solid var(--line);
  }
  .form-panel-head h2{
    margin:0;
    color:var(--navy);
    font-size:19px;
  }
  .form-panel-head p{
    margin:5px 0 0;
    color:var(--muted);
    font-size:12.5px;
  }
  .form-panel-body{padding:24px;}
  .form-section + .form-section{
    margin-top:28px;
    padding-top:26px;
    border-top:1px solid var(--line);
  }
  .form-section-title{
    display:flex;
    align-items:center;
    gap:9px;
    margin:0 0 16px;
    color:var(--navy);
    font-size:14px;
    font-weight:850;
  }
  .form-section-title::before{
    content:"";
    width:4px;
    height:16px;
    border-radius:2px;
    background:var(--orange);
  }
  .form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
  }
  .form-field{
    min-width:0;
  }
  .form-field.full{grid-column:1/-1;}
  .form-field label{
    display:flex;
    align-items:center;
    gap:6px;
    margin-bottom:7px;
    color:var(--ink);
    font-size:13px;
    font-weight:750;
  }
  .required{color:var(--orange);}
  .optional{color:var(--muted);font-size:11.5px;font-weight:550;}
  .form-field input[type="text"],
  .form-field input[type="tel"],
  .form-field input[type="email"],
  .form-field input[type="url"],
  .form-field input[type="month"],
  .form-field select,
  .form-field textarea{
    width:100%;
    min-height:44px;
    border:1px solid var(--line-strong);
    border-radius:var(--radius);
    padding:10px 12px;
    background:#fff;
    color:var(--ink);
    outline:none;
    transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;
  }
  .form-field textarea{
    min-height:92px;
    resize:vertical;
  }
  .form-field input:focus,
  .form-field select:focus,
  .form-field textarea:focus{
    border-color:var(--navy-2);
    box-shadow:0 0 0 3px rgba(52,75,132,.1);
  }
  .form-field input::placeholder,
  .form-field textarea::placeholder{color:#a4acbb;}
  .form-field.invalid input,
  .form-field.invalid select,
  .form-field.invalid textarea{
    border-color:var(--red);
    background:#fffafa;
  }
  .field-hint{
    display:block;
    margin-top:5px;
    color:var(--muted);
    font-size:11.5px;
  }
  .field-error{
    display:none;
    margin-top:5px;
    color:var(--red);
    font-size:11.5px;
    font-weight:650;
  }
  .form-field.invalid .field-error{display:block;}
  .choice-group{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
  }
  .choice-chip{
    min-height:38px;
    border:1px solid var(--line-strong);
    border-radius:var(--radius);
    padding:7px 13px;
    background:#fff;
    color:var(--ink-2);
    font-size:13px;
    font-weight:700;
  }
  .choice-chip:hover{border-color:var(--navy-2);}
  .choice-chip.selected{
    border-color:var(--navy);
    background:var(--navy);
    color:#fff;
  }
  .purpose-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
  }
  .purpose-option{
    min-height:112px;
    border:1px solid var(--line-strong);
    border-radius:var(--radius);
    padding:15px;
    background:#fff;
    text-align:left;
  }
  .purpose-option.selected{
    border:2px solid var(--orange);
    background:var(--orange-soft);
  }
  .purpose-option b{
    display:flex;
    align-items:center;
    gap:7px;
    color:var(--navy);
  }
  .purpose-option span{
    display:block;
    margin-top:7px;
    color:var(--muted);
    font-size:12px;
    line-height:1.6;
  }
  .inline-note{
    padding:12px 14px;
    border-left:3px solid var(--gold);
    background:var(--gold-soft);
    color:#6d5520;
    font-size:12px;
    line-height:1.65;
  }
  .inline-note.green{
    border-color:var(--green);
    background:var(--green-soft);
    color:#315e48;
  }
  .inline-note.red{
    border-color:var(--red);
    background:var(--red-soft);
    color:#7e3529;
  }

  .check-row{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:13px 14px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:#fafbfc;
    color:var(--ink-2);
    font-size:12.5px;
    line-height:1.65;
  }
  .check-row input{
    width:17px;
    height:17px;
    margin:2px 0 0;
    accent-color:var(--orange);
    flex:0 0 auto;
  }
  .form-actions{
    padding:18px 24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border-top:1px solid var(--line);
    background:#fafbfc;
  }
  .form-actions-right{
    display:flex;
    gap:10px;
    margin-left:auto;
  }

  .summary-list{
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
  }
  .summary-row{
    display:grid;
    grid-template-columns:128px 1fr;
    gap:15px;
    padding:11px 14px;
    font-size:12.5px;
  }
  .summary-row + .summary-row{border-top:1px solid var(--line);}
  .summary-row b{color:var(--navy);}
  .summary-row span{color:var(--ink-2);word-break:break-word;}

  .upload-box{
    min-height:104px;
    border:1px dashed var(--line-strong);
    border-radius:var(--radius);
    padding:20px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    background:#fafbfc;
    color:var(--ink-2);
    text-align:center;
  }
  .upload-box:hover{border-color:var(--navy-2);}
  .upload-box input{display:none;}
  .upload-copy b{display:block;color:var(--navy);}
  .upload-copy span{display:block;margin-top:4px;color:var(--muted);font-size:11.5px;}
  .file-pill{
    margin-top:10px;
    padding:9px 12px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--green-soft);
    color:#315e48;
    font-size:12.5px;
  }

  /* Registration success */
  .success-hero{
    position:relative;
    overflow:hidden;
    padding:48px 24px;
    background:var(--navy);
    color:#fff;
  }
  .success-hero::after{
    content:"";
    position:absolute;
    right:-80px;
    top:-130px;
    width:360px;
    height:360px;
    border-radius:50%;
    background:rgba(239,91,42,.35);
  }
  .success-hero-inner{
    position:relative;
    z-index:2;
    max-width:900px;
    margin:0 auto;
    text-align:center;
  }
  .success-icon{
    width:62px;
    height:62px;
    margin:0 auto 18px;
    display:grid;
    place-items:center;
    border:2px solid #fff;
    border-radius:50%;
    background:var(--green);
    box-shadow:5px 5px 0 rgba(0,0,0,.18);
  }
  .success-icon i{width:31px;height:31px;}
  .success-hero h1{
    margin:0;
    font-size:38px;
    line-height:1.2;
  }
  .success-hero p{
    max-width:620px;
    margin:12px auto 0;
    color:#d7def0;
  }
  .reg-number{
    margin:24px auto 0;
    width:min(440px,100%);
    border:1px solid rgba(255,255,255,.28);
    border-radius:var(--radius);
    padding:14px 15px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    background:rgba(255,255,255,.09);
  }
  .reg-number span{color:#bcc7df;font-size:12px;}
  .reg-number b{
    display:block;
    margin-top:3px;
    color:#fff;
    font-size:18px;
    letter-spacing:.04em;
  }
  .gate-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
  }
  .gate{
    position:relative;
    min-height:260px;
    padding:27px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--surface);
    box-shadow:var(--shadow-sm);
  }
  .gate.featured{border-top:5px solid var(--orange);}
  .gate.demo{border-top:5px solid var(--green);}
  .gate-icon{
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border-radius:7px;
    background:var(--orange-soft);
    color:var(--orange);
  }
  .gate.demo .gate-icon{background:var(--green-soft);color:var(--green);}
  .gate h2{
    margin:22px 0 8px;
    color:var(--navy);
    font-size:22px;
  }
  .gate p{
    margin:0;
    color:var(--ink-2);
    font-size:13px;
  }
  .gate .btn{margin-top:24px;}
  .gate-status{
    position:absolute;
    top:24px;
    right:24px;
    border-radius:999px;
    padding:4px 9px;
    background:#edf0f5;
    color:var(--muted);
    font-size:11px;
    font-weight:750;
  }
  .gate-status.done{background:var(--green-soft);color:var(--green);}
  .gate-status.recruiting{background:var(--orange-soft);color:var(--orange);}

  /* Ability card builder */
  .card-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 410px;
    gap:26px;
    align-items:start;
  }
  .card-preview-column{
    position:sticky;
    top:88px;
  }
  .preview-label{
    margin:0 0 10px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    color:var(--muted);
    font-size:11.5px;
    font-weight:750;
  }
  .preview-label span:last-child{color:var(--green);}
  .ability-card{
    position:relative;
    width:100%;
    aspect-ratio:3/4;
    overflow:hidden;
    border:1px solid #cdd2dc;
    border-radius:8px;
    background:#f7f0df;
    box-shadow:0 18px 44px rgba(23,35,63,.16);
    color:var(--ink);
  }
  .ability-card-head{
    position:relative;
    height:36%;
    overflow:hidden;
    padding:22px;
    background:
      radial-gradient(circle at 78% 34%,rgba(239,91,42,.88) 0 11%,transparent 11.3%),
      linear-gradient(180deg,#293a69 0%,#223159 100%);
    color:#fff;
  }
  .ability-card-head::after{
    content:"";
    position:absolute;
    left:-8%;
    right:-8%;
    bottom:-32px;
    height:88px;
    background:
      linear-gradient(135deg,transparent 0 16%,#4d8f54 16% 32%,transparent 32% 40%,#77ad65 40% 57%,transparent 57% 67%,#3b7956 67% 100%);
    opacity:.85;
  }
  .card-brand-line{
    position:relative;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
  }
  .card-brand-line b{
    display:flex;
    align-items:center;
    gap:7px;
    font-size:12px;
  }
  .card-mini-mark{
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    border:1px solid #fff;
    border-radius:4px;
    background:var(--orange);
    font-size:13px;
    font-weight:900;
  }
  .card-purpose-badge{
    border:1px solid rgba(255,255,255,.48);
    border-radius:999px;
    padding:3px 8px;
    color:#ffd7c8;
    font-size:9px;
    font-weight:750;
  }
  .ability-card h2{
    position:relative;
    z-index:2;
    margin:30px 0 5px;
    font-size:31px;
    line-height:1.1;
    letter-spacing:-.03em;
  }
  .card-meta-line{
    position:relative;
    z-index:2;
    color:#cdd6ec;
    font-size:11px;
  }
  .ability-card-body{
    position:relative;
    height:64%;
    padding:18px 19px 15px;
    background:
      linear-gradient(rgba(23,35,63,.035) 1px,transparent 1px),
      linear-gradient(90deg,rgba(23,35,63,.035) 1px,transparent 1px),
      #f8f2e5;
    background-size:18px 18px;
  }
  .card-badge-row{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin-top:-34px;
    position:relative;
    z-index:3;
  }
  .mini-badge{
    border:1px solid rgba(23,35,63,.12);
    border-radius:999px;
    padding:3px 8px;
    background:#fff;
    color:var(--navy);
    font-size:9px;
    font-weight:750;
  }
  .mini-badge.verified{background:#e7f5eb;color:var(--green);}
  .card-section{
    margin-top:14px;
  }
  .card-section-label{
    display:flex;
    align-items:center;
    gap:6px;
    margin-bottom:6px;
    color:var(--navy);
    font-size:10px;
    font-weight:850;
  }
  .card-section-label::before{
    content:"";
    width:3px;
    height:11px;
    border-radius:2px;
    background:var(--orange);
  }
  .card-tags{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
  }
  .card-tag{
    border-radius:4px;
    padding:3px 7px;
    background:#e8edf8;
    color:var(--navy);
    font-size:9.5px;
    font-weight:700;
  }
  .card-tag.need{background:#fff0e9;color:#b34420;}
  .card-tag.taste{background:#eaf6ef;color:#2c6f50;}
  .card-quote{
    margin:0;
    border-left:3px solid var(--orange);
    padding:7px 9px;
    background:rgba(255,255,255,.72);
    color:var(--ink-2);
    font-size:10.5px;
    line-height:1.6;
  }
  .card-info-list{
    margin-top:12px;
    border-top:1px solid rgba(23,35,63,.14);
  }
  .card-info-row{
    display:grid;
    grid-template-columns:56px 1fr;
    gap:7px;
    padding:6px 0;
    border-bottom:1px solid rgba(23,35,63,.09);
    font-size:9.5px;
  }
  .card-info-row b{color:var(--navy);}
  .card-info-row span{
    color:var(--ink-2);
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .card-footer{
    position:absolute;
    left:18px;
    right:18px;
    bottom:13px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }
  .card-footer-copy b{
    display:block;
    color:var(--navy);
    font-size:9.5px;
  }
  .card-footer-copy span{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:8px;
  }
  .qr-pattern{
    width:54px;
    height:54px;
    display:grid;
    grid-template-columns:repeat(13,1fr);
    gap:1px;
    padding:3px;
    background:#fff;
  }
  .qr-pattern i{background:transparent;}
  .qr-pattern i.on{background:var(--navy);}

  .card-result-stage{
    min-height:100vh;
    padding:36px 20px 54px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:#e9e6df;
  }
  .card-result-stage .ability-card{
    width:min(540px,100%);
    box-shadow:0 24px 70px rgba(23,35,63,.2);
  }
  .card-result-stage .btn{margin-top:22px;}

  /* Demo submission */
  .submission-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:24px;
    align-items:start;
  }
  .submission-aside{
    position:sticky;
    top:88px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--surface);
  }
  .submission-aside-head{
    padding:18px 18px 14px;
    border-bottom:1px solid var(--line);
  }
  .submission-aside-head h3{margin:0;color:var(--navy);font-size:15px;}
  .submission-aside-head p{margin:4px 0 0;color:var(--muted);font-size:11.5px;}
  .submission-check{
    margin:0;
    padding:0;
    list-style:none;
  }
  .submission-check li{
    position:relative;
    padding:12px 18px 12px 42px;
    border-bottom:1px solid var(--line);
    color:var(--ink-2);
    font-size:12px;
  }
  .submission-check li::before{
    content:"";
    position:absolute;
    left:18px;
    top:16px;
    width:13px;
    height:13px;
    border:1px solid var(--line-strong);
    border-radius:3px;
    background:#fff;
  }
  .submission-check li.done::before{
    border-color:var(--green);
    background:var(--green);
    box-shadow:inset 0 0 0 3px #fff;
  }
  .submission-aside-foot{padding:16px 18px;color:var(--muted);font-size:11.5px;}
  .member-list{
    display:flex;
    flex-direction:column;
    gap:13px;
  }
  .member-block{
    border:1px solid var(--line);
    border-radius:var(--radius);
    overflow:hidden;
  }
  .member-block-head{
    padding:11px 13px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border-bottom:1px solid var(--line);
    background:#fafbfc;
  }
  .member-block-head b{color:var(--navy);font-size:12.5px;}
  .member-block-body{padding:14px;}
  .remove-member{
    border:0;
    padding:0;
    background:transparent;
    color:var(--red);
    font-size:11.5px;
    font-weight:750;
  }
  .submission-unavailable{
    min-height:420px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:52px 24px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:var(--surface);
    text-align:center;
  }
  .submission-unavailable .gate-icon{width:58px;height:58px;}
  .submission-unavailable h2{margin:20px 0 7px;color:var(--navy);}
  .submission-unavailable p{max-width:500px;margin:0;color:var(--muted);}

  /* My registration */
  .my-layout{
    display:grid;
    grid-template-columns:320px minmax(0,1fr);
    gap:24px;
    align-items:start;
  }
  .my-profile{
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--navy);
    color:#fff;
  }
  .my-profile-head{
    padding:24px;
  }
  .my-avatar{
    width:54px;
    height:54px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.45);
    border-radius:50%;
    background:var(--orange);
    font-size:19px;
    font-weight:850;
  }
  .my-profile-head h2{margin:16px 0 3px;font-size:20px;}
  .my-profile-head p{margin:0;color:#bdc7dc;font-size:12px;}
  .my-profile-meta{
    border-top:1px solid rgba(255,255,255,.16);
    padding:14px 24px 18px;
    display:grid;
    gap:8px;
  }
  .my-profile-meta div{display:flex;justify-content:space-between;gap:14px;font-size:12px;}
  .my-profile-meta span{color:#bdc7dc;}
  .status-timeline{
    border:1px solid var(--line);
    border-radius:var(--radius);
    background:var(--surface);
  }
  .status-row{
    display:grid;
    grid-template-columns:46px minmax(0,1fr) auto;
    gap:14px;
    align-items:center;
    padding:18px 20px;
  }
  .status-row + .status-row{border-top:1px solid var(--line);}
  .status-number{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#edf0f5;
    color:var(--muted);
    font-size:12px;
    font-weight:850;
  }
  .status-row.done .status-number{background:var(--green);color:#fff;}
  .status-row.active .status-number{background:var(--orange);color:#fff;}
  .status-copy b{display:block;color:var(--navy);}
  .status-copy span{display:block;margin-top:3px;color:var(--muted);font-size:12px;}
  .status-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}

  /* Login modal */
  .modal-backdrop{
    position:fixed;
    inset:0;
    z-index:120;
    padding:20px;
    display:grid;
    place-items:center;
    background:rgba(16,24,44,.62);
    backdrop-filter:blur(5px);
  }
  .login-modal{
    position:relative;
    width:min(860px,100%);
    max-height:min(720px,92vh);
    overflow:auto;
    display:grid;
    grid-template-columns:.83fr 1.17fr;
    border-radius:8px;
    background:#fff;
    box-shadow:0 30px 90px rgba(0,0,0,.32);
  }
  .login-visual{
    position:relative;
    overflow:hidden;
    padding:42px 32px;
    background:var(--navy);
    color:#fff;
  }
  .login-visual::after{
    content:"";
    position:absolute;
    left:-10%;
    right:-10%;
    bottom:-22px;
    height:130px;
    background:
      linear-gradient(135deg,transparent 0 15%,#4c8b52 15% 31%,transparent 31% 42%,#ea6337 42% 58%,transparent 58% 69%,#75aa63 69% 100%);
    opacity:.8;
  }
  .login-pixel{
    position:relative;
    z-index:2;
    display:inline-grid;
    place-items:center;
    min-width:78px;
    min-height:78px;
    border:2px solid #fff;
    border-radius:7px;
    background:var(--orange);
    box-shadow:5px 5px 0 rgba(0,0,0,.22);
    font-size:21px;
    font-weight:900;
    line-height:1.05;
    text-align:center;
  }
  .login-visual h2{
    position:relative;
    z-index:2;
    margin:30px 0 10px;
    font-size:27px;
    line-height:1.25;
  }
  .login-visual p{
    position:relative;
    z-index:2;
    margin:0;
    color:#c8d1e7;
    font-size:13px;
  }
  .login-form{padding:38px 36px 30px;}
  .modal-close{
    position:absolute;
    z-index:5;
    top:12px;
    right:12px;
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.9);
    color:var(--ink);
  }
  .login-tabs{
    display:flex;
    gap:4px;
    margin-bottom:24px;
    padding:4px;
    border-radius:var(--radius);
    background:#eef1f5;
  }
  .login-tabs button{
    flex:1;
    min-height:38px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:var(--muted);
    font-size:12.5px;
    font-weight:750;
  }
  .login-tabs button.active{
    background:#fff;
    color:var(--navy);
    box-shadow:var(--shadow-sm);
  }
  .code-row{display:grid;grid-template-columns:1fr auto;gap:9px;margin-top:12px;}
  .social-login{
    width:100%;
    min-height:58px;
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:11px 14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:#fff;
    color:var(--navy);
  }
  .social-login + .social-login{margin-top:11px;}
  .social-login b{font-size:14px;}
  .social-login span{color:var(--muted);font-size:11px;}
  .agreement{
    margin:18px 0 0;
    color:var(--muted);
    font-size:11px;
  }

  /* Prototype controller */
  .demo-toggle{
    position:fixed;
    z-index:90;
    right:18px;
    bottom:18px;
    border-color:var(--ink);
    background:var(--ink);
    color:#fff;
    box-shadow:var(--shadow-md);
  }
  .demo-toggle:hover{border-color:var(--orange);background:var(--navy);}
  .demo-panel{
    position:fixed;
    z-index:100;
    right:18px;
    bottom:70px;
    width:280px;
    border:1px solid var(--line-strong);
    border-radius:8px;
    padding:16px;
    background:#fff;
    box-shadow:0 22px 60px rgba(23,35,63,.26);
  }
  .demo-panel-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
  }
  .demo-panel-head b{color:var(--navy);}
  .demo-panel-head span{color:var(--muted);font-size:11px;}
  .demo-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  .demo-panel-grid .btn{justify-content:flex-start;padding:7px 9px;font-size:11.5px;}
  .demo-panel-note{
    margin:12px 0 0;
    color:var(--muted);
    font-size:10.5px;
    line-height:1.55;
  }

  .toast{
    position:fixed;
    z-index:160;
    left:50%;
    bottom:28px;
    max-width:calc(100vw - 36px);
    transform:translate(-50%,20px);
    border-radius:7px;
    padding:11px 16px;
    background:var(--ink);
    color:#fff;
    box-shadow:0 12px 38px rgba(0,0,0,.28);
    font-size:12.5px;
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease,transform .2s ease;
  }
  .toast.show{opacity:1;transform:translate(-50%,0);}

  @keyframes floatIn{
    from{opacity:0;transform:translateY(10px);}
    to{opacity:1;transform:translateY(0);}
  }
  .page-view:not([hidden]) > .page-shell,
  .page-view:not([hidden]) > .success-hero{
    animation:floatIn .28s ease both;
  }

  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{
      animation-duration:.01ms!important;
      animation-iteration-count:1!important;
      transition-duration:.01ms!important;
    }
  }

  @media (max-width:1000px){
    .site-nav{display:none;}
    .hero{min-height:640px;}
    .hero-inner{min-height:580px;padding-top:62px;}
    .hero h1{font-size:56px;}
    .hero h1 span{font-size:53px;}
    .schedule-grid{grid-template-columns:repeat(2,1fr);}
    .card-layout{grid-template-columns:minmax(0,1fr) 360px;}
    .submission-layout{grid-template-columns:minmax(0,1fr) 280px;}
    .my-layout{grid-template-columns:280px minmax(0,1fr);}
  }

  @media (max-width:820px){
    .site-header{height:62px;}
    .site-header-inner{padding:0 16px;gap:12px;}
    .brand-copy span{display:none;}
    .brand-mark{width:34px;height:34px;font-size:19px;}
    .site-actions{gap:7px;}
    .site-actions .btn{padding:7px 10px;font-size:12px;min-height:38px;}
    .page-shell{padding:30px 16px 62px;}
    .page-title{font-size:27px;}
    .page-head-row{align-items:flex-start;flex-direction:column;}
    .section{padding:60px 16px;}
    .section-heading h2{font-size:28px;}
    .hero{
      min-height:auto;
      background:
        linear-gradient(180deg,rgba(251,248,240,.98) 0%,rgba(251,248,240,.92) 56%,rgba(251,248,240,.3) 100%),
        url("/campus.png") center bottom/auto 56% no-repeat,
        linear-gradient(180deg,#fbf8f0 0%,#e6d6ba 100%);
    }
    .hero-inner{min-height:650px;padding:52px 16px 94px;justify-content:flex-start;}
    .hero h1{margin-top:22px;font-size:46px;}
    .hero h1 span{font-size:42px;}
    .hero-copy{font-size:15px;}
    .hero-stats{margin-top:34px;grid-template-columns:1fr;padding:0;}
    .hero-stat{padding:10px 0;}
    .hero-stat + .hero-stat{border-left:0;border-top:1px solid rgba(23,35,63,.14);}
    .hero-stat b{font-size:20px;}
    .hero-ticker{justify-content:flex-start;overflow:hidden;}
    .hero-ticker span:last-child{display:none;}
    .hero-ticker strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
    .intro-grid,.award-grid,.judge-grid,.organizer-grid,.thanks-list{grid-template-columns:1fr;}
    .thanks-head{align-items:flex-start;flex-direction:column;gap:4px;}
    .company-hero{padding:52px 16px;}
    .company-hero-inner{grid-template-columns:1fr;gap:24px;}
    .company-hero-mark{width:112px;height:112px;border-radius:12px;font-size:42px;}
    .company-hero h1{font-size:34px;}
    .company-page{padding:38px 16px 56px;}
    .company-section{grid-template-columns:1fr;gap:13px;}
    .business-grid{grid-template-columns:1fr;}
    .rules-layout{grid-template-columns:1fr;gap:26px;}
    .home-cta-inner{align-items:flex-start;flex-direction:column;}
    .home-cta h2{font-size:25px;}
    .site-footer-inner{grid-template-columns:1fr;gap:18px;}
    .phase-strip{grid-template-columns:repeat(2,1fr);}
    .phase-item:nth-child(3){border-left:0;border-top:1px solid var(--line);}
    .phase-item:nth-child(4){border-top:1px solid var(--line);}
    .form-grid{grid-template-columns:1fr;}
    .form-field.full{grid-column:auto;}
    .purpose-grid{grid-template-columns:1fr;}
    .gate-grid{grid-template-columns:1fr;}
    .card-layout,.submission-layout,.my-layout{grid-template-columns:1fr;}
    .card-preview-column,.submission-aside{position:static;}
    .card-preview-column{order:-1;}
    .card-result-stage{padding:24px 14px 42px;}
    .status-row{grid-template-columns:38px minmax(0,1fr);}
    .status-actions{grid-column:2;justify-content:flex-start;}
    .login-modal{grid-template-columns:1fr;}
    .login-visual{padding:26px 24px;}
    .login-visual h2{margin-top:20px;font-size:23px;}
    .login-visual::after{height:72px;bottom:-38px;}
  }

  @media (max-width:560px){
    body{font-size:14px;}
    .site-header-inner{padding:0 12px;}
    .brand-copy b{font-size:13px;}
    .site-actions .btn.ghost{display:none;}
    .hero-inner{min-height:630px;}
    .hero-kicker{font-size:10.5px;padding:6px 10px;}
    .hero h1{font-size:39px;}
    .hero h1 span{font-size:34px;}
    .hero-actions{width:100%;}
    .hero-actions .btn{flex:1;}
    .hero-stats{width:100%;}
    .schedule-grid{grid-template-columns:1fr;}
    .section-heading h2{font-size:25px;}
    .rule-list li{grid-template-columns:1fr;gap:3px;}
    .phase-item{padding:12px;}
    .form-panel-head,.form-panel-body,.form-actions{padding-left:16px;padding-right:16px;}
    .form-actions{align-items:stretch;flex-direction:column-reverse;}
    .form-actions-right,.form-actions .btn{width:100%;}
    .summary-row{grid-template-columns:1fr;gap:2px;}
    .success-hero{padding:38px 16px;}
    .success-hero h1{font-size:31px;}
    .reg-number{align-items:flex-start;flex-direction:column;}
    .gate{padding:22px 18px;}
    .gate-status{position:static;display:inline-block;margin-top:15px;}
    .card-preview-column .ability-card{max-width:420px;margin:0 auto;}
    .submission-check li{padding-left:38px;}
    .submission-check li::before{left:16px;}
    .demo-panel{left:12px;right:12px;bottom:72px;width:auto;}
    .demo-toggle{right:12px;bottom:12px;width:42px;height:42px;padding:0;font-size:0;}
    .toast{bottom:72px;width:max-content;}
  }
