html{scroll-behavior:smooth}
body{background:#0b0b0c;color:#f2f1ed;font-family:"Zen Kaku Gothic New","Noto Sans JP","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;-webkit-font-smoothing:antialiased}
.font-display{font-family:"Dela Gothic One","Zen Kaku Gothic New","Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic UI","Yu Gothic",Meiryo,sans-serif;font-weight:400}
.font-mono{font-family:"Space Grotesk",monospace}
::selection{background:#ff5a00;color:#0b0b0c}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:60;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
.outline-text{-webkit-text-stroke:1.5px #f2f1ed;color:transparent}
.marquee{display:flex;width:max-content;animation:mq 38s linear infinite}
@keyframes mq{to{transform:translateX(-50%)}}
.gridbg{background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:48px 48px}
.cut{clip-path:polygon(0 0,100% 0,100% calc(100% - 28px),calc(100% - 28px) 100%,0 100%)}
.imgz{overflow:hidden}.imgz img{transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .5s}.imgz:hover img{transform:scale(1.05)}
.ulink{background:linear-gradient(#ff5a00,#ff5a00) 0 100%/0 2px no-repeat;transition:background-size .3s}.ulink:hover,.ulink.on{background-size:100% 2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.95rem 1.8rem;font-weight:700;letter-spacing:.12em;font-size:.8rem;transition:.25s;cursor:pointer}
.btn-o{background:#ff5a00;color:#0b0b0c}.btn-o:hover{background:#f2f1ed}
.btn-l{border:1px solid rgba(242,241,237,.5);color:#f2f1ed}.btn-l:hover{background:#f2f1ed;color:#0b0b0c}
.field{width:100%;background:#141415;border:1px solid #3a3a3b;padding:.8rem 1rem;font-size:.95rem;color:#f2f1ed;outline:none;transition:border-color .2s}
.field:focus{border-color:#ff5a00}
label.lb{display:block;font-size:.72rem;letter-spacing:.16em;color:#a8a8a3;margin-bottom:.4rem}
details.fq{border-bottom:1px solid #2a2a2b}details.fq summary{cursor:pointer;list-style:none;padding:1.2rem 0;display:flex;justify-content:space-between;gap:1rem;font-weight:700}
details.fq summary::-webkit-details-marker{display:none}details.fq summary:after{content:"+";color:#ff5a00;font-size:1.5rem;line-height:1}details.fq[open] summary:after{content:"−"}
.toast-wrap{position:fixed;right:1rem;bottom:1rem;z-index:100;display:flex;flex-direction:column;gap:.6rem;max-width:calc(100vw - 2rem)}
.toast{background:#f2f1ed;color:#0b0b0c;border-left:6px solid #ff5a00;padding:.9rem 1.1rem;font-size:.9rem;font-weight:700;box-shadow:0 12px 40px rgba(0,0,0,.5);animation:ti .35s ease;max-width:360px}
.toast.err{border-left-color:#d62828}.toast.out{opacity:0;transform:translateX(20px);transition:.3s}
@keyframes ti{from{opacity:0;transform:translateY(14px)}}
.modal{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.8);display:none;align-items:center;justify-content:center;padding:1rem;overflow:auto}
.modal.open{display:flex}
.lb-view{position:fixed;inset:0;z-index:95;background:rgba(0,0,0,.94);display:none;align-items:center;justify-content:center;padding:1rem}
.lb-view.open{display:flex}.lb-view img{max-height:86vh;max-width:96vw;object-fit:contain}
#menu-overlay{position:fixed;inset:0;z-index:70;background:#0b0b0c;transform:translateY(-100%);transition:transform .5s cubic-bezier(.7,0,.2,1);overflow:auto}
#menu-overlay.open{transform:none}
.tbl{width:100%;border-collapse:collapse;font-size:.92rem}.tbl th,.tbl td{border-bottom:1px solid #2a2a2b;padding:.8rem .6rem;text-align:left;vertical-align:top}.tbl th{color:#a8a8a3;font-weight:500;white-space:nowrap}
.prose-jp h2{font-family:"Dela Gothic One",sans-serif;font-size:1.35rem;margin:2.8rem 0 .9rem;padding-left:.9rem;border-left:5px solid #ff5a00}
.prose-jp p,.prose-jp li{color:#c9c8c3;line-height:2}.prose-jp ul{list-style:disc;padding-left:1.4rem;margin:.6rem 0}.prose-jp a{color:#ff5a00;text-decoration:underline}
@media (prefers-reduced-motion:reduce){.marquee{animation:none}.js .rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
