/* MAL 4: theme explorer, architecture illustration and submission preparation. */
:root{--motion-fast:160ms;--motion-panel:320ms;--motion-ease:cubic-bezier(.22,1,.36,1)}
[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}
.track[id]{scroll-margin-top:100px}
.skip-link{position:fixed;top:10px;left:16px;z-index:20;padding:12px 20px;background:var(--green);color:var(--bg);transform:translateY(-150%);font-weight:700}
.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:2px solid var(--green);outline-offset:5px}
.hero{padding:64px 0 48px}.hero:after{display:none}
.hero-inner{max-width:none;display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:32px}
.hero-copy{min-width:0}.theme-label{font:600 11px JetBrains Mono,monospace;color:var(--muted);letter-spacing:.18em;margin:30px 0 0}
.hero h1{font-size:clamp(54px,6vw,80px);margin:14px 0 24px;line-height:1.06;letter-spacing:-.065em}
.hero .lead{max-width:490px;font-size:20px;line-height:1.55;color:var(--ink);text-wrap:pretty}
.hero-context{color:var(--muted);max-width:480px;font-size:15px}
.hero .actions{gap:10px;margin-top:26px}.hero .actions .button{padding:12px 17px;font-size:13px;gap:12px}
.hero .meta{grid-column:1/-1;margin-top:8px;padding-top:24px;border-top:1px solid var(--line);gap:9px}
.hero .meta span{padding:8px 11px;font-size:12px}
.architecture-playground{margin:0;padding:22px;border:1px solid #33415a;border-radius:24px;background:#0d1422;box-shadow:0 25px 70px -45px #3da8f5;color:#f3f7ff;min-width:0}
.diagram-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:10px;letter-spacing:.1em;color:#a8b4cc}
.diagram-state{border:1px solid #3a685a;border-radius:99px;padding:4px 9px;color:#5ee6a8;font:500 10px JetBrains Mono,monospace;letter-spacing:0}
.architecture-art{display:block;width:100%;height:auto;margin-top:6px;font-family:Inter,system-ui,sans-serif}
.connection{stroke:#3f6672}.service-connection{stroke:#3da8f5}.failure-mark{opacity:0;transition:opacity var(--motion-fast) ease}
.architecture-playground.is-failed .failure-mark{opacity:1}.architecture-playground.is-failed .service-node{stroke:#ffb49e;fill:#30212a}.architecture-playground.is-failed .service-connection{stroke:#ffb49e;stroke-dasharray:4 5}
.architecture-playground.is-failed .diagram-state{color:#ffb49e;border-color:#a66d5e}
.architecture-playground figcaption{font-size:12px;color:#c3cddd;line-height:1.55}
.simulation-controls{display:flex;gap:10px;margin-top:16px}.demo-button{min-height:44px;padding:9px 12px;flex:1;border:1px solid #52617a;border-radius:9px;background:#182337;color:#f3f7ff;font:600 12px Inter,system-ui,sans-serif;cursor:pointer;transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease}
.demo-button:hover:not(:disabled):not([aria-disabled="true"]){background:#22354b;border-color:#5ee6a8}.demo-button:disabled,.demo-button[aria-disabled="true"]{opacity:.45;cursor:not-allowed}.demo-button:focus-visible{outline-color:#5ee6a8}
.simulation-status{min-height:3.2em;margin:12px 0 0;font-size:12px;color:#a8b4cc;line-height:1.6}
.theme-note{max-width:760px;color:var(--muted);padding-left:20px;border-left:2px solid var(--violet);margin-top:22px}
.track-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:30px}
.track-picker button{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:137px;text-align:left;padding:20px;border:1px solid #536078;border-radius:15px;color:var(--ink);background:var(--glass);font:600 18px Sora,Inter,sans-serif;cursor:pointer;transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,transform var(--motion-fast) ease}
.track-picker button:hover{border-color:var(--green)}.track-picker button[aria-pressed="true"]{border-color:var(--green);background:rgba(94,230,168,.09);box-shadow:inset 0 3px var(--green)}
.track-index{font:500 11px JetBrains Mono,monospace;color:var(--green)}.track-hint{font:400 12px/1.5 Inter,sans-serif;color:var(--muted)}
.tracks.is-enhanced{display:block;margin-top:20px}.tracks.is-enhanced .track{display:flow-root;min-height:520px;padding:34px}
.track-illustration{display:block;width:100%;height:auto;margin:20px 0 24px;border-radius:16px;background:#101a2c}
.tracks.is-enhanced .track-illustration{float:right;width:42%;margin:6px 0 24px 36px}
.tracks.is-enhanced .track h3{max-width:620px;font-size:clamp(24px,3vw,32px);margin:12px 0 22px}
.tracks.is-enhanced .track p,.tracks.is-enhanced .track ol{font-size:15px}.tracks.is-enhanced .track .rule{clear:both}
.checklist-intro{color:var(--muted);font-size:14px}#submission-progress{font:600 13px JetBrains Mono,monospace;color:var(--green);margin-top:26px}
.submission-meter{height:4px;background:var(--line);border-radius:4px;overflow:hidden;margin-bottom:20px}.submission-meter span{display:block;height:100%;background:var(--green);transform:scaleX(var(--submission-progress,0));transform-origin:left;transition:transform var(--motion-panel) var(--motion-ease)}
.submission-checklist{list-style:none;padding:0;margin:0}.submission-checklist li{border-bottom:1px solid var(--line)}
.submission-checklist label{display:flex;gap:18px;padding:19px 8px;cursor:pointer;border-radius:8px;transition:background-color var(--motion-fast) ease}
.submission-checklist label:hover{background:var(--glass)}.submission-checklist input{width:22px;height:22px;flex-shrink:0;accent-color:var(--green);margin:4px 0 0;cursor:pointer}.submission-checklist label:focus-within{outline:2px solid var(--green);outline-offset:2px}
.submission-checklist span{color:var(--muted);font-size:15px}.submission-checklist strong{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
.submission-checklist input:checked+span strong:after{content:' · Ready';color:var(--green);font-size:12px}
.score-highlight{border-radius:9px}.closing-line{font-size:clamp(23px,3vw,34px);max-width:800px;line-height:1.5;margin:40px 0 0;text-wrap:balance}
.sponsors{align-items:center;gap:20px}.sponsor-lockup{display:flex;align-items:center;justify-content:center;gap:12px;min-height:72px;padding:16px 20px;border:1px solid var(--line);border-radius:12px;background:var(--glass)}.sponsor-lockup img{display:block;width:40px;height:40px;object-fit:contain}.sponsor-lockup .wide-logo{width:215px;height:auto}.sponsor-lockup .paytm-logo{width:190px;height:auto}.sponsor-lockup.light{background:#fff}.sponsor-lockup .ocean-logo{background:#fff;border-radius:6px;padding:3px}
.bonus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:30px}.bonus-card{min-width:0;padding:28px;display:flex;flex-direction:column}.bonus-art{color:var(--green);margin-bottom:24px;padding:12px 20px;background:rgba(94,230,168,.045);border-radius:12px}.bonus-art svg{display:block;width:100%;height:108px}.bonus-ai .bonus-art{color:#c4a5ff;background:rgba(167,123,255,.065)}.bonus-card h3{font-size:24px;line-height:1.35;margin:14px 0}.bonus-card p,.bonus-card ul{font-size:15px;color:var(--muted)}.bonus-card ul{padding-left:21px;margin:18px 0}.bonus-card li+li{margin-top:12px}.bonus-card code{font-size:13px;overflow-wrap:anywhere;color:var(--ink)}.bonus-card .bonus-evidence{padding:17px 0;border-top:1px solid var(--line);margin:0 0 12px}.bonus-card strong{color:var(--ink)}.bonus-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:auto;color:var(--green);font-size:14px;font-weight:600}.bonus-ai .bonus-link{color:#c4a5ff}.bonus-link:hover{text-decoration:underline;text-underline-offset:5px}
.bonus-brand{display:flex;align-items:center;justify-content:center;gap:18px;min-height:132px}.bonus-brand img{display:block;width:80px;height:80px;object-fit:contain;flex-shrink:0}.bonus-brand span{font:600 clamp(23px,2.2vw,30px) Inter,system-ui,sans-serif;color:var(--ink);letter-spacing:-.04em}
@media(max-width:760px){.bonus-grid{grid-template-columns:1fr}.bonus-card{padding:22px}.bonus-card h3{font-size:23px}.bonus-brand{padding:12px;gap:12px}.bonus-brand img{width:64px;height:64px}}
@media(prefers-reduced-motion:no-preference){
  .hero-copy{animation:theme-enter 600ms var(--motion-ease) both}.architecture-playground{animation:theme-enter 650ms var(--motion-ease) 100ms both}
  .track.is-entering{animation:track-enter var(--motion-panel) var(--motion-ease) both}
  .architecture-playground.is-replaying .request-packet{animation:request-replay 1000ms ease-in-out both}
  .reveal-pending{opacity:0;transform:translateY(16px);transition:opacity 480ms var(--motion-ease),transform 480ms var(--motion-ease)}
  .reveal-pending.is-visible,.reveal-pending:focus-within{opacity:1;transform:none}
  @keyframes theme-enter{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
  @keyframes track-enter{from{opacity:.2;transform:translateY(8px)}to{opacity:1;transform:none}}
  @keyframes request-replay{0%{opacity:0;transform:translateX(-30px)}20%{opacity:1}60%{opacity:1;transform:translateX(40px)}100%{opacity:0;transform:translateX(60px)}}
}
@media(max-width:1000px){.hero-inner{gap:25px}.hero h1{font-size:64px}.hero .eyebrow{font-size:9px}.hero .actions{flex-direction:column;align-items:flex-start}.hero .actions .button{min-width:220px}.track-picker button{padding:16px}}
@media(max-width:760px){.hero{padding:48px 0 35px}.hero-inner{grid-template-columns:1fr;gap:30px}.hero h1{font-size:clamp(56px,11vw,74px)}.hero .eyebrow{font-size:10px}.hero .actions{flex-direction:row;align-items:stretch}.hero .actions .button{min-width:0}.architecture-playground{max-width:490px;width:100%;padding:19px}.hero .meta{margin-top:0;gap:8px}.hero .meta span{font-size:12px}.track-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.track-picker button{min-height:125px;font-size:16px}.tracks.is-enhanced .track{min-height:0;padding:22px}.tracks.is-enhanced .track-illustration{float:none;width:100%;max-width:440px;margin:18px 0 24px}.tracks.is-enhanced .track h3{font-size:25px}.theme-note{font-size:15px}.demo-button{font-size:12px}.simulation-status{min-height:3.2em}.score-table{min-width:580px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover{transform:none}.reveal-pending{opacity:1;transform:none}}
@media print{.nav,.actions,.simulation-controls,.track-picker,.skip-link{display:none!important}.track[hidden]{display:block!important}.track-illustration{max-width:200px}.reveal-pending{opacity:1;transform:none}.architecture-playground{break-inside:avoid}}
