@layer base{:root{--max-w:72rem;--gutter:1rem;color-scheme:light dark;--fg:light-dark(#0f172a,#e2e8f0);--bg:light-dark(#fff,#0f172a);--muted:light-dark(#526176,#a3b1c6);--accent:light-dark(#1a56db,#7ab4ff);--accent-strong:light-dark(#1d4ed8,#a8ceff);--accent-bg:light-dark(#1a56db,#2563eb);--accent-bg-strong:#1d4ed8;--accent-2:#06b6d4;--cyan-text:#22d3ee;--teal-text:light-dark(#0e7490,#5eead4);--ink:light-dark(#0b1220,#060b16);--ink-2:light-dark(#131d33,#0b1324);--tint:light-dark(#eef3fb,#16213a);--line:light-dark(#d6dee8,#2b3b58);--grad:linear-gradient(90deg, #22d3ee 0%, #1a56db 100%);--font:"Noto Sans JP", system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Yu Gothic", sans-serif}:root[data-scheme=light]{color-scheme:light}:root[data-scheme=dark]{color-scheme:dark}:root:not([data-persona=tech]) .persona-tech,:root[data-persona=tech] .persona-standard{display:none!important}*{box-sizing:border-box}html{font-family:var(--font);color:var(--fg);background:var(--bg);line-height:1.8}body{margin:0}img{max-width:100%;height:auto}a{color:var(--accent)}a:hover{color:var(--accent-strong)}.container{max-width:var(--max-w);padding-inline:var(--gutter);margin-inline:auto}.site-header{border-bottom:1px solid var(--line);background:var(--bg);z-index:20;position:relative}.site-header:before{content:"";background:var(--grad);height:3px;display:block}.site-header .container{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;padding-block:.75rem;display:flex}.site-title{color:var(--fg);font-weight:700;text-decoration:none}.site-menu{display:contents}.site-nav ul{flex-wrap:wrap;gap:.25rem 1rem;margin:0;padding:0;list-style:none;display:flex}.site-nav li{position:relative}.site-nav a,.site-nav summary{color:var(--fg);cursor:pointer;text-decoration:none}.site-nav details ul{z-index:10;background:var(--bg);border:1px solid var(--line);min-width:16rem;padding:.5rem 1rem .5rem 2rem;list-style:outside;display:block;position:absolute;top:100%;left:0}.site-nav details li::marker{color:var(--muted)}.site-nav details ul a{padding:.35rem 0;display:block}.nav-toggle{border:1px solid var(--line);font:inherit;color:var(--fg);cursor:pointer;background:0 0;border-radius:.5rem;align-items:center;gap:.5rem;margin-left:auto;padding:.45rem .7rem;display:none}.nav-toggle-bar{background:currentColor;width:1.25rem;height:2px;display:block;position:relative}.nav-toggle-bar:before,.nav-toggle-bar:after{content:"";background:currentColor;width:100%;height:2px;transition:transform .2s;position:absolute;left:0}.nav-toggle-bar:before{top:-6px}.nav-toggle-bar:after{top:6px}.is-open .nav-toggle-bar{background:0 0}.is-open .nav-toggle-bar:before{transform:translateY(6px)rotate(45deg)}.is-open .nav-toggle-bar:after{transform:translateY(-6px)rotate(-45deg)}.nav-toggle-label{font-size:.85rem}@media (width<=48rem){.nav-toggle{flex-shrink:0;display:inline-flex}.site-title{flex:1 1 0;min-width:0;font-size:.88rem;line-height:1.3}.site-menu{border-top:1px solid var(--line);flex-direction:column;flex-basis:100%;gap:1rem;margin-top:.25rem;padding-top:.75rem;display:none}.is-open .site-menu{display:flex}.site-nav ul{flex-direction:column;gap:0}.site-nav>ul>li{border-bottom:1px solid var(--line)}.site-nav>ul>li>a,.site-nav summary{padding:.7rem 0;font-weight:500;display:block}.site-nav details ul{border:0;min-width:0;padding:0 0 .5rem 1.75rem;position:static}.site-nav details ul a{color:var(--muted);padding:.45rem 0}.site-header .search-toggle{order:0;margin-left:auto}.site-header .nav-toggle{margin-left:0}.display-toggle-menu:not([hidden]){border:1px solid var(--line);color:var(--fg);background:0 0;border-radius:.5rem;align-self:flex-start;padding:.45rem .9rem;font-size:.9rem;display:block}body.menu-open{overflow:hidden}}.search-toggle{border:1px solid var(--line);width:2.4rem;height:2.4rem;color:var(--fg);border-radius:.5rem;flex-shrink:0;order:1;justify-content:center;align-items:center;margin-left:auto;display:inline-flex}.search-toggle:hover{color:var(--accent);border-color:var(--accent)}#search,.search-dialog-ui{--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--fg);--pagefind-ui-border:var(--line);--pagefind-ui-font:var(--font);--pagefind-ui-background:var(--bg);--pagefind-ui-tag:var(--tint)}#search{margin-top:1rem}.search-dialog,.display-dialog{border:1px solid var(--line);background:var(--bg);width:min(44rem,100% - 2rem);max-height:min(40rem,100dvh - 4rem);color:var(--fg);border-radius:.75rem;margin:2rem auto auto;padding:0;box-shadow:0 20px 50px #0b122040}.search-dialog::backdrop,.display-dialog::backdrop{background:#0b12208c}.dialog-head{justify-content:space-between;align-items:center;padding:.75rem 1rem .25rem;font-weight:700;display:flex}.dialog-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.1rem .4rem;font-size:1.6rem;line-height:1}.dialog-close:hover{color:var(--fg)}.search-dialog-ui{padding:.5rem 1rem 1rem}.display-dialog{width:min(32rem,100% - 2rem);font-size:1rem}.display-form{gap:1rem;padding:.5rem 1rem 1.25rem;display:grid}.display-form fieldset{border:0;min-width:0;margin:0;padding:0}.display-form legend{margin-bottom:.35rem;padding:0;font-size:.95rem;font-weight:700}.display-form .hint{color:var(--muted);margin:0 0 .4rem;font-size:.8rem;line-height:1.5}.display-choices{flex-wrap:wrap;gap:.4rem;display:flex}.display-choices label{flex:1 1 0;min-width:6rem;position:relative}.display-choices input{opacity:0;position:absolute}.display-choices span{text-align:center;border:1px solid var(--line);cursor:pointer;border-radius:.5rem;padding:.5rem .6rem;font-size:.9rem;line-height:1.4;display:block}.display-choices input:checked+span{border-color:var(--accent);background:var(--tint);color:var(--accent);font-weight:700}.display-choices input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.display-toggle{font:inherit;cursor:pointer}.site-footer .display-toggle{color:var(--cyan-text);background:0 0;border:1px solid;border-radius:999px;padding:.3rem 1rem;font-size:.85rem}.site-footer .display-toggle:hover{color:#fff}.display-toggle-menu{display:none}main{padding-block:2rem 4rem}main.full{padding-block:0}.cover-body{padding-block:1.5rem 4rem}.prose h1{font-size:1.9rem;line-height:1.3}.prose hgroup h1{margin-bottom:.25rem}.prose .title-en{color:var(--muted);margin-top:0;font-size:.95rem}.prose h2{border-left:.35rem solid var(--accent);border-image:linear-gradient(#22d3ee,#1a56db) 1;margin-top:2.5rem;padding-left:.75rem;font-size:1.5rem}.prose h3{margin-top:2rem;font-size:1.2rem}.prose table{border-collapse:collapse;width:100%;margin-block:1rem;font-size:.95rem}.prose th,.prose td{border:1px solid var(--line);text-align:left;vertical-align:top;padding:.4rem .6rem}.prose th{background:var(--tint)}.prose blockquote{border-left:.25rem solid var(--line);color:var(--muted);margin:1rem 0;padding:.5rem 1rem}.prose .note{border-left:.25rem solid var(--accent);background:var(--tint);margin-block:1rem;padding:.75rem 1rem}.prose .note>:first-child{margin-top:0}.prose .note>:last-child{margin-bottom:0}.prose figure{margin:1rem 0}.prose figcaption{color:var(--muted);margin-top:.35rem;font-size:.9rem}.prose iframe{aspect-ratio:4/3;border:0;width:100%;height:auto;max-height:28rem;margin-block:1rem;display:block}.img-text{border:1px dashed var(--line);background:var(--tint);max-width:100%;color:var(--fg);padding:.75rem 1rem;display:inline-block}.prose .button{background:var(--accent-bg);color:#fff;border-radius:.4rem;padding:.5rem 1.2rem;text-decoration:none;display:inline-block}.prose .button:hover{background:var(--accent-bg-strong);color:#fff}.columns{gap:1.5rem;margin-block:1rem;display:grid}.columns-2{grid-template-columns:repeat(2,minmax(0,1fr))}.columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}.columns-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=48rem){.columns{grid-template-columns:1fr}}.cover{margin-block:1rem;position:relative}.gallery ul{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.5rem;margin-block:1rem;padding:0;list-style:none;display:grid}.gallery li{margin:0}.gallery img{aspect-ratio:3/2;object-fit:cover;border-radius:.25rem;width:100%;display:block}.cover>p:first-child img{object-fit:cover;width:100%}.post-list{padding:0;list-style:none}.post-list li{border-bottom:1px solid var(--line);grid-template-columns:7rem 1fr;gap:1rem;padding:.6rem 0;display:grid}.post-list time{color:var(--muted);font-variant-numeric:tabular-nums}.meta,.breadcrumb{color:var(--muted);font-size:.9rem}.breadcrumb a{color:inherit}.site-footer{background:var(--ink);color:#c7d2e3;border-top:3px solid #0000;border-image:var(--grad) 1;padding-block:2.5rem;font-size:.9rem}.site-footer a{color:var(--cyan-text)}.site-footer a:hover{color:#fff}}@layer persona{:root[data-persona=tech]{--mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", "Consolas", "Noto Sans JP", monospace;--glow:0 0 0 1px #22d3ee80, 0 0 18px #22d3ee59;--grid:linear-gradient(#22d3ee1a 1px, transparent 1px), linear-gradient(90deg, #22d3ee1a 1px, transparent 1px);--nx-bar:light-dark(#c5ccd6,#2b3b58);--nx-bar-text:light-dark(#334155,#a3b1c6);--nx-edge:light-dark(#0b1220,#000);--nx-miniaturize:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15'%3E%3Crect width='15' height='15' fill='%230b1220'/%3E%3Crect width='14' height='14' fill='%23fff'/%3E%3Crect x='1' y='1' width='13' height='13' fill='%23566275'/%3E%3Crect x='1' y='1' width='12' height='12' fill='%23c5ccd6'/%3E%3Crect x='4.5' y='4.5' width='5' height='5' fill='none' stroke='%230b1220'/%3E%3C/svg%3E");--nx-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15'%3E%3Crect width='15' height='15' fill='%230b1220'/%3E%3Crect width='14' height='14' fill='%23fff'/%3E%3Crect x='1' y='1' width='13' height='13' fill='%23566275'/%3E%3Crect x='1' y='1' width='12' height='12' fill='%23c5ccd6'/%3E%3Cpath d='M4 4l6 6M10 4l-6 6' stroke='%230b1220' stroke-width='1.6'/%3E%3C/svg%3E")}[data-persona=tech].typing :is(main :is(h1,h2,h3,h4,h5,h6),[data-type],.img-text:not(.persona-standard)):not(.type-ready){color:#0000;text-shadow:none;animation:0s 3s forwards type-failsafe}[data-persona=tech].typing .img-text:not(.type-ready){animation-name:type-failsafe-img}[data-persona=tech].typing .type-rest{color:#0000;text-shadow:none}[data-persona=tech] .type-caret{vertical-align:-.12em;background:var(--accent-2);width:.5em;height:1em;margin-left:.05em;animation:1s step-end infinite tech-blink;display:inline-block}@keyframes type-failsafe{to{color:inherit}}@keyframes type-failsafe-img{to{color:#e2e8f0}}[data-persona=tech] .site-header:before{background:linear-gradient(90deg,#22d3ee,#1a56db,#22d3ee) 0 0/200% 100%;animation:6s linear infinite tech-flow}[data-persona=tech] .site-title:before{content:">_";font:700 .8rem/1.6 var(--mono);color:var(--cyan-text);background:var(--ink);vertical-align:.1em;border-radius:.25rem;margin-right:.5rem;padding:0 .3rem;display:inline-block}[data-persona=tech] .site-nav summary{list-style:none}[data-persona=tech] .site-nav summary::-webkit-details-marker{display:none}[data-persona=tech] .site-nav summary:before{content:"▸ ";font-family:var(--mono);color:var(--teal-text)}[data-persona=tech] .site-nav details[open] summary:before{content:"▾ "}[data-persona=tech] .site-nav details li::marker{content:"# ";font-family:var(--mono);color:var(--teal-text)}[data-persona=tech] .hero:before{background:var(--grid), linear-gradient(180deg, #0b122040 0%, #0b1220d9 100%);background-size:40px 40px,40px 40px,auto}[data-persona=tech] .hero-sub{font-family:var(--mono);letter-spacing:0}[data-persona=tech] .hero-sub:before{content:"> "}[data-persona=tech]:not(.typing) .hero-sub:after{content:"_";animation:1s step-end infinite tech-blink}[data-persona=tech] .hero h1{text-shadow:0 0 24px #22d3ee73,0 2px 12px #0006}[data-persona=tech] .home-section.tone-tint,[data-persona=tech] .notices{background-image:var(--grid);background-size:32px 32px}[data-persona=tech] .section-head h2:before{content:"// " attr(data-label);width:auto;height:auto;font:500 .8rem/1 var(--mono);color:var(--teal-text);letter-spacing:.08em;background:0 0}[data-persona=tech] .notice-grid .img-text{font-size:1.1rem;font-weight:700}[data-persona=tech] .notice-grid .img-text:before{white-space:pre}[data-persona=tech] .course-years{font-family:var(--mono);letter-spacing:0}[data-persona=tech] .course-years:before{content:"["}[data-persona=tech] .course-years:after{content:"]"}[data-persona=tech] .card{border-color:var(--nx-edge);border-radius:0;transition:none}[data-persona=tech] .card:hover{box-shadow:none;transform:none}[data-persona=tech] .card:before{content:"~" attr(data-path) "index.md";border-bottom:1px solid var(--nx-edge);font:500 .75rem/1.5rem var(--mono);text-align:center;white-space:nowrap;text-overflow:ellipsis;color:var(--nx-bar-text);background:var(--nx-miniaturize) left .25rem center no-repeat, var(--nx-close) right .25rem center no-repeat, var(--nx-bar);flex:none;padding:0 1.6rem;overflow:hidden;box-shadow:inset 0 1px #ffffff73,inset 0 -1px #00000040}[data-persona=tech] .card:is(:hover,:focus-within):before{color:var(--cyan-text);background-color:var(--ink);box-shadow:inset 0 1px #ffffff26}[data-persona=tech] .card-body{flex:1}[data-persona=tech] .card:after{content:"";border-top:1px solid var(--nx-edge);background:linear-gradient(90deg, transparent 1.75rem, var(--nx-edge) 0 calc(1.75rem + 1px), transparent 0 calc(100% - 1.75rem - 1px), var(--nx-edge) 0 calc(100% - 1.75rem), transparent 0), var(--nx-bar);flex:0 0 .45rem}[data-persona=tech] .tile-grid a,[data-persona=tech] .majors a{font-family:var(--mono);border-radius:.3rem}[data-persona=tech] .tile-grid a:hover,[data-persona=tech] .audience-grid a:hover{box-shadow:var(--glow);border-color:#22d3ee}[data-persona=tech] :is(.btn,.prose .button){--c:var(--accent);--fill:var(--bg);font-family:var(--mono);border:1px solid var(--c);color:var(--c);filter:none;backdrop-filter:none;background:0 0;border-radius:0;padding:.75em 1.5ch;font-weight:700;line-height:1.5}[data-persona=tech] :is(.btn-primary,.btn-accent,.prose .button){border:3px double var(--c);padding:calc(.75em - 2px) calc(1.5ch - 2px)}[data-persona=tech] :is(.btn,.prose .button):hover{background:var(--c);color:var(--fill)}[data-persona=tech] :is(.hero,.cta-section) .btn{--c:#fff;--fill:var(--ink);background:#0b122073}[data-persona=tech] :is(.hero .btn-primary,.cta-section .btn-accent){--c:var(--cyan-text)}[data-persona=tech] .prose[data-path]:before{content:"$ cat ." attr(data-path) "index.md";font:.85rem/1.6 var(--mono);color:var(--muted);display:block}[data-persona=tech] .prose h1{margin-top:.4rem}[data-persona=tech] .prose :is(h1,h2,h3,h4):before{font-family:var(--mono);color:var(--teal-text);font-weight:400}[data-persona=tech] .prose h1:before{content:"# "}[data-persona=tech] .prose h2{border:0;border-image:;padding-left:0}[data-persona=tech] .prose h2:before{content:"## "}[data-persona=tech] .prose h3:before{content:"### "}[data-persona=tech] .prose h4:before{content:"#### "}[data-persona=tech] .prose ul>li::marker{content:"- ";font-family:var(--mono);color:var(--teal-text)}[data-persona=tech] .prose ol>li::marker{font-family:var(--mono);color:var(--teal-text)}[data-persona=tech] .prose strong:before,[data-persona=tech] .prose strong:after{content:"**";font-family:var(--mono);color:var(--muted);font-weight:400}[data-persona=tech] .prose a:not(.button,:has(img,.img-text)):before{content:"[";font-family:var(--mono);color:var(--muted);display:inline-block}[data-persona=tech] .prose a:not(.button,:has(img,.img-text)):after{content:"]";font-family:var(--mono);color:var(--muted);display:inline-block}[data-persona=tech] .prose :is(blockquote,.note){background:0 0;border-left:0;padding-left:0}[data-persona=tech] .prose :is(blockquote,.note)>:before{content:"> ";font-family:var(--mono);color:var(--teal-text)}[data-persona=tech] .prose th{font-family:var(--mono)}[data-persona=tech] .img-text{border:1px solid var(--nx-edge);background:var(--ink);color:#e2e8f0;font:.9rem/1.7 var(--mono);border-radius:.3rem}[data-persona=tech] .img-text:before{content:"> ";color:var(--cyan-text)}[data-persona=tech] .img-text:after{content:"_";color:var(--cyan-text);animation:1s step-end infinite tech-blink}[data-persona=tech] .img-text:has(.type-rest):after{content:none}[data-persona=tech] .breadcrumb{font-family:var(--mono);font-size:.85rem}@keyframes tech-flow{to{background-position:-200% 0}}@keyframes tech-blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){[data-persona=tech] .site-header:before,[data-persona=tech] .hero-sub:after,[data-persona=tech] .type-caret,[data-persona=tech] .img-text:after{animation:none}}}@layer ud{:root[data-size=large]{--muted:light-dark(#3b4757,#c0cada);font-size:118.75%;line-height:1.9}[data-size=large] .prose a:not(.button),[data-size=large] .post-list a,[data-size=large] .breadcrumb a{text-underline-offset:.2em;text-decoration:underline}[data-size=large] .site-nav a,[data-size=large] .site-nav summary{font-weight:500}[data-size=large] .card-grid.cols-4,[data-size=large] .tile-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=64rem){[data-size=large] .card-grid.cols-3,[data-size=large] .card-grid.cols-4,[data-size=large] .tile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=48rem){[data-size=large] .card-grid.cols-3,[data-size=large] .card-grid.cols-4,[data-size=large] .course-grid,[data-size=large] .audience-grid{grid-template-columns:1fr}}:root[data-simple=on]{--grad:linear-gradient(var(--accent), var(--accent))}[data-simple=on] *,[data-simple=on] :before,[data-simple=on] :after{box-shadow:none;text-shadow:none;transition:none;animation:none}[data-simple=on] .card:hover{transform:none}[data-simple=on] .btn:hover{filter:none}[data-simple=on] .btn-ghost{backdrop-filter:none;background:#0b12208c}[data-simple=on] .prose h2{border-left-color:var(--accent);border-image:}[data-simple=on] .home-section.tone-tint,[data-simple=on] .notices{background-image:none}[data-simple=on] .cta-section:before{display:none}[data-simple=on] .hero:before{background:linear-gradient(#0b12201a 0%,#0b1220bf 100%)}[data-simple=on] .site-header:before{background:var(--accent)}[data-simple=on] .hero-sub:after{content:none}[data-simple=on] .type-rest{color:inherit}[data-simple=on] .type-caret{display:none}}
