@font-face{font-family:Roboto Mono;src:url(/assets/fonts/RobotoMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Roboto Mono;src:url(/assets/fonts/RobotoMono-SemiBold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Kotonomo;src:url(/assets/fonts/Kotonomo-Regular-Kw-N.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Kotonomo;src:url(/assets/fonts/Kotonomo-Bold-Kw-N.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--bg: #26262d;--panel: #31313a;--panel-2: #2b2b32;--line: #3a3a44;--text: #a2a2a6;--fg: #f0f0f0;--dim: #6b6b73;--cyan: #31c0e0;--green: #0cd071;--red: #ea6363;--cyan-dim: #116f84;--green-dim: #177a4a;--red-dim: #802c2c;--mono: "Roboto Mono", "Kotonomo", ui-monospace, monospace;--maxw: 880px}*{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--bg);scrollbar-width:none}body{margin:0;padding:32px;background:var(--bg);color:var(--text);font-family:var(--mono);font-weight:400;letter-spacing:.02em;line-height:1.7;-webkit-font-smoothing:antialiased;font-size:15px}::selection{background:var(--cyan-dim);color:var(--fg)}a{color:var(--cyan);text-decoration:none;background-image:linear-gradient(var(--green),var(--green));background-repeat:no-repeat;background-position:0 100%;background-size:0% 1px;transition:background-size .18s steps(7,end),color .1s}a:hover{color:var(--green);background-size:100% 1px}h1,h2,h3,h4{font-family:var(--mono);font-weight:700;color:var(--fg);letter-spacing:.02em}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.012) 0px,rgba(255,255,255,.012) 1px,transparent 1px,transparent 3px);mix-blend-mode:overlay;opacity:.5}body:before{content:"";position:fixed;left:0;right:0;top:-200px;height:200px;background:var(--bg);z-index:60;pointer-events:none}.container{width:100%;margin-top:32px;min-height:calc(100dvh - 64px);display:flex;flex-direction:column;background-color:var(--panel)}#app{padding-bottom:80px}.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}.header{position:fixed;top:0;z-index:50;width:calc(100% - 64px);background-color:var(--panel);backdrop-filter:blur(8px);border-top:32px solid var(--bg)}.head-top{max-width:100%;margin:0 auto;padding:16px 32px;display:flex;align-items:center;gap:18px}.logo{display:flex;align-items:center;gap:10px;font-weight:700;color:var(--fg);font-size:14px;letter-spacing:.12em;text-transform:uppercase}.logo img{width:22px;height:22px;display:block;filter:saturate(.9)}.logo .blink-dot{width:8px;height:8px;background:var(--green);box-shadow:0 0 8px var(--green);animation:blink 1.1s steps(1) infinite}.top-menu{margin-left:auto;display:flex;gap:4px}.top-menu a{color:var(--text);padding:6px 12px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;background-image:linear-gradient(var(--green-dim),var(--green-dim));background-repeat:no-repeat;background-position:left center;background-size:0% 100%;transition:background-size .2s steps(8,end),color .1s}.top-menu a:hover{color:var(--fg);background-size:100% 100%}.top-menu a.active{color:var(--green)}.top-menu a:before{content:"/";color:var(--dim);margin-right:6px}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.started{min-height:calc(100dvh - 200px);display:flex;align-items:center;padding:64px 0;position:relative;overflow:hidden}.started .eyebrow{color:var(--green);font-size:13px;letter-spacing:.18em;text-transform:uppercase;margin:0 0 18px}.started .eyebrow .prompt{color:var(--dim)}.h-title{font-size:64px;line-height:1.06;font-weight:700;color:var(--fg);text-transform:uppercase;letter-spacing:.02em;margin:0 0 22px;word-break:break-word}.glitch-effect{position:relative;display:inline-block}.h-title.glitch-effect{display:block}.glitch-effect:before,.glitch-effect:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;background:var(--panel);clip:rect(0,0,0,0);overflow:hidden}.glitch-effect:after{left:2px;text-shadow:-2px 0 var(--red);animation:glitch-1 2.2s infinite linear alternate-reverse}.glitch-effect:before{left:-2px;text-shadow:2px 0 var(--cyan);animation:glitch-2 2.6s infinite linear alternate-reverse}@media(prefers-reduced-motion:reduce){.glitch-effect:before,.glitch-effect:after{animation:none;clip:rect(0,0,0,0)}}@keyframes glitch-1{0%{clip:rect(20px,9999px,51px,0)}5%{clip:rect(83px,9999px,102px,0)}10%{clip:rect(83px,9999px,105px,0)}15%{clip:rect(95px,9999px,11px,0)}20%{clip:rect(105px,9999px,56px,0)}25%{clip:rect(40px,9999px,19px,0)}30%{clip:rect(56px,9999px,97px,0)}35%{clip:rect(9px,9999px,17px,0)}40%{clip:rect(103px,9999px,53px,0)}45%{clip:rect(92px,9999px,6px,0)}50%{clip:rect(69px,9999px,46px,0)}55%{clip:rect(8px,9999px,87px,0)}60%{clip:rect(12px,9999px,15px,0)}70%{clip:rect(28px,9999px,106px,0)}80%{clip:rect(98px,9999px,63px,0)}85%{clip:rect(11px,9999px,44px,0)}95%{clip:rect(23px,9999px,84px,0)}to{clip:rect(66px,9999px,91px,0)}}@keyframes glitch-2{0%{clip:rect(86px,9999px,25px,0)}5%{clip:rect(30px,9999px,17px,0)}10%{clip:rect(54px,9999px,43px,0)}15%{clip:rect(10px,9999px,86px,0)}25%{clip:rect(62px,9999px,1px,0)}30%{clip:rect(61px,9999px,24px,0)}35%{clip:rect(38px,9999px,46px,0)}40%{clip:rect(115px,9999px,8px,0)}45%{clip:rect(87px,9999px,44px,0)}50%{clip:rect(6px,9999px,65px,0)}55%{clip:rect(83px,9999px,99px,0)}65%{clip:rect(25px,9999px,71px,0)}70%{clip:rect(37px,9999px,55px,0)}75%{clip:rect(115px,9999px,18px,0)}80%{clip:rect(68px,9999px,46px,0)}90%{clip:rect(47px,9999px,31px,0)}95%{clip:rect(47px,9999px,84px,0)}to{clip:rect(93px,9999px,53px,0)}}.subtitle-line{font-size:17px;color:var(--text);min-height:1.7em}.subtitle-line .fn{color:var(--green)}.subtitle-line .arg{color:var(--text)}.typed-cursor{display:inline-block;color:var(--green);font-weight:700;animation:blink 1s steps(1) infinite}.hero-meta{margin-top:30px;display:flex;flex-wrap:wrap;gap:10px 22px;font-size:12.5px;color:var(--dim);letter-spacing:.06em}.hero-meta b{color:var(--text);font-weight:400}.hero-meta .k{color:var(--cyan)}.section{padding:56px 0}.section-head{display:flex;align-items:baseline;gap:14px;margin-bottom:28px}.section-head .label{color:var(--green);font-size:13px;letter-spacing:.16em;text-transform:uppercase}.section-head .tag-label{letter-spacing:.06em;text-transform:none}.section-head .tag-hash{color:var(--green-dim);margin-right:1px}.section-head .count{color:var(--dim);font-size:12px}.section-head .rule{flex:1;height:1px;background:var(--line)}.index-list{display:flex;flex-direction:column}.log-row{background-image:none;display:grid;grid-template-columns:132px 1fr auto;gap:18px;align-items:baseline;padding:16px 14px;border-top:1px solid var(--line);cursor:pointer;position:relative;transition:background .12s ease}.index-list .log-row:last-child{border-bottom:1px solid var(--line)}.log-row:hover{background:var(--panel-2)}.log-row:hover .lr-date{color:var(--green)}.log-row:hover .lr-title:before{color:var(--green)}.lr-date{color:var(--cyan);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}.lr-main{min-width:0}.lr-title{color:var(--fg);font-weight:700;font-size:15px;letter-spacing:.01em}.lr-title:before{content:"▸ ";color:var(--dim)}.lr-file{display:block;color:var(--dim);font-size:12px;margin-top:3px}.lr-file .ext{color:var(--cyan-dim)}.lr-desc{margin:6px 0 0;color:var(--text);font-size:13.5px;font-family:"Kotonomo",var(--mono);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.lr-mood{font-size:16px;white-space:nowrap;align-self:center;opacity:.9}.crumb{font-size:12.5px;color:var(--dim);letter-spacing:.04em;margin-bottom:26px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.crumb a{color:var(--cyan)}.crumb .sep{color:var(--dim)}.crumb .cur{color:var(--text)}.post-head{border-bottom:1px solid var(--line);padding-bottom:26px;margin-bottom:30px}.post-kicker{color:var(--green);font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;margin:0 0 12px}.post-date-title{font-size:40px;line-height:1.1;color:var(--fg);margin:0;font-weight:700;letter-spacing:.02em}.post-thread{margin:14px 0 0;color:var(--text);font-size:15px;font-family:"Kotonomo",var(--mono)}.post-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;align-items:center}.tag{font-size:11.5px;color:var(--green);border:1px solid var(--green-dim);padding:2px 9px;letter-spacing:.04em;background-image:none;transition:background-color .15s steps(4,end),color .1s}a.tag:hover{background-color:var(--green-dim);color:var(--fg)}.tag:before{content:"#";color:var(--green-dim)}.post-meta .mood{font-size:18px;margin-left:auto}.terminal{border:1px solid var(--line);background:#1f1f25;border-radius:6px;overflow:hidden}.term-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--line)}.term-bar .dot{width:11px;height:11px;border-radius:50%}.term-bar .dot.r{background:var(--red)}.term-bar .dot.y{background:#e0b531}.term-bar .dot.g{background:var(--green)}.term-bar .name{margin-left:8px;color:var(--dim);font-size:12px;letter-spacing:.05em}.term-body{padding:22px 20px 26px;font-size:13.5px;line-height:1.85;overflow-x:auto}.term-body pre{margin:0;white-space:pre-wrap;word-break:break-word}.t-comment{color:var(--dim);font-style:italic}.t-key{color:var(--cyan)}.t-dash{color:var(--red)}.t-str{color:var(--text)}.t-num{color:var(--green)}.t-bool{color:var(--green);font-weight:700}.t-fence{color:var(--green-dim)}.t-h1{color:var(--fg);font-weight:700}.t-plain{color:var(--text);font-family:"Kotonomo",var(--mono)}.term-body .gutter{color:var(--line);user-select:none;margin-right:16px;display:inline-block;min-width:2ch;text-align:right}.post-nav{display:flex;justify-content:space-between;gap:16px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:13px}.post-nav a{display:flex;flex-direction:column;gap:4px;max-width:46%}.post-nav .dir{color:var(--dim);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.post-nav .nx{text-align:right;margin-left:auto}.about-grid{display:grid;grid-template-columns:200px 1fr;gap:40px;align-items:start}.about-portrait{border:1px solid var(--line);background:var(--panel-2);padding:10px}.about-portrait img{width:100%;display:block;filter:grayscale(.15) contrast(1.02)}.about-portrait .cap{color:var(--dim);font-size:11px;margin-top:8px;text-align:center;letter-spacing:.08em}.whoami .line{margin:0 0 4px}.whoami .prompt{color:var(--green)}.whoami .prompt:before{content:"saya@yeslucas:~$ ";color:var(--cyan)}.about-quotes{margin-top:48px;display:flex;flex-direction:column;gap:18px}.about-quote{border-left:2px solid var(--cyan-dim);padding:4px 0 4px 18px}.about-quote .en{color:var(--fg);font-size:13px}.about-quote .jp{color:var(--text);font-family:"Kotonomo",var(--mono);font-size:12px;margin-top:4px}.kv{display:grid;grid-template-columns:120px 1fr;gap:4px 16px;margin-top:48px;font-size:13.5px}.kv dt{color:var(--cyan)}.kv dd{margin:0;color:var(--text)}.footer{position:fixed;bottom:0;left:0;right:0;z-index:40;border-bottom:32px solid var(--bg);margin:0 32px;padding:24px 4px;color:var(--dim);font-size:12.5px;background:var(--panel)}.footer .wrap{display:flex;max-width:100%;justify-content:space-between;flex-wrap:wrap;gap:12px}.footer a{color:var(--text)}.view{display:none}.view.active{display:block}#glitch-trans{position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:0;background-image:linear-gradient(#31c0e08c,#31c0e000 34%),linear-gradient(#ea636300 66%,#ea63638c),repeating-linear-gradient(0deg,rgba(240,240,240,.1) 0 2px,transparent 2px 5px)}#glitch-trans.run{animation:mt-veil .52s steps(24,end) both}@keyframes mt-veil{0%{opacity:0;transform:translateY(-105%)}14%{opacity:.95}50%{transform:translateY(0);opacity:.85}82%{opacity:.55}to{opacity:0;transform:translateY(105%)}}@keyframes mt-enter{0%{opacity:0;transform:translate(-10px);filter:blur(1.2px)}10%{opacity:1;transform:translate(10px)}18%{transform:translate(-7px)}26%{transform:translate(5px);text-shadow:2px 0 var(--red),-2px 0 var(--cyan)}34%{transform:translate(-3px)}44%{transform:translate(0);filter:blur(0);text-shadow:none}to{opacity:1;transform:none;filter:none;text-shadow:none}}#app.mt-enter{animation:mt-enter .5s cubic-bezier(.2,.7,.2,1) both;will-change:transform,opacity,filter}@media(prefers-reduced-motion:reduce){#glitch-trans{animation:none!important;opacity:0!important}#app.mt-enter{animation:mt-fade .3s ease both}@keyframes mt-fade{0%{opacity:0}to{opacity:1}}}@media(max-width:720px){body{padding:0}.container{position:relative;min-height:100dvh;width:calc(100% - 15px);top:0;margin-top:0;padding-top:5rem;left:15px;right:15px;background:var(--panel);border-top:15px solid var(--bg);border-right:15px solid var(--bg)}.header{top:0;left:15px;right:0;width:calc(100% - 30px);height:5rem;border-top:15px solid var(--bg);padding-top:env(safe-area-inset-top,0px);overscroll-behavior:none}.head-top{padding:15px;position:relative}.h-title{font-size:40px}.post-date-title{font-size:30px}.logo,.top-menu a{font-size:10px}.log-row{grid-template-columns:1fr auto}.lr-date{grid-column:1 / 2}.lr-mood{grid-row:1}.lr-main{grid-column:1 / 3}.about-grid{grid-template-columns:1fr}.about-portrait{max-width:220px}.started{min-height:calc(100dvh - 70px);padding:48px 0}.footer{position:relative;border-bottom:none;padding:15px;margin:20px 0 0;font-size:10px;border-bottom:15px solid var(--bg)}#app{padding-top:calc(60px + env(safe-area-inset-top,0px));padding-bottom:0}.footer .wrap span{display:block;text-align:center;width:100%}}
