:root{color-scheme:dark;--background:#0d1117;--pane:#161b22;--text:#e6edf3;--muted:#9ba5b1;--border:#30363d;--green:#7ee787;--blue:#79c0ff;--orange:#ffa657;--active:#1d2b26;--hover:#1d2530;--selection:#2d5140;--tree-line:#586474;--mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,"Hiragino Sans","Yu Gothic",Meiryo,monospace;font-family:var(--mono);font-synthesis:none;color:var(--text);background:var(--background);font-size:15px;line-height:1.85;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body,dd,dl,h1,h2,h3,ol,p,pre,ul{margin:0}button,input,summary{font:inherit}a,button,input{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}a{color:var(--blue);text-decoration-thickness:1px;text-underline-offset:.3em;overflow-wrap:anywhere}a:hover,button:hover{color:var(--green)}:focus-visible{outline:2px solid var(--green);outline-offset:-2px}[hidden]{display:none!important}::-moz-selection{background:var(--selection);color:var(--text)}::selection{background:var(--selection);color:var(--text)}.file-comment,.muted{color:var(--muted)}.prompt{color:var(--green)}.string{color:var(--orange)}.technical{font-family:var(--mono);font-size:12px}.technology-stack{display:flex;flex-wrap:wrap;gap:6px 10px}.technology-entry{gap:10px;max-width:100%}.technology-entry,.technology-label{display:inline-flex;align-items:center;min-width:0}.technology-label{gap:7px}.technology-icon{flex:none;color:currentColor}.technology-separator{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{min-height:44px;position:fixed;top:4px;left:12px;z-index:10;padding:8px 16px;background:var(--green);color:var(--background);transform:translateY(-150%)}.skip-link:focus{transform:none}.workspace{height:100vh;height:100dvh;min-height:420px;display:flex;flex-direction:column;padding:8px}.workspace[data-terminal-open=true]{height:var(--workspace-height,100dvh);min-height:0}.workspace-window{flex:1;min-height:0;min-width:0;display:flex;flex-direction:column;border:1px solid var(--green);border-radius:10px;overflow:hidden}.window-titlebar{position:relative;flex:none;display:flex;align-items:center;justify-content:center;height:36px;padding:0 76px;border-bottom:1px solid var(--border);background:var(--pane)}.window-lights{position:absolute;left:14px;display:flex;gap:7px;pointer-events:none}.window-lights span{width:10px;height:10px;border-radius:50%;background:#ff6058}.window-lights span:nth-child(2){background:#febc2e}.window-lights span:nth-child(3){background:#28c840}.window-caption{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workspace-panes{overflow:hidden;flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,7fr) minmax(320px,3fr);grid-template-areas:"terminal map"}.terminal-pane{grid-area:terminal;display:flex;flex-direction:column;min-height:0;min-width:0}.pane-heading{margin-bottom:20px}.current-title{color:var(--muted);font-size:14px;font-weight:500}.copyright{margin:0;min-width:0;color:var(--muted);text-align:right;line-height:1.4}.copyright small{font-size:11px}.document-output{min-height:0;flex:1;overflow-y:auto;scrollbar-color:var(--tree-line) transparent;padding:36px clamp(28px,5vw,80px) 28px;overflow-wrap:anywhere}.browsing-guide{color:var(--muted);font-size:12px;margin-top:24px}.mobile-guide{display:none}.command-line{display:flex;flex-wrap:wrap;align-items:center;align-content:center;gap:0 .65ch;margin:-36px 0 8px;padding:8px 0;min-height:52px;color:var(--text);font-family:var(--mono);font-size:14px;line-height:1.7}.command-text{display:inline-grid;min-width:0;max-width:100%;overflow-wrap:anywhere}.command-text>span{grid-area:1/1}.complete-command{visibility:hidden}.typed-command{align-self:start}.entry-cursor{color:var(--green);animation:cursor-blink .65s step-end 3}@keyframes cursor-blink{50%{opacity:0}}.file-output{max-width:40em}.file-output[data-phase=typing],.pane-heading[data-phase=typing]{animation:content-wait .6s step-end}.file-output[data-phase=revealing],.pane-heading[data-phase=revealing]{animation:content-reveal .18s ease-out}@keyframes content-wait{0%{visibility:hidden}to{visibility:visible}}@keyframes content-reveal{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.file-comment{font-size:12px}h2{margin:0 0 20px;font-size:22px;line-height:1.6;font-weight:600}.tree-label,h2,h3{text-wrap:balance}@supports (word-break:auto-phrase){.tree-label,h2,h3{word-break:auto-phrase}}h2 .muted{font-size:13px;font-weight:400}h3{font-size:15px;font-weight:600;line-height:1.9}.card-identity{display:flex;align-items:center;gap:20px;margin-bottom:22px}.identity-name{min-width:0}.profile-image{flex:none;width:96px;height:96px;-o-object-fit:cover;object-fit:cover;border-radius:6px}.card-identity h2{margin:0 0 6px;font-family:var(--mono);font-size:32px;line-height:1.25;font-weight:700;letter-spacing:-.035em;text-wrap:wrap;overflow-wrap:normal}.identity-detail{color:var(--muted);font-family:var(--mono);font-size:14px;line-height:1.7}.profile-copy{margin-top:28px}.profile-copy h3{margin-bottom:12px}.file-output .profile-hobbies{margin-top:20px;font-size:13px}.file-output p+p{margin-top:12px}.fields{margin:23px 0}.fields>div{display:grid;grid-template-columns:5em minmax(0,1fr);gap:16px;align-items:baseline;min-height:36px}.fields dt{color:var(--blue)}.fields:not(.contact-fields) dt:after{content:" =";color:var(--muted)}.field-operator{color:var(--muted)}.fields dd{min-width:0}.fields a{display:inline-block;min-height:44px;padding:8px 0}.contact-fields{margin:0;font-family:var(--mono);font-size:14px}.contact-fields>div{grid-template-columns:6ch minmax(0,1fr);gap:1ch;min-height:44px}.contact-fields dt{white-space:nowrap}.contact-fields a{padding-block:9px;text-decoration:none}.contact-fields a:hover{text-decoration:underline}.text-block{margin-top:26px}.text-block p a{display:inline-block;min-height:44px;padding-block:8px}.text-block h3{margin-bottom:10px}.ruled{border-top:1px solid var(--border);padding-top:20px}.separated{margin-top:28px}.project-index,.reading-list{list-style:none;padding:0;margin-top:8px}.reading-list{display:flex;flex-wrap:wrap;gap:0 24px}.reading-list a{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;min-height:44px;padding:8px 0;text-decoration:none}.reading-list a:before{content:"→";color:var(--muted)}.reading-list a span{color:var(--muted);font-family:var(--mono);font-size:11px}.contact-line{margin-top:24px;display:flex;flex-wrap:wrap;gap:0 20px;align-items:center;font-size:13px}.contact-line a{display:inline-flex;align-items:center;min-height:44px;color:var(--green)}.contact-line .muted,.end-of-file{font-size:11px}.end-of-file{margin-top:30px;font-family:var(--mono);color:var(--muted)}.service-list{list-style:none;padding:0;margin-top:30px}.service-list>li{display:grid;grid-template-columns:1ch minmax(0,1fr);gap:16px;margin-bottom:28px}.service-bullet{color:var(--green);font-family:var(--mono);font-size:18px;line-height:1.6}.service-list h3{margin-bottom:8px}.service-stack{margin:4px 0 16px}.activity-list{padding-left:20px}.activity-list>li{padding-left:6px;margin-top:20px}.activity-list>li::marker{color:var(--green);font-size:12px}.activity-list h4{margin:0 0 6px;font-size:15px;font-weight:600}.text-action{min-height:44px;display:inline-flex;align-items:center;padding:8px 0}.project-index li{display:grid;grid-template-columns:11ch minmax(0,1fr);gap:16px;border-top:1px solid var(--border);padding:16px 0}.project-index{margin-top:28px}.project-index a{display:block;min-height:44px}.project-index a span{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:4px}.project-index p{margin-top:8px;font-size:13px}.repository-list{list-style:decimal-leading-zero;padding-left:36px}.repository-list li{padding:14px 0 20px 8px;border-bottom:1px solid var(--border)}.repository-list li::marker{color:var(--muted);font-size:12px}.repository-list a{min-height:44px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:8px 0;text-decoration:none}.repository-list a:hover>span:first-child{text-decoration:underline}.repository-list p{font-size:12px}.file-output .repository-list p+p{margin-top:2px}.technical-details{margin-top:22px;border-top:1px solid var(--border)}.technical-details>h3{padding-block:10px;color:var(--blue);font-size:13px}.technical-details p{font-size:14px}.command-log{flex:none;padding:0;font-family:var(--mono);font-size:13px;overflow-wrap:anywhere}.log-entry+.log-entry{margin-top:10px}.log-entry pre{font:inherit;white-space:pre-wrap;color:var(--muted);overflow-wrap:anywhere}.log-entry pre.command-error{color:var(--orange)}.command-dock{flex:none;min-width:0;border-top:1px solid var(--border);background:var(--pane)}.terminal-bar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;padding:0 18px}.command-toggle,.terminal-bar{align-items:center;min-height:44px}.command-toggle{display:flex;justify-content:space-between;gap:12px;min-width:44px;padding:8px 0;border:0;background:transparent;color:var(--text);font-size:13px;white-space:nowrap}.dock-chevron{color:var(--green)}.command-dock[data-open=false] .command-panel{display:none}.command-panel{display:grid;grid-template-rows:auto minmax(0,1fr);position:relative;height:var(--terminal-height,48dvh);min-height:0;overflow:hidden;background:var(--background)}.command-panel,.terminal-header{border-bottom:1px solid var(--border)}.terminal-header{min-width:0;padding-top:6px;background:var(--pane)}.terminal-titlebar{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding-left:24px;padding-right:8px}.terminal-titlebar h2{margin:0;font-size:13px;line-height:1.5;font-weight:500}.terminal-close{flex:none;display:grid;place-items:center;min-width:44px;min-height:44px;padding:0;border:0;background:transparent;color:var(--muted);font-size:22px;line-height:1}.terminal-close:hover{color:var(--text);background:var(--hover)}.terminal-viewport{min-height:0;min-width:0;overflow:auto;padding:20px 24px 32px;scrollbar-color:var(--tree-line) transparent;scroll-behavior:auto}.terminal-content{min-height:100%;display:flex;flex-direction:column;justify-content:flex-start}.terminal-content>*{flex:none}.terminal-resizer{position:absolute;top:0;left:0;right:0;height:6px;z-index:1;cursor:ns-resize;touch-action:none}.terminal-resizer:focus-visible,.terminal-resizer:hover{background:var(--tree-line)}.terminal-listing{display:flex;flex-direction:column;gap:2px;list-style:none;padding:6px 0 12px}.terminal-listing li{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 1ch}.listing-directory{color:var(--green)}.listing-file{color:var(--text)}.listing-directory,.listing-file{min-width:18ch}.listing-label{color:var(--muted);font-size:11px}.completion-suggestions{display:flex;flex-wrap:wrap;gap:0 2ch;list-style:none;padding:4px 0;font-size:13px}.command-cwd,.completion-suggestions{color:var(--muted);overflow-wrap:anywhere}.command-cwd{padding:0 24px 10px;font-size:12px;line-height:1.5}.command-form{display:flex;align-items:center;gap:6px;min-height:44px}.command-form label{flex:none;font-family:var(--mono);font-size:13px}.command-form input{flex:1;width:0;min-width:0;color:var(--text);padding:8px 0}.command-form button,.command-form input{min-height:44px;background:transparent;border:0;border-radius:0;font-size:16px}.command-form button{flex:none;min-width:44px;padding:8px;color:var(--muted)}.menu-pane{grid-area:map;display:flex;flex-direction:column;min-width:0;min-height:0;border-left:1px solid var(--border);background:var(--pane)}.menu-contact{display:flex;flex:none;align-items:center;min-height:52px;padding:8px 22px;border-bottom:1px solid var(--border);color:var(--green);font-size:12px;text-decoration:none}.page-map{flex:1;min-height:0;overflow:auto;min-width:0;scrollbar-color:var(--tree-line) transparent}.page-map>summary{display:none}.map-content{padding:0 22px 24px}.map-title{display:flex;align-items:center;min-height:44px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text);margin-bottom:24px}.tree-root{padding-left:4px;margin-bottom:12px;font-family:var(--mono);font-size:13px}.file-tree,.file-tree ul{list-style:none;padding:0 0 0 15px}.file-tree li{position:relative;border-left:1px solid var(--tree-line);padding-left:15px}.file-tree li:before{content:"";position:absolute;top:23px;left:0;width:11px;border-top:1px solid var(--tree-line)}.file-tree li:last-child{border-left-color:transparent}.file-tree li:last-child:after{content:"";position:absolute;top:0;left:-1px;height:24px;border-left:1px solid var(--tree-line)}.file-tree a{display:flex;flex-direction:column;justify-content:center;padding:8px 7px;min-height:62px;text-decoration:none;line-height:1.5;min-width:0;border-left:2px solid transparent}.file-tree a:hover{background:var(--hover)}.file-tree a[aria-current=page]{border-left-color:var(--green);background:var(--active)}.tree-filename{color:var(--muted);font-family:var(--mono);font-size:11px;margin-top:4px}.tree-label{color:var(--text);font-size:14px}.file-tree a[aria-current=page] .tree-label{color:var(--green)}.folder-row{display:flex;align-items:center}.folder-row button{border:0;padding:0;flex:0 0 44px;min-width:44px;min-height:44px;background:transparent;color:var(--green);font-size:18px}.folder-row button:hover{background:var(--hover)}.folder-row a{flex:1}.file-tree .tree-folder>ul{padding-left:22px}.workspace[data-enhanced=false] .fallback-path{border-top:1px solid var(--border);margin-top:30px;padding-top:22px}@media (min-width:761px){.workspace[data-enhanced=false] .page-map:not([open])>summary{display:list-item;min-height:44px;padding:8px 22px;list-style-position:inside}.workspace[data-enhanced=false] .page-map>summary .map-toggle{display:none}}@media (max-width:1000px) and (min-width:761px){.workspace-panes{grid-template-columns:minmax(0,1fr) 300px}.document-output{padding-inline:24px}.map-content{padding-inline:12px}}@media (max-width:760px){:root{font-size:14.5px}.window-titlebar{display:none}.workspace-window{border:0;border-radius:0}.window-lights{left:10px;gap:5px}.window-lights span{width:8px;height:8px}.window-caption{font-size:10px}.workspace{min-height:480px;padding:0}.workspace-panes{grid-template-columns:minmax(0,1fr);grid-template-rows:fit-content(50%) minmax(0,1fr);grid-template-areas:"map" "terminal"}.menu-pane{display:grid;grid-template-columns:minmax(0,1fr) 144px;align-items:start;border-left:0;border-bottom:1px solid var(--border)}.menu-contact{grid-column:2;grid-row:1;position:relative;z-index:2;justify-content:center;min-height:44px;padding:8px;border-bottom:0;border-left:1px solid var(--border);background:var(--pane)}.page-map{grid-column:1/-1;grid-row:1;max-height:min(45dvh,100%)}.page-map>summary{display:grid;grid-template-columns:minmax(0,1fr) 16px;position:sticky;top:0;z-index:1;align-items:center;gap:0 8px;width:calc(100% - 144px);min-height:44px;padding:8px 12px;font-size:13px;background:var(--pane)}.page-map>summary::-webkit-details-marker{display:none}.map-toggle{grid-column:2;grid-row:1;color:var(--green);white-space:nowrap}.map-title{display:none}.map-content{padding:8px 20px 20px}.tree-root{font-size:14px}.file-tree a{min-height:52px}.pane-heading{margin-bottom:16px}.desktop-guide{display:none}.mobile-guide{display:inline}.document-output{padding:26px 14px 20px}.command-line{margin:-26px 0 8px;padding:8px 0;min-height:44px;font-size:13px;margin-bottom:8px}h2{font-size:18px;margin-bottom:18px}h2 .muted{display:block;font-size:12px;margin-top:4px}.fields>div{grid-template-columns:4em minmax(0,1fr);gap:8px;font-size:12px}.card-identity h2{font-size:clamp(24px,7vw,28px)}.card-identity{gap:16px}.profile-image{width:72px;height:72px}.contact-fields,.identity-detail{font-size:13px}.contact-fields>div{grid-template-columns:6ch minmax(0,1fr);gap:1ch;font-size:inherit}.profile-copy{margin-top:24px}.file-comment{font-size:11px}.contact-line,.text-block{margin-top:20px}.contact-line .muted{display:none}.project-index li{grid-template-columns:minmax(0,1fr);gap:4px}.service-list>li{gap:12px}.command-log{font-size:12px}.terminal-bar{padding-inline:14px;gap:8px}.copyright{max-width:128px;justify-self:end}.copyright small{font-size:10px}.command-toggle{gap:8px;font-size:12px}.terminal-header{padding-top:0}.terminal-titlebar{padding-left:14px;padding-right:4px}.command-cwd{padding:0 14px 6px;font-size:11px}.terminal-viewport{padding:16px 14px 24px}.terminal-resizer{display:none}.command-form label{font-size:12px}}.file-output[id="about.txt"] .contact-line,.file-output[id="about.txt"] .profile-copy,.file-output[id="about.txt"] .profile-hobbies,.file-output[id="about.txt"] .reading-list{font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic,sans-serif}.file-output[id="about.txt"] .profile-copy{margin-top:36px}.file-output[id="about.txt"] .profile-copy h3{max-width:22em;font-size:24px;line-height:1.65;letter-spacing:.025em;font-weight:600;margin-bottom:24px;text-wrap:pretty}.file-output[id="about.txt"] .profile-copy p{font-size:16px;line-height:2;margin-top:18px}.file-output[id="about.txt"] .profile-copy p+p{padding-top:20px;border-top:1px solid var(--border);color:var(--muted)}.file-output[id="about.txt"] .reading-list span{font-family:var(--mono)}.file-output[id="about.txt"] .reading-list li{border-bottom:1px solid var(--border)}.file-output[id="about.txt"] .reading-list a{justify-content:space-between;padding-block:12px}@media (max-width:760px){.file-output[id="about.txt"] .profile-copy{margin-top:28px}.file-output[id="about.txt"] .profile-copy h3{font-size:21px;margin-bottom:18px}.file-output[id="about.txt"] .profile-copy p{font-size:16px;line-height:1.95}}.workspace[data-welcome=playing] .workspace-window{animation:welcome-enter 3s ease-out}.workspace[data-welcome=playing] .skip-link{animation:welcome-access 3s step-end}.welcome-intro{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:var(--background);visibility:hidden;pointer-events:none;animation:welcome-cover 3s linear}.welcome-copy{width:min(100%,540px)}.welcome-eyebrow{color:var(--muted);font-size:11px;letter-spacing:.16em}.welcome-boot{color:var(--green);font-size:clamp(12px,2.5vw,14px);margin:24px 0;line-height:2}.welcome-boot p{animation:boot-line .36s ease-out}.welcome-boot p+p{animation:boot-line .72s ease-out}.welcome-message{width:17ch;max-width:100%;overflow:hidden;white-space:nowrap;color:var(--text);font-size:clamp(22px,5vw,36px);line-height:1.5;letter-spacing:-.035em;animation:welcome-type 2.16s steps(17)}.welcome-skip{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));min-width:88px;min-height:44px;padding:8px 16px;border:1px solid var(--border);border-radius:4px;background:var(--pane);color:var(--text);pointer-events:auto;font-size:13px}@keyframes boot-line{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@keyframes welcome-type{0%,45%{width:0}to{width:17ch}}@keyframes welcome-cover{0%,80%{visibility:visible;opacity:1}to{visibility:hidden;opacity:0}}@keyframes welcome-enter{0%,80%{visibility:hidden;opacity:0;transform:translateY(8px)}80.01%{visibility:visible;opacity:0;transform:translateY(8px)}to{visibility:visible;opacity:1;transform:none}}@keyframes welcome-access{0%{visibility:hidden}to{visibility:visible}}.command-form input:focus-visible{outline:none;caret-color:var(--green)}.command-form:focus-within label .prompt{text-decoration:underline;text-decoration-color:var(--tree-line);text-underline-offset:5px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important;scroll-behavior:auto!important}.welcome-intro{display:none}.complete-command{visibility:visible}.typed-command{visibility:hidden}}@media (max-height:480px){.workspace{min-height:0}}