@layer reset{:where(html){--link:#4263eb;--link-visited:#ae3ec9;--text-1:#030507;--surface-1:#f8f9fa;--surface-2:#e9ecef;--surface-3:#dee2e6;--surface-4:#ced4da;--scrollthumb-color:#495057;-webkit-text-size-adjust:none;accent-color:var(--brand,var(--link));background-color:var(--surface-1);block-size:100%;caret-color:var(--brand,var(--link));color:var(--text-1);color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;line-height:1.5;scrollbar-color:var(--scrollthumb-color) transparent}@media (dynamic-range:high) or (color-gamut:p3){@supports (color:color(display-p3 0 0 0)){:where(html){--link:color(display-p3 .1 .39 1);--link-visited:color(display-p3 .6 .2 1)}}}:where(html) :where(dialog){background-color:var(--surface-1)}:where(html) :where(textarea,select,input:not([type=button],[type=submit],[type=reset])){background-color:var(--surface-2)}@media (prefers-color-scheme:dark){:where(html){--link:#91a7ff;--link-visited:#e599f7;--text-1:#f1f3f5;--surface-1:#212529;--surface-2:#343a40;--surface-3:#495057;--surface-4:#868e96;--scrollthumb-color:#868e96;--shadow-strength:10%;--shadow-color:220 40% 2%;color-scheme:dark}}:where(a[href]){color:var(--brand,var(--link))}:where(a[href]):where(:visited){color:var(--link-visited)}:focus-visible{outline-color:var(--brand,var(--link))}*,:after,:before{box-sizing:border-box}:where(:not(dialog)){margin:0}:where(:not(fieldset,progress,meter)){background-repeat:no-repeat;background-origin:border-box;border-style:solid;border-width:0}@media (prefers-reduced-motion:no-preference){:where(html){scroll-behavior:smooth}:where(:focus-visible){transition:outline-offset .145s var(--ease-2)}:where(:not(:active):focus-visible){transition-duration:.25s}}:where(:not(:active):focus-visible){outline-offset:5px}:where(body){min-block-size:100%}:where(h1,h2,h3,h4,h5,h6){text-wrap:balance;font-weight:900;line-height:1.25}:where(h1){font-size:3.5rem;max-inline-size:20ch}:where(h2){font-size:2.5rem;max-inline-size:25ch}:where(h3){font-size:2rem}:where(h4){font-size:1.5rem}:where(h5){font-size:1.25rem}:where(h3,h4,h5,h6,dt){max-inline-size:35ch}:where(p,ul,ol,dl,h6){font-size:1.1rem}:where(a,u,ins,abbr){text-underline-offset:1px}@supports ((-moz-appearance:none)){:where(a,u,ins,abbr){text-underline-offset:2px}}:where(a[href],area,button,input:not([type=text],[type=email],[type=number],[type=password],[type=""],[type=tel],[type=url]),label[for],select,summary,[tabindex]:not([tabindex*=\-],pre)){cursor:pointer}:where(a[href],area,button,input,label[for],select,summary,textarea,[tabindex]:not([tabindex*=\-])){-webkit-tap-highlight-color:transparent;touch-action:manipulation}:where(a):where([href]){text-decoration-color:#bac8ff}:where(a):where([href]):where(:visited){text-decoration-color:#eebefa}:where(a):where(:not(:hover)){text-decoration:inherit}:where(img,svg,video,canvas,audio,iframe,embed,object){display:block}:where(img,svg,video){block-size:auto;max-inline-size:100%}:where(input,button,textarea,select),:where(input[type=file])::-webkit-file-upload-button{color:inherit;font:inherit;font-size:inherit;letter-spacing:inherit}::placeholder{color:#495057;opacity:.75}:where(input:not([type=range]),textarea){padding-block:.25rem;padding-inline:.5rem}:where(select){field-sizing:content;padding-block:.75ch;padding-inline:1.25ch 0}:where(textarea,select,input:not([type=button],[type=submit],[type=reset])){background-color:var(--surface-2);border-radius:5px}:where(textarea){field-sizing:content;min-block-size:2lh;min-inline-size:20ch;resize:vertical}:where(input[type=checkbox],input[type=radio]){block-size:1rem;inline-size:1rem}:where(svg:not([width])){inline-size:5rem}:where(code,kbd,samp,pre){font-family:Dank Mono,Operator Mono,Inconsolata,Fira Mono,ui-monospace,SF Mono,Monaco,Droid Sans Mono,Source Code Pro,Cascadia Code,Menlo,Consolas,DejaVu Sans Mono,monospace,monospace}:where(:not(pre)>code,kbd){white-space:nowrap}:where(pre){white-space:pre;writing-mode:lr;direction:ltr;min-inline-size:0;max-inline-size:max-content}:where(:not(pre)>code){background:var(--surface-2);border-radius:5px;padding:.25rem .5rem;writing-mode:lr}:where(kbd,var){border-color:var(--surface-4);border-radius:5px;border-width:1px;padding:.25rem .5rem}:where(mark){border-radius:5px;padding-inline:.25rem}:where(ol,ul){padding-inline-start:3rem}:where(li){padding-inline-start:.5rem}:where(li,dd,figcaption){max-inline-size:45ch}:where(p){text-wrap:pretty;max-inline-size:60ch}:where(dt,summary){font-weight:700}:where(dt:not(:first-of-type)){margin-block-start:1.5rem}:where(small){font-size:max(.5em,.75rem);max-inline-size:20ch}:where(hr){background-color:var(--surface-3);height:2px;margin-block:max(4rem,min(5vw,5rem))}:where(figure){gap:.5rem;place-items:center;display:grid}:where(figure)>:where(figcaption){text-wrap:balance;font-size:1rem}:where(blockquote,:not(blockquote)>cite){border-inline-start-width:5px}:where(blockquote){gap:1rem;max-inline-size:45ch;padding-block:1rem;padding-inline:1.25rem;display:grid}:where(:not(blockquote)>cite){padding-inline-start:.5rem}:where(summary){background:var(--surface-3);border-radius:5px;margin:calc(.5rem*-1) calc(1rem*-1);padding:.5rem 1rem}:where(details){background:var(--surface-2);border-radius:5px;padding-block:.5rem;padding-inline:1rem}:where(details[open]>summary){margin-bottom:.5rem;border-end-end-radius:0;border-end-start-radius:0}:where(fieldset){border:1px solid var(--surface-4);border-radius:5px}:where(del){background:#c92a2a;color:#ffc9c9}:where(ins){background:#2b8a3e;color:#d3f9d8}:where(abbr){text-decoration-color:#339af0}:where(dialog){background-color:var(--surface-1);border-radius:1rem;box-shadow:var(--shadow-6);color:inherit}:where(menu){gap:1rem;padding-inline-start:0;display:flex}:where(sup){font-size:.5em}:where(table){--nice-inner-radius:calc(1rem - 2px);background:var(--surface-2);border:1px solid var(--surface-2);border-radius:1rem;width:fit-content}:where(table:not(:has(tfoot)) tr:last-child td:first-child){border-end-start-radius:var(--nice-inner-radius)}:where(table:not(:has(tfoot)) tr:last-child td:last-child){border-end-end-radius:var(--nice-inner-radius)}:where(table thead tr:first-child th:first-child){border-start-start-radius:var(--nice-inner-radius)}:where(table thead tr:first-child th:last-child){border-start-end-radius:var(--nice-inner-radius)}:where(tfoot tr:last-child th:first-of-type),:where(tfoot tr:last-child td:first-of-type){border-end-start-radius:var(--nice-inner-radius)}:where(tfoot tr:last-child th:last-of-type),:where(tfoot tr:last-child td:last-of-type){border-end-end-radius:var(--nice-inner-radius)}:where(th){background-color:var(--surface-2);color:var(--text-1)}:where(table a:not(.does-not-exist):focus-visible),:where(table button:not(.does-not-exist):focus-visible),:where(table [contenteditable]:focus-visible){outline-offset:-2px}:where(td){text-wrap:pretty;background:var(--surface-1);max-inline-size:45ch}:where(td,th){padding:.5rem;text-align:left}:where(td:not([align])),:where(th:not([align])){text-align:center}:where(thead){border-collapse:collapse}:where(table tr:hover td),:where(tbody tr:nth-child(2n):hover td){background-color:var(--surface-3)}:where(table>caption){margin:1rem}:where(tfoot button){padding-block:.25rem;padding-inline:1rem}@media (prefers-color-scheme:dark){:where(textarea,select,input:not([type=button],[type=submit],[type=reset])){background-color:#171a1c}:where(dialog){background-color:var(--surface-2)}::placeholder{color:#868e96}}}@layer props{:where(html){--font-system-ui:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;--font-monospace-code:Dank Mono,Operator Mono,Inconsolata,Fira Mono,ui-monospace,SF Mono,Monaco,Droid Sans Mono,Source Code Pro,Cascadia Code,Menlo,Consolas,DejaVu Sans Mono,monospace;--font-weight-7:700;--font-weight-9:900;--font-lineheight-1:1.25;--font-lineheight-3:1.5;--font-size-0:.75rem;--font-size-1:1rem;--font-size-2:1.1rem;--font-size-3:1.25rem;--font-size-4:1.5rem;--font-size-5:2rem;--font-size-6:2.5rem;--font-size-8:3.5rem;--size-1:.25rem;--size-2:.5rem;--size-3:1rem;--size-4:1.25rem;--size-5:1.5rem;--size-7:2rem;--size-8:3rem;--size-10:5rem;--size-fluid-5:max(4rem,min(5vw,5rem));--size-content-1:20ch;--size-content-2:45ch;--size-content-3:60ch;--size-header-1:20ch;--size-header-2:25ch;--size-header-3:35ch;--size-relative-4:1.25ch;--ease-2:cubic-bezier(.25,0,.4,1);--ease-3:cubic-bezier(.25,0,.3,1);--ease-out-3:cubic-bezier(0,0,.3,1);--ease-out-4:cubic-bezier(0,0,.1,1);--ease-out-5:cubic-bezier(0,0,0,1);--ease-in-out-3:cubic-bezier(.5,0,.5,1);--ease-elastic-out-1:cubic-bezier(.5,.75,.75,1.25);--ease-elastic-out-2:cubic-bezier(.5,1,.75,1.25);--ease-elastic-out-3:cubic-bezier(.5,1.25,.75,1.25);--ease-elastic-out-4:cubic-bezier(.5,1.5,.75,1.25);--ease-elastic-out-5:cubic-bezier(.5,1.75,.75,1.25);--ease-elastic-in-out-1:cubic-bezier(.5,-.1,.1,1.5);--ease-elastic-in-out-2:cubic-bezier(.5,-.3,.1,1.5);--ease-elastic-in-out-3:cubic-bezier(.5,-.5,.1,1.5);--ease-elastic-in-out-4:cubic-bezier(.5,-.7,.1,1.5);--ease-elastic-in-out-5:cubic-bezier(.5,-.9,.1,1.5);--ease-squish-2:var(--ease-elastic-in-out-2);--ease-spring-2:linear(0,.007,.029 2.2%,.118 4.7%,.625 14.4%,.826 19%,.902,.962,1.008 26.1%,1.041 28.7%,1.064 32.1%,1.07 36%,1.061 40.5%,1.015 53.4%,.999 61.6%,.995 71.2%,1);--ease-spring-3:linear(0,.009,.035 2.1%,.141 4.4%,.723 12.9%,.938 16.7%,1.017,1.077,1.121,1.149 24.3%,1.159,1.163,1.161,1.154 29.9%,1.129 32.8%,1.051 39.6%,1.017 43.1%,.991,.977 51%,.974 53.8%,.975 57.1%,.997 69.8%,1.003 76.9%,1);--shadow-color:220 3% 15%;--shadow-strength:1%;--shadow-strength-3:calc(var(--shadow-strength) + 2%);--shadow-strength-4:calc(var(--shadow-strength) + 3%);--shadow-strength-5:calc(var(--shadow-strength) + 4%);--shadow-strength-6:calc(var(--shadow-strength) + 5%);--shadow-strength-7:calc(var(--shadow-strength) + 6%);--shadow-strength-8:calc(var(--shadow-strength) + 7%);--shadow-strength-10:calc(var(--shadow-strength) + 9%);--inner-shadow-highlight:inset 0 -.5px 0 0 #fff,inset 0 .5px 0 0 #0001;--shadow-1:0 1px 2px -1px hsl(var(--shadow-color)/var(--shadow-strength-10));--shadow-2:0 3px 5px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 7px 14px -5px hsl(var(--shadow-color)/var(--shadow-strength-6));--shadow-3:0 -1px 3px 0 hsl(var(--shadow-color)/var(--shadow-strength-3)),0 1px 2px -5px hsl(var(--shadow-color)/var(--shadow-strength-3)),0 2px 5px -5px hsl(var(--shadow-color)/var(--shadow-strength-5)),0 4px 12px -5px hsl(var(--shadow-color)/var(--shadow-strength-6)),0 12px 15px -5px hsl(var(--shadow-color)/var(--shadow-strength-8));--shadow-4:0 -2px 5px 0 hsl(var(--shadow-color)/var(--shadow-strength-3)),0 1px 1px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 2px 2px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 5px 5px -2px hsl(var(--shadow-color)/var(--shadow-strength-5)),0 9px 9px -2px hsl(var(--shadow-color)/var(--shadow-strength-6)),0 16px 16px -2px hsl(var(--shadow-color)/var(--shadow-strength-7));--shadow-6:0 -1px 2px 0 hsl(var(--shadow-color)/var(--shadow-strength-3)),0 3px 2px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 7px 5px -2px hsl(var(--shadow-color)/var(--shadow-strength-4)),0 12px 10px -2px hsl(var(--shadow-color)/var(--shadow-strength-5)),0 22px 18px -2px hsl(var(--shadow-color)/var(--shadow-strength-6)),0 41px 33px -2px hsl(var(--shadow-color)/var(--shadow-strength-7)),0 100px 80px -2px hsl(var(--shadow-color)/var(--shadow-strength-8));--gray-0:#f8f9fa;--gray-1:#f1f3f5;--gray-2:#e9ecef;--gray-3:#dee2e6;--gray-4:#ced4da;--gray-6:#868e96;--gray-7:#495057;--gray-8:#343a40;--gray-9:#212529;--gray-12:#030507;--red-2:#ffc9c9;--red-3:#ffa8a8;--red-6:#fa5252;--red-9:#c92a2a;--purple-2:#eebefa;--purple-3:#e599f7;--purple-7:#ae3ec9;--indigo-2:#bac8ff;--indigo-3:#91a7ff;--indigo-7:#4263eb;--blue-5:#339af0;--green-1:#d3f9d8;--green-6:#40c057;--green-9:#2b8a3e;--yellow-6:#fab005;--orange-4:#ffa94d;--orange-5:#ff922b;--orange-6:#fd7e14;--orange-7:#f76707;--gradient-space: ;--animation-fade-in:fade-in .5s var(--ease-3);--animation-fade-in-bloom:fade-in-bloom 2s var(--ease-3);--animation-scale-up:scale-up .5s var(--ease-3);--animation-slide-in-up:slide-in-up .5s var(--ease-3);--animation-slide-in-down:slide-in-down .5s var(--ease-3);--animation-spin:spin 2s linear infinite;--animation-pulse:pulse 2s var(--ease-out-3) infinite;--border-size-1:1px;--border-size-2:2px;--border-size-3:5px;--radius-1:2px;--radius-2:5px;--radius-3:1rem;--radius-4:2rem;--radius-5:4rem;--radius-6:8rem;--palette-hue:250;--palette-hue-rotate-by:0;--palette-chroma:.15}@media (prefers-color-scheme:dark){:where(html){--shadow-color:220 40% 2%;--shadow-strength:25%;--inner-shadow-highlight:inset 0 -.5px 0 0 #fff1,inset 0 .5px 0 0 #0007}}@supports (background:linear-gradient(to right in oklab,#000,#fff)){:where(html){--gradient-space:in oklab}}@keyframes fade-in{to{opacity:1}}@keyframes fade-in-bloom{0%{filter:brightness()blur(20px);opacity:0}10%{filter:brightness(2)blur(10px);opacity:1}to{filter:brightness()blur();opacity:1}}@keyframes fade-out{to{opacity:0}}@keyframes fade-out-bloom{to{filter:brightness()blur(20px);opacity:0}10%{filter:brightness(2)blur(10px);opacity:1}0%{filter:brightness()blur();opacity:1}}@keyframes scale-up{to{transform:scale(1.25)}}@keyframes scale-down{to{transform:scale(.75)}}@keyframes slide-out-up{to{transform:translateY(-100%)}}@keyframes slide-out-down{to{transform:translateY(100%)}}@keyframes slide-out-right{to{transform:translate(100%)}}@keyframes slide-out-left{to{transform:translate(-100%)}}@keyframes slide-in-up{0%{transform:translateY(100%)}}@keyframes slide-in-down{0%{transform:translateY(-100%)}}@keyframes slide-in-right{0%{transform:translate(-100%)}}@keyframes slide-in-left{0%{transform:translate(100%)}}@keyframes shake-x{0%,to{transform:translate(0)}20%{transform:translate(-5%)}40%{transform:translate(5%)}60%{transform:translate(-5%)}80%{transform:translate(5%)}}@keyframes shake-y{0%,to{transform:translateY(0)}20%{transform:translateY(-5%)}40%{transform:translateY(5%)}60%{transform:translateY(-5%)}80%{transform:translateY(5%)}}@keyframes shake-z{0%,to{transform:rotate(0)}20%{transform:rotate(-2deg)}40%{transform:rotate(2deg)}60%{transform:rotate(-2deg)}80%{transform:rotate(2deg)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{90%,to{opacity:0;transform:scale(2)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.5}}@keyframes float{50%{transform:translateY(-25%)}}@keyframes bounce{25%{transform:translateY(-20%)}40%{transform:translateY(-3%)}0%,60%,to{transform:translateY(0)}}@keyframes pulse{50%{transform:scale(.9)}}@media (prefers-color-scheme:dark){@keyframes fade-in-bloom{0%{filter:brightness()blur(20px);opacity:0}10%{filter:brightness(.5)blur(10px);opacity:1}to{filter:brightness()blur();opacity:1}}@keyframes fade-out-bloom{to{filter:brightness()blur(20px);opacity:0}10%{filter:brightness(.5)blur(10px);opacity:1}0%{filter:brightness()blur();opacity:1}}}:where(html){--ease-2:cubic-bezier(.25,0,.4,1);--ease-3:cubic-bezier(.25,0,.3,1);--ease-out-3:cubic-bezier(0,0,.3,1);--ease-out-4:cubic-bezier(0,0,.1,1);--ease-out-5:cubic-bezier(0,0,0,1);--ease-in-out-3:cubic-bezier(.5,0,.5,1);--ease-elastic-out-1:cubic-bezier(.5,.75,.75,1.25);--ease-elastic-out-2:cubic-bezier(.5,1,.75,1.25);--ease-elastic-out-3:cubic-bezier(.5,1.25,.75,1.25);--ease-elastic-out-4:cubic-bezier(.5,1.5,.75,1.25);--ease-elastic-out-5:cubic-bezier(.5,1.75,.75,1.25);--ease-elastic-in-out-1:cubic-bezier(.5,-.1,.1,1.5);--ease-elastic-in-out-2:cubic-bezier(.5,-.3,.1,1.5);--ease-elastic-in-out-3:cubic-bezier(.5,-.5,.1,1.5);--ease-elastic-in-out-4:cubic-bezier(.5,-.7,.1,1.5);--ease-elastic-in-out-5:cubic-bezier(.5,-.9,.1,1.5);--ease-squish-2:var(--ease-elastic-in-out-2);--ease-spring-2:linear(0,.007,.029 2.2%,.118 4.7%,.625 14.4%,.826 19%,.902,.962,1.008 26.1%,1.041 28.7%,1.064 32.1%,1.07 36%,1.061 40.5%,1.015 53.4%,.999 61.6%,.995 71.2%,1);--ease-spring-3:linear(0,.009,.035 2.1%,.141 4.4%,.723 12.9%,.938 16.7%,1.017,1.077,1.121,1.149 24.3%,1.159,1.163,1.161,1.154 29.9%,1.129 32.8%,1.051 39.6%,1.017 43.1%,.991,.977 51%,.974 53.8%,.975 57.1%,.997 69.8%,1.003 76.9%,1);--animation-fade-in:fade-in .5s var(--ease-3);--animation-fade-in-bloom:fade-in-bloom 2s var(--ease-3);--animation-scale-up:scale-up .5s var(--ease-3);--animation-slide-in-up:slide-in-up .5s var(--ease-3);--animation-slide-in-down:slide-in-down .5s var(--ease-3);--animation-spin:spin 2s linear infinite;--animation-pulse:pulse 2s var(--ease-out-3) infinite}@media (prefers-color-scheme:dark){@keyframes fade-in-bloom{0%{filter:brightness()blur(20px);opacity:0}10%{filter:brightness(.5)blur(10px);opacity:1}to{filter:brightness()blur();opacity:1}}@keyframes fade-out-bloom{to{filter:brightness()blur(20px);opacity:0}10%{filter:brightness(.5)blur(10px);opacity:1}0%{filter:brightness()blur();opacity:1}}}}@layer base{*,:before,:after{box-sizing:border-box}html{scrollbar-gutter:stable;min-height:100%;scroll-padding-top:70px}body{min-height:100svh;font-family:system-ui, -apple-system, "Segoe UI", sans-serif;background-color:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;inline-size:round(down,100%,1ic);margin:0;line-height:1.6}:focus-visible{outline:var(--ring);outline-offset:2px}:where(.main,.container,.header-inner,.footer-inner){width:min(100% - var(--content-pad) * 2, 960px);margin-inline:auto}:where(.main,.container){padding-block:var(--space-md)}:where(h1,h2,h3){font-family:"FontopoNIHONGO", system-ui, -apple-system, sans-serif;text-wrap:balance;line-height:1.3}:where(p){margin:0 0 var(--space-sm)}}@layer components{.page{min-height:100svh}.skip-link{left:var(--space-sm);top:var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-elevated);color:var(--fg);transition:transform var(--anim-hover);z-index:999;padding:.6em 1em;text-decoration:none;position:absolute;transform:translateY(-150%)}.skip-link:focus-visible{transform:translateY(0)}.brand{align-items:center;gap:var(--space-xs);display:inline-flex}.title{font-size:var(--text-2xl);margin-block:0 var(--space-xs)}:where(article,aside,nav,section) h1{font-size:var(--text-2xl)}.subtitle{font-size:var(--text-sm);color:var(--fg-muted);margin-block:0 var(--space-md)}.header{z-index:200;border-bottom:1px solid var(--border);background-color:var(--surface);max-height:100px;position:sticky;top:0;overflow:hidden}@supports (background-color:color-mix(in srgb, white, transparent)){.header{background-color:color-mix(in srgb, var(--surface) 90%, transparent)}}@supports (backdrop-filter:blur(1px)){.header{backdrop-filter:blur(8px)}}.header-inner{padding-block:var(--space-sm);justify-content:space-between;align-items:center;gap:var(--space-sm);display:flex}.brand-title{font-family:"FontopoNIHONGO", system-ui, -apple-system, sans-serif;font-size:var(--text-lg);letter-spacing:.02em;font-synthesis:none;margin:0;font-weight:400}.nav{gap:var(--space-xs);display:flex}.nav-link{align-items:center;gap:.5rem;padding:.5rem 1rem;min-height:44px;font-size:var(--text-sm);color:var(--fg-muted);border-radius:var(--radius-sm);transition:color var(--anim-hover), background-color var(--anim-hover), transform var(--anim-hover);text-decoration:none;display:inline-flex}.nav-link:hover{color:var(--fg);background-color:var(--bg-alt);transform:translateY(-1px)}.nav-link.is-active{color:var(--accent);background-color:var(--accent-soft);font-weight:600}.nav-icon{transform:translateY(-1px)}.hero{padding-block:var(--space-xl) var(--space-md);animation:var(--animation-fade-in) .42s var(--enter-ease);animation-fill-mode:both}.hero-body{gap:var(--space-sm);inline-size:round(down,100%,1ic);display:grid}.hero-title{font-size:var(--text-2xl);margin-block:0 var(--space-sm);inline-size:round(down,100%,1ic)}.hero-lead{font-size:var(--text-md);color:var(--fg-muted);margin-block:0 var(--space-lg);max-width:60ch;inline-size:round(down,100%,1ic)}.hero-actions{gap:var(--space-sm);flex-wrap:wrap;display:flex}.section{margin-block:var(--space-md);padding:var(--space-md);background-color:var(--surface-soft);border-radius:var(--radius-md);border:1px solid var(--border);animation:var(--animation-fade-in-bloom) forwards;animation-duration:.42s;animation-timing-function:var(--enter-ease);animation-fill-mode:both}.section-title{font-family:"FontopoNIHONGO", system-ui, -apple-system, sans-serif;font-size:var(--text-lg);margin-block:0 var(--space-sm);border-bottom:2px solid var(--border);padding-block-end:var(--space-xs)}.section-body{font-size:var(--text-sm);color:var(--fg-muted)}.list{margin:var(--space-sm) 0 0;padding-left:1.25em}.list>li{margin-block:.25em}.list-ordered{padding-left:1.4em}.btn{justify-content:center;align-items:center;gap:.5rem;min-height:44px;font-family:"FontopoNIHONGO", system-ui, -apple-system, sans-serif;font-size:var(--text-sm);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--anim-hover), color var(--anim-hover), border-color var(--anim-hover), box-shadow var(--anim-hover), transform var(--anim-hover);border:1px solid #0000;padding:.6em 1.2em;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.96)}.btn-primary{background-color:var(--accent);color:#fff;box-shadow:var(--shadow-2)}.btn-primary:hover{background-color:var(--accent-hover);box-shadow:var(--shadow-3);transform:translateY(-1px)}.btn-secondary{border-color:var(--border);color:var(--fg);background-color:#0000}.btn-secondary:hover{background-color:var(--bg-alt);border-color:#ced4da}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.field{gap:var(--space-xs);display:grid}.field-label{font-size:var(--text-sm);color:var(--fg-muted)}.field-input{width:100%;padding:.5rem 1rem;min-height:44px;border:1px solid var(--border);border-radius:var(--radius-sm);background-color:var(--surface);color:var(--fg);font-size:var(--text-sm);transition:border-color var(--anim-hover), box-shadow var(--anim-hover)}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-input.is-invalid{border-color:var(--danger)}.field-input.is-invalid:focus{box-shadow:0 0 0 3px #ef444433;box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 20%, transparent)}.field-error{font-size:var(--text-xs);color:var(--danger);margin-top:var(--space-xs);align-items:center;gap:var(--space-xs);animation:var(--animation-slide-in-down) .2s var(--ease-out-3);font-weight:600;display:flex}.field-error:before{content:"!:";font-size:1.1em}.form-actions{margin-top:var(--space-md);gap:var(--space-xs);display:grid}.form-note{font-size:var(--text-xs);color:var(--fg-muted);margin:0}.turnstile-wrapper{margin-top:var(--space-sm)}.tabs{gap:var(--space-xs);margin-block-end:var(--space-sm);padding-block-end:4px;display:flex;overflow-x:auto}.tab{padding:.5rem 1.25rem;min-height:44px;border-radius:var(--radius-lg);border:1px solid var(--border);color:var(--fg-muted);font-family:"FontopoNIHONGO", system-ui, -apple-system, sans-serif;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:color var(--anim-hover), background-color var(--anim-hover), border-color var(--anim-hover), transform var(--anim-hover);background:0 0}.tab:hover{background-color:var(--bg-alt);transform:translateY(-1px)}.tab.is-active{background-color:var(--accent-soft);color:var(--accent);border-color:var(--accent);font-weight:700}.race-panel{background-color:var(--surface-elevated);border-radius:var(--radius-lg);border:1px solid var(--border);padding:var(--space-md);box-shadow:var(--shadow-card);animation:var(--animation-fade-in) forwards;animation-duration:.42s;animation-timing-function:var(--enter-ease);animation-fill-mode:both}.race-header{justify-content:space-between;align-items:baseline;gap:var(--space-sm);flex-wrap:wrap;display:flex}.race-title{font-size:var(--text-lg);margin:0}.race-timer{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--fg-muted)}.race-status{margin-top:var(--space-xs);font-size:var(--text-xs);font-weight:600}.status{margin:0}.status-done{color:var(--success)}.status-closed{color:var(--warning)}.status-error{color:var(--danger)}.vote-dock{bottom:var(--space-sm);z-index:100;margin-top:var(--space-sm);padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-lg);background-color:var(--surface-elevated);box-shadow:var(--shadow-card);animation:var(--animation-slide-in-up) forwards;animation-duration:.42s;animation-timing-function:var(--ease-spring-2);animation-fill-mode:both;position:sticky}.vote-dock-list{margin:0 0 var(--space-xs);font-size:var(--text-xs);color:var(--fg-muted);gap:2px;padding:0;list-style:none;display:grid}.vote-dock .btn{width:100%}.candidate-grid{gap:var(--space-xs);margin-top:var(--space-md);padding-bottom:calc(44px + var(--space-md));grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.candidate-card{-webkit-appearance:none;appearance:none;font:inherit;text-align:left;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);min-height:44px;background-color:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--anim-hover), background-color var(--anim-hover), box-shadow var(--anim-hover), transform var(--anim-hover);display:flex;position:relative}.candidate-card:hover{border-color:var(--accent);background-color:var(--surface-soft);box-shadow:var(--shadow-4);transform:translateY(-4px)scale(1.02)}.candidate-card:active{transform:translateY(-2px)scale(.98)}.candidate-card.is-selected{background-color:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);animation:var(--animation-pulse) var(--anim-bounce) infinite;border-width:2px;animation-play-state:paused}.candidate-card.is-selected:hover,.candidate-card.is-selected:focus-visible{animation-play-state:running}.candidates.is-invalid .section-title{border-bottom-color:var(--danger);color:var(--danger)}.candidates.is-invalid .candidate-card:not(.is-selected){border-color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.candidate-icon-wrapper{border-radius:9999px;background-color:var(--bg-alt);border:1px solid var(--border);flex-shrink:0;width:40px;height:40px;position:relative;overflow:hidden}.candidate-icon{object-fit:cover;width:100%;height:100%}.candidate-rank-badge{background-color:var(--accent);color:#fff;border-radius:9999px;padding:2px 6px;font-size:10px;font-weight:700;position:absolute;bottom:-4px;right:-4px;box-shadow:0 2px 4px #0003}.candidate-body{gap:2px;display:grid}.candidate-name{font-family:"FontopoNIHONGO", system-ui, -apple-system, sans-serif;font-size:var(--text-sm);margin:0;font-weight:600}.candidate-note{font-size:var(--text-xs);color:var(--fg-muted);-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.vote-history{margin-top:var(--space-md);padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);animation:var(--animation-fade-in) .24s var(--enter-ease);background-color:#0000}.vote-history-header{align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--fg-muted);user-select:none;margin-bottom:var(--space-xs);display:flex}.vote-history-badge{align-items:center;gap:var(--space-xs);background-color:var(--success);color:#fff;font-size:var(--text-xs);border-radius:9999px;padding:2px 8px;font-weight:700;display:inline-flex}.vote-history-list{gap:var(--space-xs);margin-top:var(--space-xs);display:grid}.vote-history-item{font-size:var(--text-sm);align-items:baseline;gap:var(--space-xs);align-items:center;gap:var(--space-sm);font-size:var(--text-sm);display:flex}.vote-history-rank{width:3.5em;color:var(--fg-muted);font-size:var(--text-xs);flex-shrink:0}.vote-history-name{font-weight:600}.countdown-float{bottom:var(--space-md);right:var(--space-md);background-color:var(--surface-elevated);border:1px solid var(--border);padding:.5rem 1rem;border-radius:9999px;box-shadow:var(--shadow-float);font-size:var(--text-xs);align-items:center;gap:.5rem;z-index:100;pointer-events:none;animation:var(--animation-fade-in) forwards;animation-duration:.24s;animation-timing-function:var(--enter-ease);animation-fill-mode:both;display:flex;position:fixed}.countdown-label{color:var(--fg-muted)}.countdown-time{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:700}.main-centered{place-items:center;min-height:80vh;display:grid}.thanks-card{max-width:75%;padding:var(--space-lg);background-color:var(--surface-elevated);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-card);text-align:center;animation:var(--animation-scale-up) forwards;animation-duration:.42s;animation-timing-function:var(--enter-ease);scroll-margin-top:80px;animation-fill-mode:both;position:relative;top:auto}.thanks-header{gap:var(--space-xs);display:grid}.thanks-title{font-family:"FontopoNIHONGO", system-ui, -apple-system, sans-serif;font-size:var(--text-xl);margin:0}.thanks-lead{color:var(--fg-muted);font-size:var(--text-sm);margin:0}.thanks-body{margin-top:var(--space-md);text-align:left;font-size:var(--text-sm)}.thanks-actions{justify-content:center;gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.footer{border-top:1px solid var(--border);background-color:var(--surface)}.footer-inner{padding-block:var(--space-md);text-align:center;justify-content:center;display:flex}.footer-text{color:var(--fg-muted);font-size:var(--text-xs);margin:0}.loading-section{justify-content:center;align-items:center;gap:var(--space-md);padding:var(--space-xl);text-align:center;flex-direction:column;display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);width:40px;height:40px;animation:var(--animation-spin);border-radius:50%}.blocked-warning{margin-top:var(--space-md);padding:var(--space-md);background-color:#ffc80026;background-color:color-mix(in srgb, var(--warning) 15%, var(--surface));border:2px solid var(--warning);border-radius:var(--radius-md);animation:var(--animation-fade-in) forwards;animation-duration:.24s}.blocked-warning-title{margin:0 0 var(--space-xs);font-family:"FontopoNIHONGO", system-ui, -apple-system, sans-serif;font-size:var(--text-md);color:var(--fg);font-weight:700}.blocked-warning-body{margin:0 0 var(--space-sm);font-size:var(--text-sm);color:var(--fg-muted);line-height:1.5}.blocked-warning-steps{font-size:var(--text-sm);color:var(--fg);margin:0;padding-left:1.5em}.blocked-warning-steps li{margin-block:.3em}}@layer utilities{[x-cloak]{display:none!important}@media (hover:none){:where(.nav-link:hover,.tab:hover,.btn-primary:hover,.candidate-card:hover){box-shadow:none;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.hero,.section,.race-panel,.countdown-float,.thanks-card,.vote-dock,.vote-history{animation:none!important}}}@view-transition{navigation:auto}@font-face{font-family:FontopoNIHONGO;src:url(/assets/fonts/FontopoNIHONGO.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}:root{color-scheme:light dark;--content-max:960px;--content-pad:1.25rem;--bg:#f8f9fa;--bg-alt:#f1f3f5;--surface:var(--white);--surface-soft:#f8f9fa;--surface-elevated:var(--white);--border:#dee2e6;--fg:#343a40;--fg-muted:#868e96;--accent:#fd7e14;--accent-soft:#ff950024;--accent-hover:#f76707;--danger:#fa5252;--warning:#fab005;--success:#40c057;--radius-sm:2px;--radius-md:5px;--radius-lg:1rem;--radius-pill:9999px;--shadow-card:var(--shadow-1);--shadow-float:var(--shadow-3);--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--font-heading:"FontopoNIHONGO", system-ui, -apple-system, sans-serif;--font-body:system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs:.75rem;--text-sm:1rem;--text-md:1.1rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:2rem;--anim-hover:.28s var(--ease-spring-2);--anim-bounce:.5s var(--ease-spring-3);--enter-ease:var(--ease-out-4);--dur-fast:.24s;--dur-mid:.42s;--tap-min:44px;--ring:2px solid var(--accent);--ring-offset:2px;--z-float:100;--z-header:200;--z-skip:999}@supports (color:color-mix(in srgb, black, white)){:root{--accent-soft:color-mix(in srgb, #ff922b 12%, transparent);--accent-hover:color-mix(in srgb, #fd7e14 90%, black)}}@media (prefers-color-scheme:dark){:root{--bg:#212529;--bg-alt:#343a40;--surface:#212529;--surface-soft:#343a40;--surface-elevated:#343a40;--border:#868e96;--fg:#e9ecef;--fg-muted:#ced4da;--accent:#ff922b;--accent-hover:#ffa94d;--shadow-card:var(--shadow-1)}}