:root {
  --ink: #030812;
  --ink-2: #07111f;
  --panel: #0b1727;
  --white: #f5f8fb;
  --muted: #91a1b8;
  --line: rgba(147, 184, 220, .18);
  --blue: #19baf7;
  --blue-2: #0878ff;
  --green: #2ff3a7;
  --cyan: #62f6ff;
  --paper: #eef2f5;
  --max: 1180px;
  --radius: 8px;
  color-scheme: dark;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--white); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans TC", sans-serif; line-height: 1.6; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.shell { width: min(calc(100% - 48px), var(--max)); margin-inline: auto; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; padding: 10px 16px; background: white; color: black; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
.announcement { min-height: 35px; padding: 7px 24px; display: flex; justify-content: center; align-items: center; gap: 14px; background: linear-gradient(90deg, #096ef0, #16b9ca, #14c77c); color: #001021; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.announcement-separator { width: 3px; height: 3px; border-radius: 50%; background: currentColor; }
.site-header { position: sticky; top: 0; z-index: 50; background: rgba(3,8,18,.86); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }
.nav { height: 76px; display: flex; align-items: center; gap: 28px; }
.brand { margin-right: auto; display: inline-flex; align-items: center; gap: 12px; line-height: 1; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 13px; letter-spacing: .16em; }
.brand small { margin-top: 5px; color: var(--muted); font-size: 9px; letter-spacing: .24em; }
.brand-mark { width: 38px; height: 38px; position: relative; display: grid; place-items: center; border: 1px solid rgba(70,222,255,.7); transform: rotate(45deg); }
.brand-mark::before { content: ""; position: absolute; inset: 5px; border: 1px solid rgba(47,243,167,.65); }
.brand-mark i { width: 4px; height: 4px; position: absolute; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 10px var(--cyan); }
.brand-mark i:nth-child(1) { top: 8px; left: 8px; }.brand-mark i:nth-child(2) { bottom: 8px; right: 8px; }.brand-mark i:nth-child(3) { inset: 0; margin: auto; }
.nav-links { display: flex; gap: 25px; align-items: center; }
.nav-links a { position: relative; font-size: 13px; color: #bac6d6; }
.nav-links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: var(--green); transition: right .25s; }
.nav-links a:hover { color: white; }.nav-links a:hover::after { right: 0; }
.menu-button { display: none; }
.button { border: 0; min-height: 49px; padding: 0 24px; display: inline-flex; align-items: center; justify-content: center; gap: 20px; border-radius: 3px; background: linear-gradient(115deg, var(--blue-2), #10c2e3 55%, var(--green)); color: #001322; font-weight: 850; cursor: pointer; box-shadow: 0 10px 30px rgba(18,181,231,.18); transition: transform .2s, box-shadow .2s; }
.button:hover { transform: translateY(-2px); box-shadow: 0 14px 38px rgba(18,181,231,.28); }
.button-small { min-height: 40px; padding: 0 17px; font-size: 12px; }
.hero { min-height: 710px; position: relative; overflow: hidden; background: #030812; }
.hero::before { content: ""; position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(rgba(50,206,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(50,206,255,.2) 1px, transparent 1px); background-size: 64px 64px; mask-image: linear-gradient(to right, black, transparent 65%); }
.hero-grid { min-height: 760px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; position: relative; z-index: 2; }
.hero-copy { padding: 84px 0 64px; }
.eyebrow, .section-kicker { color: var(--cyan); font-size: 11px; font-weight: 850; letter-spacing: .23em; }
/* hero 的 eyebrow 放大到約 3 倍(11px -> 最大 34px)。字級一放大，原本 .23em 的
   字距會把這 30 個字撐到 700px 的 hero-copy 之外，所以字距一併收掉——
   字距是為 11px 的小字設計的，照搬到 34px 會直接溢出版面。 */
.eyebrow { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; font-size: clamp(22px, 2.6vw, 34px); letter-spacing: .04em; line-height: 1.12; }
.eyebrow span { flex: none; width: 44px; height: 2px; background: var(--cyan); box-shadow: 0 0 10px var(--cyan); }
.hero h1 { max-width: 700px; margin: 26px 0 22px; font-size: clamp(46px, 5.6vw, 78px); line-height: 1.06; letter-spacing: -.055em; }
.hero h1 em { font-style: normal; color: transparent; -webkit-text-stroke: 1.4px #52ecff; text-shadow: 0 0 25px rgba(41,221,255,.2); }
.hero-lead { max-width: 640px; margin: 0; color: #a8b6c8; font-size: 20px; line-height: 1.55; }
.hero-actions { margin-top: 36px; display: flex; align-items: center; gap: 30px; }
.text-link { padding-bottom: 5px; border-bottom: 1px solid #718098; color: #d2dae5; font-size: 14px; }
.text-link span { margin-left: 14px; color: var(--green); }
.hero-meta { margin: 54px 0 0; display: flex; gap: 0; }
.hero-meta div { min-width: 0; padding: 0 22px; border-left: 1px solid var(--line); }.hero-meta div:first-child { padding-left: 0; border: 0; }
.hero-meta dt { color: #718096; font-size: 11px; }.hero-meta dd { margin: 2px 0 0; font-size: 15px; font-weight: 750; letter-spacing: .04em; }
.hero-art { height: 680px; position: relative; margin-left: 0; }
.hero-art::after { content: ""; position: absolute; inset: 12% 7%; z-index: -1; background: radial-gradient(circle,rgba(19,186,247,.18),rgba(47,243,167,.06) 48%,transparent 72%); filter: blur(70px); }
.hero-art img { width: 100%; height: 100%; object-fit: contain; object-position: center; filter: saturate(.9) contrast(1.05); }
.image-glow { position: absolute; inset: 10% 8%; background: radial-gradient(circle, rgba(18,255,207,.2), transparent 60%); filter: blur(45px); }
.hero-lines { position: absolute; bottom: -100px; right: -80px; width: 520px; height: 250px; border: 1px solid rgba(47,243,167,.22); border-radius: 50%; transform: skew(-20deg); }
.fact-strip { background: #08121f; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.fact-grid { display: grid; grid-template-columns: repeat(4,1fr); }
.fact-grid article { min-height: 150px; padding: 30px 28px; border-left: 1px solid var(--line); }.fact-grid article:last-child { border-right: 1px solid var(--line); }
.fact-grid span { color: var(--blue); font-size: 10px; letter-spacing: .15em; }.fact-grid strong { display: block; margin-top: 13px; font-size: 18px; }.fact-grid p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.section { padding: 120px 0; }.section-dark { background: var(--ink); }.section-light { background: var(--paper); color: #0b1726; }
.split-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 90px; align-items: end; }
.section h2 { margin: 14px 0 0; font-size: clamp(36px,5vw,62px); line-height: 1.13; letter-spacing: -.045em; }
.section-intro { padding-left: 38px; border-left: 1px solid var(--line); color: #9eacbd; font-size: 16px; }.section-intro p:first-child { margin-top: 0; color: white; font-size: 20px; }
.capability-grid { margin-top: 70px; display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.capability-grid article { min-height: 320px; padding: 28px; position: relative; border-left: 1px solid var(--line); background: linear-gradient(180deg,rgba(8,25,41,.5),transparent); overflow: hidden; }.capability-grid article:last-child { border-right: 1px solid var(--line); }.capability-grid article:hover { background: linear-gradient(180deg,rgba(12,56,78,.7),rgba(6,14,25,.3)); }
.card-number { color: var(--blue); font: 11px/1 monospace; }.capability-grid h3 { margin: 75px 0 10px; font-size: 20px; }.capability-grid p { color: #8797aa; font-size: 13px; }
.node-icon { height: 70px; position: absolute; left: 28px; right: 28px; bottom: 15px; opacity: .32; }.node-icon::before,.node-icon::after { content: ""; position: absolute; top: 34px; width: 100%; border-top: 1px solid var(--cyan); transform: rotate(8deg); }.node-icon::after { transform: rotate(-8deg); }.node-icon i { position: absolute; width: 7px; height: 7px; border: 1px solid var(--cyan); border-radius: 50%; background: var(--ink); }.node-icon i:nth-child(1){left:0;top:31px}.node-icon i:nth-child(2){left:48%;top:18px}.node-icon i:nth-child(3){right:0;top:31px}
.threshold-note { margin-top: 28px; padding: 20px 26px; display: flex; gap: 35px; align-items: center; background: rgba(14,137,255,.08); border-left: 2px solid var(--blue); }.threshold-note strong { white-space: nowrap; color: var(--cyan); font-size: 13px; }.threshold-note p { margin: 0; color: #95a5b8; font-size: 13px; }
.section-heading { max-width: 680px; }/* 這行標題 12 個字,680px 會斷在「到」之前;放寬到 820px 讓桌機一行走完,手機仍照常換行。 */
#workshop .section-heading { max-width: 820px; }.section-heading > p:last-child { color: #667587; }.section-kicker.blue { color: #077cd4; }.centered { margin-inline: auto; text-align: center; }
.rules-layout { margin-top: 55px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 25px; }
.rule-primary { min-height: 480px; padding: 50px; background: #061322; color: white; border-radius: var(--radius); position: relative; overflow: hidden; }.rule-primary::after { content:""; position:absolute; width:320px;height:320px;right:-130px;bottom:-160px;border:1px solid #0c84a5;border-radius:50%;box-shadow:0 0 0 45px rgba(17,173,203,.05),0 0 0 90px rgba(17,173,203,.03); }
.rule-tag { padding: 6px 10px; display: inline-block; background: rgba(26,188,247,.14); color: var(--cyan); border: 1px solid rgba(55,215,255,.25); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.rule-primary h3 { margin: 32px 0; font-size: 29px; line-height: 1.3; }
.check-list { padding: 0; margin: 0; list-style: none; }.check-list li { padding: 11px 0 11px 28px; position: relative; border-top: 1px solid var(--line); color: #b6c2d1; font-size: 14px; }.check-list li::before { content:"✓"; position:absolute; left:0; color:var(--green);font-weight:bold; }
.submission-card { padding: 42px; background: white; border: 1px solid #d9e0e7; border-radius: var(--radius); box-shadow: 0 18px 50px rgba(22,36,54,.08); }
.submission-head { display: flex; gap: 18px; align-items: center; padding-bottom: 30px; border-bottom: 1px solid #dae1e7; }.submission-head > span { width: 62px;height:72px;display:grid;place-items:center;background:#e5f5fd;color:#0478b9;font-weight:900;clip-path:polygon(0 0,70% 0,100% 25%,100% 100%,0 100%); }.submission-head small,.submission-head strong { display:block; }.submission-head small { color:#758393;font-size:11px; }.submission-head strong { margin-top:4px;font-size:20px; }
.submission-card dl { margin: 22px 0; }.submission-card dl div { padding: 12px 0; display:grid;grid-template-columns:95px 1fr;border-bottom:1px solid #e4e8ec; }.submission-card dt { color:#7d8997;font-size:12px; }.submission-card dd { margin:0;font-size:13px;font-weight:700;word-break:break-all; }.mini-note { margin-top:20px;padding:14px;background:#f1f6f8;color:#586675;font-size:11px; }
.schedule-section { background: radial-gradient(circle at 80% 20%,rgba(0,125,204,.16),transparent 25%),#030812; }
.timeline { margin-top: 60px; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.timeline-item { min-height: 252px; padding: 28px; display: grid; grid-template-columns: 104px 1fr; border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(7,18,31,.55); }.timeline-item time { color:var(--cyan);font:800 26px/1.15 monospace;letter-spacing:-.01em; }.timeline-item span { color:#657891;font-size:10px;letter-spacing:.12em; }.timeline-item span.deadline { color:#ffb020;font-size:14px;font-weight:850;letter-spacing:.04em; }.timeline-item h3 { margin:13px 0 8px;font-size:21px;font-weight:800;line-height:1.3; }.timeline-item p { margin:0;color:#7f8ea2;font-size:12px; }.timeline-item.highlight { background:linear-gradient(145deg,rgba(7,83,137,.5),rgba(4,22,37,.7)); }.timeline-item.green { background:linear-gradient(145deg,rgba(3,112,80,.44),rgba(4,22,37,.7)); }.timeline-item.green time { color:var(--green); }
/* 評分標準:版型比照企劃書 p7(四欄卡、色標題、大百分比、條列)與 p14(雙卡、頂部色條)。 */
.criteria-grid { margin-top:52px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;align-items:stretch; }
.criteria-grid article { display:flex;flex-direction:column;padding:28px 24px 26px;background:white;border:1px solid #dde4ea;border-top:4px solid var(--accent);border-radius:var(--radius);box-shadow:0 14px 40px rgba(22,36,54,.07); }
.criteria-grid h3 { margin:0;color:var(--accent);font-size:20px;letter-spacing:-.01em; }
.criteria-grid small { display:block;margin-top:6px;color:#7e8b98;font-size:12px;letter-spacing:.02em; }
.criteria-grid .pct { display:block;margin:14px 0 20px;color:#0f2232;font-size:42px;font-weight:900;line-height:1;letter-spacing:-.04em; }
.criteria-grid ul,.final-criteria-grid ul { margin:0;padding-left:17px; }
.criteria-grid li { margin-bottom:11px;color:#4d5a68;font-size:13px;line-height:1.62; }
.criteria-grid li::marker,.final-criteria-grid li::marker { color:var(--accent); }
.final-criteria { margin-top:88px;padding-top:46px;border-top:1px solid #cbd4dc; }
.final-criteria-grid { margin-top:34px;display:grid;grid-template-columns:1fr 1fr;gap:22px; }
.final-criteria-grid article { padding:30px;background:white;border:1px solid #dde4ea;border-top:4px solid var(--accent);border-radius:var(--radius);box-shadow:0 14px 40px rgba(22,36,54,.07); }
.final-criteria-grid h3 { margin:0;font-size:21px; }
.final-criteria-grid small { display:block;margin-top:7px;color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.02em; }
.final-criteria-grid ul { margin-top:18px; }
.final-criteria-grid li { margin-bottom:10px;color:#4d5a68;font-size:13.5px;line-height:1.65; }
.awards-section { background: radial-gradient(circle at 50% 60%,rgba(3,174,255,.14),transparent 36%),#06101d; }
.award-group { margin:56px 0 20px;color:var(--accent);font-size:13px;font-weight:850;letter-spacing:.16em; }
.award-group::before { content:"";display:inline-block;width:26px;height:2px;margin-right:12px;vertical-align:middle;background:var(--accent); }
.award-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:22px; }
.award-grid.single { grid-template-columns:1fr; }.award-grid.single article { min-height:0;padding:32px 40px; }.award-grid article { min-height:470px;padding:32px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid var(--line);position:relative;overflow:hidden;background:rgba(5,17,30,.6); }.award-grid article > p,.award-grid article > h3,.award-grid article > strong,.award-grid article > small,.award-grid article > span { position:relative;z-index:2; }.award-grid p { color:var(--cyan);font-size:11px;font-weight:800;letter-spacing:.16em; }.award-grid h3 { margin:5px 0;font-size:26px;line-height:1.2; }.award-grid strong { color:#dce6ef; }.award-grid small { color:#73859a; }.prize-photo { position:absolute;inset:0 0 auto;height:285px;display:block;overflow:hidden;background:#080d13; }.prize-photo::after { content:"";position:absolute;inset:42% 0 0;background:linear-gradient(transparent,#06101d);pointer-events:none; }.prize-photo img { width:100%;height:100%;object-fit:cover;transition:transform .45s ease; }.prize-photo:hover img { transform:scale(1.025); }.prize-photo span { position:absolute;top:18px;right:18px;z-index:2;padding:5px 8px;background:rgba(2,7,13,.72);border:1px solid rgba(98,246,255,.24);color:#b7f8ff;font-size:8px;letter-spacing:.1em; }/* 次獎改用 NVIDIA 綠底官方行銷圖(非去背 PNG)，因此與首獎卡一樣滿版裁切；
   日後若拿到去背的產品渲染圖，把下面兩行換回 contain + 放射底即可。 */
.prize-plate { position:absolute;inset:0 0 auto;height:285px;display:grid;place-items:center;background:radial-gradient(circle at 50% 38%,rgba(47,243,167,.16),transparent 62%),#080d13; }
.prize-plate::after { content:"";position:absolute;inset:42% 0 0;background:linear-gradient(transparent,#06101d); }
.prize-plate span { color:transparent;-webkit-text-stroke:1.2px rgba(98,246,255,.55);font-size:30px;font-weight:900;line-height:1.15;letter-spacing:.02em;text-align:center; }
.event-panels { margin-top:55px;display:grid;grid-template-columns:1fr 1fr;gap:24px; }.event-panels article { min-height:420px;padding:38px;display:grid;grid-template-columns:110px 1fr;gap:32px;border:1px solid var(--line);background:linear-gradient(150deg,rgba(6,37,56,.7),rgba(3,10,18,.4)); }.event-date strong,.event-date span { display:block; }.event-date strong { color:var(--cyan);font:800 40px/1 monospace; }.event-date span { margin-top:10px;color:#60738c;font:10px/1.4 monospace;letter-spacing:.15em; }.event-panels h3 { margin:20px 0 12px;font-size:25px; }.event-panels p,.event-panels li { color:#91a0b2;font-size:13px; }.event-panels ul { margin-top:25px;padding:0;list-style:none; }.event-panels li { padding:9px 0;border-bottom:1px solid var(--line); }.event-panels li::before { content:"//";margin-right:10px;color:var(--blue);font-family:monospace; }.green-tag { color:var(--green);border-color:rgba(47,243,167,.25);background:rgba(47,243,167,.08); }
.faq-layout { display:grid;grid-template-columns:.75fr 1.25fr;gap:100px; }.accordion { border-top:1px solid #c7d0d8; }.accordion details { border-bottom:1px solid #c7d0d8; }.accordion summary { padding:24px 0;display:flex;justify-content:space-between;gap:30px;cursor:pointer;font-size:16px;font-weight:750;list-style:none; }.accordion summary::-webkit-details-marker{display:none}.accordion summary span { color:#168cc9;font-size:24px;font-weight:300;transition:transform .2s; }.accordion details[open] summary span { transform:rotate(45deg); }.accordion details p { margin:-7px 50px 24px 0;color:#637283;font-size:13px; }
.partner-section { padding:55px 0;background:#fff;color:#142030;border-top:1px solid #d8e0e6; }/* 夥伴從 4 組增為 6 組。原本是寫死的四欄寬度比，再加兩組會擠爆；
   改成 auto-fit 之後欄數隨可用寬度自己決定，之後再增減組別也不必動 CSS。 */
.partner-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:32px 24px; }.partner-grid div { padding-left:22px;border-left:2px solid #dfe6eb; }.partner-grid small,.partner-grid strong { display:block; }.partner-grid small { margin-bottom:12px;color:#83909d;font-size:9px;letter-spacing:.12em; }.partner-grid strong { margin:4px 0;font-size:13px; }
.final-cta { padding:130px 0;text-align:center;background:radial-gradient(circle at 50% 20%,rgba(19,186,236,.16),transparent 38%),linear-gradient(180deg,#06131f,#030812); }.final-cta p { color:var(--cyan);font-size:10px;font-weight:800;letter-spacing:.25em; }.final-cta h2 { margin:20px 0 38px;font-size:clamp(40px,6vw,70px);line-height:1.12;letter-spacing:-.05em; }
.footer { padding:55px 0;background:#02060d;border-top:1px solid var(--line); }.footer-grid { display:grid;grid-template-columns:1.2fr .7fr .9fr 1.1fr;gap:48px;align-items:start; }.footer-grid > div { display:flex;flex-direction:column;gap:7px;color:#78889b;font-size:12px; }.footer-grid a:hover { color:var(--cyan); }

.registration-dialog { width:min(960px,calc(100% - 30px));max-height:94vh;padding:0;border:1px solid rgba(75,219,255,.35);border-radius:10px;background:#07111d;color:white;box-shadow:0 30px 100px rgba(0,0,0,.7); }.registration-dialog::backdrop { background:rgba(0,4,10,.82);backdrop-filter:blur(8px); }.dialog-shell { padding:34px 40px 38px; }.dialog-head { display:flex;justify-content:space-between;align-items:start; }.dialog-head h2 { margin:3px 0 0;font-size:30px; }.dialog-kicker { color:var(--cyan);font:800 9px/1 monospace;letter-spacing:.18em; }/* 文字 × 在字體裡的上下留白不對稱,任何置中手段都會差幾個像素,
   改用幾何繪製的 SVG,中心點是算出來的。place-items 讓它在 38x38 內正中。 */
.icon-button { width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:transparent;color:white;font-size:26px;cursor:pointer;;display:grid;place-items:center;line-height:1; }.progress { margin:30px 0 40px;display:flex;align-items:center; }.progress > span { width:32px;height:32px;display:grid;place-items:center;border:1px solid #385069;border-radius:50%;color:#71859b;font:700 11px/1 monospace;position:relative; }.progress > span.active { background:var(--cyan);border-color:var(--cyan);color:#04121d;box-shadow:0 0 25px rgba(65,233,255,.25); }.progress span small { width:80px;position:absolute;top:40px;left:50%;transform:translateX(-50%);text-align:center;color:#71859b;font:10px/1.2 sans-serif; }.progress span.active small { color:#d8faff; }.progress i { flex:1;height:1px;background:#26394d; }
.form-step { display:none; }.form-step.active { display:block;animation:fade .25s ease; }.form-heading { margin-bottom:27px; }.form-heading span { color:var(--blue);font:800 9px/1 monospace;letter-spacing:.15em; }.form-heading h3 { margin:7px 0 2px;font-size:24px; }.form-heading p { margin:0;color:#8091a5;font-size:12px; }
.form-grid { display:grid;grid-template-columns:1fr 1fr;gap:18px; }.form-grid .span-2,.member-card .span-2 { grid-column:span 2; }.form-grid label,.member-card label { color:#aebac7;font-size:11px;font-weight:700;letter-spacing:.03em; }.form-grid input,.form-grid select,.form-grid textarea,.member-card input { width:100%;margin-top:7px;padding:12px 13px;border:1px solid #2a3e53;border-radius:4px;background:#0b1928;color:white;outline:none; }.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus,.member-card input:focus { border-color:var(--cyan);box-shadow:0 0 0 3px rgba(55,215,255,.08); }.form-grid input:disabled { color:#98a9bb;background:#101b27;border-color:#223347;cursor:not-allowed; }.form-grid textarea { min-height:90px;resize:vertical; }.char-count { float:right;color:#61748a;font-weight:400; }.field-note { display:block;margin-top:5px;color:#6f8399;font-weight:400;letter-spacing:0; }
.dialog-actions { margin-top:34px;padding-top:24px;display:flex;justify-content:flex-end;gap:12px;border-top:1px solid var(--line); }.secondary-button { min-height:44px;padding:0 18px;border:1px solid #33485f;border-radius:3px;background:transparent;color:#d4dde6;cursor:pointer; }.hidden { display:none!important; }.form-error { min-height:20px;margin-top:16px;color:#ff8b8b;font-size:12px; }
.member-list { display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px; }.member-card { margin:0;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:12px;position:relative;border:1px solid #24394e;border-radius:5px;background:#091725; }.member-card legend { padding:0 8px;color:var(--cyan);font-size:11px;font-weight:800; }.remove-member { position:absolute;right:14px;top:-12px;border:0;background:#091725;color:#778a9e;font-size:10px;cursor:pointer; }.form-hint { color:#77899e;font-size:11px; }
.file-rule-box { padding:20px;border:1px solid #284158;background:#091928; }.file-rule-box strong { display:inline-block;color:var(--cyan);font:700 12px/1.4 monospace;word-break:break-all; }.copy-button { margin-left:12px;border:0;background:transparent;color:var(--green);font-size:10px;cursor:pointer; }.file-rule-box ul { margin:14px 0 0;padding:0;display:flex;gap:28px;list-style:none;color:#8092a6;font-size:10px; }.upload-zone { margin-top:18px;min-height:145px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #38627f;background:rgba(8,35,54,.5);cursor:pointer; }.upload-zone:hover { border-color:var(--cyan); }.upload-zone input { position:absolute;opacity:0;pointer-events:none; }.upload-zone strong { font-size:13px; }.upload-zone small { margin-top:4px;color:#71849a;font-size:10px; }.upload-icon { color:var(--cyan);font-size:28px; }.file-status { margin:12px 0;color:#8fa1b5;font-size:11px; }.file-status.error { color:#ff8888; }.form-grid label.hidden { display:none; }.file-status.warn { color:#ffb020; }.file-status.success { color:var(--green); }.consent { margin-top:20px;display:flex;gap:11px;align-items:flex-start;color:#99a9bb;font-size:11px; }.consent input { accent-color:var(--green); }
.success-view { padding:50px 0 20px;text-align:center; }.success-mark { width:70px;height:70px;margin:auto;display:grid;place-items:center;border-radius:50%;background:rgba(47,243,167,.12);border:1px solid var(--green);color:var(--green);font-size:28px; }.success-view h3 { margin:22px 0 7px;font-size:28px; }.success-view p { max-width:560px;margin:0 auto 18px;color:#8193a8;font-size:13px; }.success-view strong { display:block;margin-bottom:25px;color:var(--cyan);font-family:monospace; }
.reveal { opacity:0;transform:translateY(16px);transition:opacity .65s ease,transform .65s ease; }.reveal.visible { opacity:1;transform:none; }
.hero-copy.reveal,.hero-art.reveal { opacity:1;transform:none; }
@keyframes fade { from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none} }

@media (max-width: 980px) {
  .nav-links { display:none;position:absolute;top:76px;left:0;right:0;padding:25px;background:#06101c;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start; }.nav-links.open { display:flex; }.menu-button { display:block;border:0;background:transparent;color:white; }.nav > .registration-trigger { display:none; }
  .hero-grid { grid-template-columns:1fr; }.hero-copy { padding-bottom:25px; }.hero-art { height:480px;margin:0 0 55px; }.hero { min-height:auto; }
  .fact-grid,.capability-grid { grid-template-columns:1fr 1fr; }.fact-grid article:nth-child(3),.capability-grid article:nth-child(3){border-left:1px solid var(--line)}
  .timeline { grid-template-columns:1fr 1fr; }.criteria-grid { grid-template-columns:1fr 1fr; }.faq-layout { gap:50px; }.event-panels { grid-template-columns:1fr; }
  .partner-grid { grid-template-columns:1fr 1fr; }.footer-grid { grid-template-columns:1fr 1fr; }.footer-grid > div:last-child { grid-column:span 2; }
}

@media (max-width: 700px) {
  .shell { width:min(calc(100% - 30px),var(--max)); }.announcement { padding:7px 12px;font-size:9px;text-align:center; }.announcement-separator{display:none}.announcement span:last-child{display:none}
  .nav { height:66px; }.nav-links { top:66px; }.hero-grid { min-height:auto; }.hero-copy { padding-top:62px; }.hero h1 { font-size:45px; }.hero-lead { font-size:17px; }.hero-actions { align-items:flex-start;flex-direction:column;gap:18px; }.hero-meta { display:grid;grid-template-columns:1fr 1fr;row-gap:20px; }.hero-meta div { min-width:0;padding:0 14px; }.hero-meta div:nth-child(3){padding-left:0;border:0}.hero-art { height:auto;aspect-ratio:1;margin-top:30px; }
  .agenda-columns { grid-template-columns:1fr; }.agenda-head h3 { font-size:24px; }.agenda-head h3 span { font-size:16px; }.agenda-col { padding:24px 22px 16px; }
  .fact-grid,.capability-grid,.timeline,.rules-layout,.criteria-grid,.award-grid,.faq-layout,.partner-grid,.footer-grid,.final-criteria-grid { grid-template-columns:1fr; }.fact-grid article,.fact-grid article:last-child,.capability-grid article,.capability-grid article:last-child{border-right:1px solid var(--line)}
  .section { padding:80px 0; }.split-heading { grid-template-columns:1fr;gap:35px; }.section-intro { padding-left:20px; }.capability-grid { margin-top:45px; }.capability-grid article { min-height:260px; }.capability-grid h3 { margin-top:40px; }.threshold-note { align-items:flex-start;flex-direction:column;gap:8px; }
  .rule-primary,.submission-card { padding:30px 24px; }.rule-primary h3 { font-size:24px; }.final-criteria { margin-top:56px; }.award-grid article { min-height:440px;padding:28px; }.award-grid.single article { padding:28px; }.prize-photo { height:265px; }.event-panels article { padding:26px;grid-template-columns:1fr; }.event-date { display:flex;gap:10px;align-items:end; }.event-date span { margin:0; }.faq-layout { gap:38px; }.footer-grid > div:last-child { grid-column:auto; }
  .dialog-shell { padding:25px 20px 28px; }.registration-dialog { max-height:96vh; }.progress span small { display:none; }.progress { margin-bottom:25px; }.form-grid,.member-list { grid-template-columns:1fr; }.form-grid .span-2 { grid-column:auto; }.member-card { grid-template-columns:1fr; }.file-rule-box ul { flex-direction:column;gap:3px; }.dialog-actions { flex-wrap:wrap; }.dialog-actions .button { flex:1; }.final-cta { padding:90px 0; }
}

@media (prefers-reduced-motion: reduce) { html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{animation-duration:.01ms!important} }

/* 賦能工作坊議程。版面照執行確認版簡報第 8 頁：左右兩欄、上緣色條區分上午/下午、
   時間與時長同一行、硬體廠商說明用黃色、休息時間與標題並排。 */
.agenda { margin-top:64px;padding-top:52px;border-top:1px solid var(--line); }
.agenda-head { max-width:780px;margin-bottom:34px; }
.agenda-head h3 { margin:10px 0 12px;font-size:30px;letter-spacing:-.025em; }
.agenda-head h3 span { color:var(--muted);font-size:19px;font-weight:600;letter-spacing:0; }
.agenda-head p:last-child { margin:0;color:var(--muted);font-size:14px; }
.agenda-columns { display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start; }
.agenda-col { padding:28px 30px 20px;border:1px solid var(--line);border-top:3px solid var(--blue);
  background:linear-gradient(150deg,rgba(6,37,56,.7),rgba(3,10,18,.4)); }
.agenda-col.ag-afternoon { border-top-color:var(--green); }
.agenda-col h4 { margin:0 0 18px;color:var(--cyan);font-size:20px;letter-spacing:.01em; }
.agenda-col.ag-afternoon h4 { color:var(--green); }
.agenda-col h4 span { font-size:16px;font-weight:600; }
.agenda-col ol { margin:0;padding:0;list-style:none; }
.agenda-col li { padding:13px 0;border-bottom:1px solid var(--line); }
.agenda-col li:last-child { border-bottom:0; }
.ag-when { margin:0 0 5px;display:flex;flex-wrap:wrap;gap:9px;align-items:baseline; }
.ag-when time { color:var(--cyan);font-size:13px;font-weight:800;letter-spacing:.03em;font-variant-numeric:tabular-nums; }
.ag-afternoon .ag-when time { color:var(--green); }
.ag-when em { color:#7b8da1;font-size:11.5px;font-style:italic; }
.agenda-col h5 { margin:0;font-size:14.5px;font-weight:700;line-height:1.55; }
.agenda-col li p:not(.ag-when) { margin:5px 0 0;color:var(--muted);font-size:12.5px;line-height:1.62; }
/* 廠商說明與休息：時間與標題並排成一行，跟簡報一樣。 */
.agenda-col li.ag-vendor,.agenda-col li.ag-break { display:flex;flex-wrap:wrap;gap:3px 12px;align-items:baseline; }
.ag-vendor .ag-when,.ag-break .ag-when { margin:0; }
.ag-vendor .ag-when time,.ag-vendor h5 { color:#ffd451; }
.ag-break h5 { color:#9fb0c2;font-weight:600; }

/* 夥伴 logo 排列。每顆給「相同寬度」、高度 auto —— 等比例縮放，長寬比不動。
   用固定寬度而不是固定高度：logo 的長寬比從 2.7:1 到 7:1 都有，抓同高會讓寬的那幾顆
   橫向爆出欄位，抓同寬則每一欄的視覺分量一致。 */
.partner-logos { margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:16px;align-items:flex-start; }
.partner-logos li { width:100%;max-width:148px; }
.partner-logos img { display:block;width:100%;height:auto; }
.partner-logos .partner-text { color:#142030;font-size:13px;font-weight:700; }

/* 「親筆簽名」原本放在 <small> 裡，是整張獎品卡最暗的一行——但它其實是這個獎
   最有份量的部分。改用站上既有的 green-tag 語彙(不另發明一種樣式)再加一點光暈。 */
/* align-self 不能省：獎品卡是 flex column，預設 stretch 會讓徽章撐滿整張卡的寬度。
   前綴用文字而不是 ✍/✒——那兩個字元會被系統字型當成 emoji 上色，跟版面打架。 */
.prize-signature { margin-top:14px;align-self:flex-start;padding:8px 13px;
  display:inline-flex;gap:10px;align-items:center;
  background:rgba(47,243,167,.1);border:1px solid rgba(47,243,167,.4);color:var(--green);
  font-size:11.5px;font-weight:800;letter-spacing:.08em;
  box-shadow:0 0 24px rgba(47,243,167,.18); }
.prize-signature::before { content:"SIGNED";padding-right:10px;
  border-right:1px solid rgba(47,243,167,.32);font-size:9px;letter-spacing:.18em;opacity:.85; }
