:root{--bg:#e8eef2;--bg-elevated:#f7fafc;--ink:#15202b;--ink-muted:#4a5a6a;--accent:#0b6e6e;--accent-soft:#d5ecec;--line:#15202b1f;--shadow:0 18px 50px #15202b14;--radius:14px;--max:42rem;--font-sans:"Sora", "Hiragino Sans", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;--font-serif:"Source Serif 4", "Hiragino Mincho ProN", "Yu Mincho", serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--ink);font-family:var(--font-sans);background:radial-gradient(1200px 600px at 10% -10%, #0b6e6e24, transparent 55%), radial-gradient(900px 500px at 100% 0%, #2248701f, transparent 50%), linear-gradient(180deg, #f3f7f9 0%, var(--bg) 40%, #e3eaef 100%);background-attachment:fixed;margin:0;font-size:1rem;line-height:1.7}img,svg{max-width:100%;height:auto;display:block}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:.08em;transition:color .16s,text-decoration-color .16s}a:hover{color:#085858}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.site-shell{width:min(100% - 2rem,48rem);margin-inline:auto}.site-header{padding:1.25rem 0 .5rem}.site-header__inner{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.brand{font-family:var(--font-sans);letter-spacing:-.03em;color:var(--ink);font-size:clamp(1.15rem,2.5vw,1.35rem);font-weight:700;text-decoration:none}.brand:hover,.brand span{color:var(--accent)}.nav a{color:var(--ink-muted);font-size:.92rem;text-decoration:none}.nav a:hover{color:var(--ink)}.nav{flex-wrap:wrap;justify-content:flex-end;gap:.85rem 1.15rem;display:flex}.site-main{padding:1rem 0 3.5rem}.site-footer{color:var(--ink-muted);border-top:1px solid var(--line);padding:1.5rem 0 2.5rem;font-size:.85rem}.site-footer__links{flex-wrap:wrap;gap:.65rem 1.1rem;margin:.65rem 0 0;display:flex}.site-footer__links a{color:var(--ink-muted);text-decoration:none}.site-footer__links a:hover{color:var(--ink)}.hero{padding:2.5rem 0 2rem;animation:.52s both rise}.hero__brand{letter-spacing:-.04em;margin:0 0 1rem;font-size:clamp(2rem,7vw,3rem);font-weight:700;line-height:1.15}.hero__brand span{color:var(--accent)}.hero__lead{max-width:28rem;color:var(--ink-muted);margin:0;font-size:1.05rem}.section-label{color:var(--ink-muted);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem;font-size:.8rem}.article-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none;animation:.62s 80ms both rise}.article-list__item{border-bottom:1px solid var(--line)}.article-list__link{color:inherit;padding:1.15rem .15rem;text-decoration:none;transition:background-color .18s,transform .18s;display:block}.article-list__link:hover{background:#ffffff59;transform:translate(2px)}.article-list__meta{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:.25rem .6rem;margin-bottom:.35rem;font-size:.82rem;display:flex}.kind-badge{border:1px solid var(--line);color:var(--ink-muted);border-radius:999px;padding:.05rem .5rem;font-size:.75rem;line-height:1.6;display:inline-block}.kind-badge--decision{background:var(--accent-soft);color:var(--accent);border-color:#0000}.kind-badge--explainer{border-color:var(--accent);color:var(--accent)}.home-section+.home-section{margin-top:2.5rem}.archive-link{font-family:var(--font-sans);margin-top:2rem;font-size:.95rem;text-decoration:none;display:inline-block}.archive-link:hover{text-decoration:underline}.archive-month+.archive-month{margin-top:2.25rem}.article-list__title{letter-spacing:-.02em;margin:0 0 .35rem;font-size:1.15rem;line-height:1.45}.article-list__desc{color:var(--ink-muted);margin:0;font-size:.95rem}.article-header{margin-bottom:2rem;animation:.48s both rise}.article-header__meta{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:.25rem .6rem;margin:0 0 .75rem;font-size:.9rem;display:flex}.article-notice{border-left:3px solid var(--accent);background:var(--bg-elevated);border-radius:0 var(--radius) var(--radius) 0;color:var(--ink-muted);margin:1.25rem 0 0;padding:.75rem 1rem;font-size:.9rem;line-height:1.6}.article-header__title{letter-spacing:-.03em;margin:0 0 .85rem;font-size:clamp(1.7rem,5vw,2.35rem);line-height:1.25}.article-header__desc{color:var(--ink-muted);margin:0;font-size:1.05rem}.prose{max-width:var(--max);font-family:var(--font-sans);font-size:1.08rem;line-height:1.9;animation:.56s 60ms both rise}.prose :where(h2,h3){font-family:var(--font-sans);letter-spacing:-.02em;margin-top:2.4rem;margin-bottom:.85rem;line-height:1.35}.prose h2{font-size:1.4rem}.prose h3{font-size:1.15rem}.prose p,.prose ul,.prose ol,.prose table{margin:0 0 1.15rem}.prose li+li{margin-top:.35rem}.prose strong{font-weight:700}.prose table{border-collapse:collapse;table-layout:fixed;width:100%;max-width:100%;font-family:var(--font-sans);background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);font-size:.92rem;line-height:1.5}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:break-word;word-break:break-word;padding:.75rem .85rem}.prose th{background:var(--accent-soft);font-weight:600}.prose tr:last-child td{border-bottom:none}.prose a{word-break:break-word}.prose hr{border:0;border-top:1px solid var(--line);margin:2rem 0}.back-link{font-family:var(--font-sans);margin-top:2.5rem;font-size:.95rem;text-decoration:none;display:inline-block}.back-link:hover{text-decoration:underline}.empty{color:var(--ink-muted);padding:1.5rem 0}.status-jump{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:.65rem 1rem;margin:0 0 2rem;padding-bottom:1rem;animation:.56s 40ms both rise;display:flex}.status-jump--nested{margin:0 0 1.25rem;padding-bottom:.85rem;animation:none}.status-jump a{color:var(--ink-muted);font-size:.9rem;text-decoration:none}.status-jump a:hover{color:var(--accent)}.status-jump__count{color:var(--ink-muted);margin-left:.3rem;font-size:.8rem}.hackathon-audience{margin-bottom:2.75rem;scroll-margin-top:1.25rem}.hackathon-audience__title{letter-spacing:-.03em;margin:0 0 .35rem;font-size:1.35rem;line-height:1.3}.hackathon-audience__lead{color:var(--ink-muted);margin:0 0 1rem;font-size:.95rem}.hackathon-section{margin-bottom:2.25rem;scroll-margin-top:1.25rem}.hackathon-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none;animation:.62s 80ms both rise}.hackathon-list__item{border-bottom:1px solid var(--line)}.hackathon{padding:1.25rem .1rem 1.35rem}.hackathon__header{margin-bottom:.85rem}.hackathon__badges{flex-wrap:wrap;gap:.45rem .75rem;margin:0 0 .45rem;display:flex}.hackathon__audience,.hackathon__status{letter-spacing:.04em;margin:0;font-size:.78rem;font-weight:700}.hackathon__audience{color:var(--ink-muted);font-weight:600}.hackathon__audience[data-audience=students]{color:#1f4f7a}.hackathon__status{color:var(--accent)}.hackathon__status[data-status=deadline_soon]{color:#9a4d0d}.hackathon__status[data-status=ended]{color:var(--ink-muted);font-weight:500}.hackathon__title{letter-spacing:-.02em;margin:0;font-size:1.15rem;line-height:1.45}.hackathon__title a{color:inherit;text-decoration:none}.hackathon__title a:hover{color:var(--accent);text-decoration:underline}.hackathon__meta{gap:.55rem 1rem;margin:0;display:grid}.hackathon__meta>div{grid-template-columns:8.5rem minmax(0,1fr);align-items:start;gap:.35rem .85rem;display:grid}.hackathon__meta dt{color:var(--ink-muted);margin:0;font-size:.82rem;line-height:1.55}.hackathon__meta dd{margin:0;font-size:.95rem;line-height:1.55}.hackathon__memo dd{color:var(--ink)}.hackathon-note{color:var(--ink-muted);margin:.5rem 0 0;font-size:.85rem}.resource-page{animation:.52s both rise}.resource-intro{margin-bottom:2.25rem}.resource-intro__body{color:var(--ink);margin:0 0 1.35rem;font-size:1.02rem;line-height:1.8}.resource-intro__body p{margin:0 0 .85rem}.resource-intro__body p:last-child{margin-bottom:0}.distance-legend{border-top:1px solid var(--line);padding:1rem 0 .25rem}.distance-legend__title{letter-spacing:-.02em;margin:0 0 .4rem;font-size:1.05rem}.distance-legend__note{color:var(--ink-muted);margin:0 0 .85rem;font-size:.9rem}.distance-legend__list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.distance-legend__list li{color:var(--ink-muted);gap:.25rem;font-size:.92rem;line-height:1.55;display:grid}.distance-badge{letter-spacing:.02em;color:var(--accent);align-items:center;gap:.25rem;font-size:.82rem;font-weight:700;display:inline-flex}.distance-badge[data-distance=prepare]{color:#9a4d0d}.distance-badge[data-distance=nurture]{color:#8a2f45}.resource-compare{margin-bottom:1.75rem;scroll-margin-top:1.25rem}.resource-compare__lead{color:var(--ink-muted);margin:0 0 .85rem;font-size:.92rem}.compare-scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-elevated);box-shadow:var(--shadow);overflow-x:auto}.compare-table{border-collapse:collapse;width:100%;min-width:36rem;font-size:.9rem;line-height:1.5}.compare-table th,.compare-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:.8rem .85rem}.compare-table thead th{background:var(--accent-soft);color:var(--ink-muted);white-space:nowrap;font-size:.82rem;font-weight:600}.compare-table tbody th{max-width:14rem;font-weight:600}.compare-table tbody tr:last-child th,.compare-table tbody tr:last-child td{border-bottom:none}.compare-table__category{color:var(--ink-muted);margin-top:.25rem;font-size:.75rem;font-weight:500;display:block}.compare-table a{color:inherit;text-decoration:none}.compare-table a:hover{color:var(--accent);text-decoration:underline}.credit-program{border-bottom:1px solid var(--line);margin-bottom:2.5rem;padding-bottom:2rem;scroll-margin-top:1.25rem}.credit-program__header{margin-bottom:.85rem}.credit-program__badges{flex-wrap:wrap;align-items:center;gap:.45rem .85rem;margin:0 0 .45rem;display:flex}.credit-program__category{color:var(--ink-muted);letter-spacing:.04em;font-size:.78rem;font-weight:600}.credit-program__title{letter-spacing:-.02em;margin:0;font-size:1.25rem;line-height:1.4}.credit-program__title a{color:inherit;text-decoration:none}.credit-program__title a:hover{color:var(--accent);text-decoration:underline}.credit-program__oneliner{color:var(--ink);margin:.55rem 0 0;font-size:1rem;line-height:1.55}.credit-program__flow{gap:.35rem;margin:0 0 .75rem;display:grid}.credit-program__flow-label{color:var(--ink-muted);font-size:.82rem}.credit-program__flow-code{font-family:var(--font-sans);color:var(--ink);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:break-word;background:#ffffff8c;border-radius:10px;padding:.7rem .85rem;font-size:.92rem;line-height:1.55;display:block}.credit-program__how{margin:0 0 1rem;font-size:.98rem;line-height:1.7}.credit-program__memo{border-top:1px solid var(--line);margin:0 0 1.15rem;padding:.9rem 0 0}.credit-program__memo-label{color:var(--accent);letter-spacing:.04em;margin:0 0 .35rem;font-size:.82rem;font-weight:700}.credit-program__memo-body{margin:0;font-size:.98rem;line-height:1.7}.credit-program__bullets{margin:0;padding-left:1.15rem}.credit-program__bullets li+li{margin-top:.3rem}.credit-program__back{margin:1.15rem 0 0;font-size:.9rem}.credit-program__back a{color:var(--ink-muted);text-decoration:none}.credit-program__back a:hover{color:var(--accent);text-decoration:underline}.credit-excluded{margin:2.5rem 0 1.5rem}.credit-excluded__lead{color:var(--ink-muted);margin:0 0 1rem;font-size:.95rem}.credit-excluded__list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.credit-excluded__list li{border-bottom:1px solid var(--line);padding:1rem 0}.credit-excluded__list a{color:inherit;font-weight:600;text-decoration:none}.credit-excluded__list a:hover{color:var(--accent);text-decoration:underline}.credit-excluded__list p{color:var(--ink-muted);margin:.4rem 0 0;font-size:.92rem;line-height:1.6}.credit-excluded__date{font-size:.8rem!important}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero,.article-list,.article-header,.prose,.article-list__link,.status-jump,.hackathon-list,.resource-page{transition:none;animation:none}.article-list__link:hover{transform:none}}@media (width<=640px){.site-shell{width:min(100% - 1.25rem,48rem)}.prose{font-size:1.02rem;line-height:1.85}.prose table{font-size:.85rem}.hackathon__meta>div{grid-template-columns:1fr;gap:.15rem}.hackathon__meta dt{font-size:.75rem}.compare-table{font-size:.85rem}.credit-program__title{font-size:1.12rem}.nav{gap:.55rem .85rem}}
