:root{--bg: #eef2f7;--panel: #ffffff;--card: #dce8f6;--card-hover: #d0e0f3;--text: #1f2937;--muted: #5b6676;--line: #d5dde8;--accent: #2f6fd1;--accent-ink: #ffffff;--accent-soft: #e3edfb;--ok: #1f9d55;--ng: #d14343;--new: #e2603f;--shadow: 0 1px 2px rgb(15 23 42 / .05), 0 4px 16px rgb(15 23 42 / .06);--radius: 18px;--radius-sm: 10px;--font: system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;--font-display: "Comfortaa", var(--font);color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #11161d;--panel: #19202a;--card: #1f2a38;--card-hover: #253345;--text: #e6ebf2;--muted: #9aa6b5;--line: #2b3646;--accent: #6ea4f5;--accent-ink: #0d1520;--accent-soft: #22324a;--ok: #4cc283;--ng: #f07a7a;--new: #f08a6a;--shadow: 0 1px 2px rgb(0 0 0 / .3), 0 4px 16px rgb(0 0 0 / .25);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.7;min-height:100vh;display:flex;flex-direction:column}main{flex:1}img{max-width:100%;height:auto;display:block}a{color:var(--accent)}ul{padding:0;list-style:none}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:6px}.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:16px}@media(min-width:700px){.container{padding-inline:24px}}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:16px;top:8px;z-index:100;background:var(--panel);padding:8px 12px}.sp-only{display:inline}.pc-only{display:none}@media(min-width:700px){.sp-only{display:none}.pc-only{display:inline}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:999px;font-size:.9rem;font-weight:600;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:inherit;transition:background-color .15s,transform .15s;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover{filter:brightness(1.08)}.btn--primary:disabled{opacity:.6;cursor:wait}.btn--ghost{background:var(--panel);color:var(--text);border-color:var(--line)}.btn--ghost:hover{border-color:var(--accent);color:var(--accent)}.btn--block{width:100%}.badge{display:inline-block;font-size:.72rem;font-weight:700;line-height:1;padding:5px 8px;border-radius:6px;background:var(--panel);color:var(--muted);border:1px solid var(--line)}.badge--free{background:var(--ok);border-color:var(--ok);color:#fff}.badge--paid,.badge--freemium{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.badge--new{background:var(--new);border-color:var(--new);color:#fff;vertical-align:middle;margin-left:6px;font-size:.65rem}.site-header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--panel) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.site-header__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;height:64px}.brand{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;min-width:0}.brand__logo{width:36px;height:auto;flex-shrink:0}@media(prefers-color-scheme:dark){.brand__logo,.about__avatar img{filter:invert(.85)}}.brand__name{font-family:var(--font-display);font-weight:700;font-size:1.15rem;white-space:nowrap;text-box:trim-both cap alphabetic}@supports not (text-box: trim-both cap alphabetic){.brand__name{position:relative;top:.1em}}.brand__sub{font-family:var(--font-display);font-weight:700;font-size:1.8rem;color:#000;text-decoration:none;white-space:nowrap}@media(prefers-color-scheme:dark){.brand__sub{color:var(--text)}}@media(max-width:480px){.brand__sub{display:none}}.sns{display:flex;gap:2px;justify-self:end}.sns__link{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--text);transition:background-color .15s}.sns__link:hover{background:var(--accent-soft);color:var(--accent)}.hero{padding-block:40px 28px}.hero__title{font-size:clamp(1.4rem,3.4vw,2rem);line-height:1.35;letter-spacing:.01em}.hero__lead{color:var(--muted);margin-top:12px;max-width:46em}.layout{display:grid;gap:24px;align-items:start}@media(min-width:1024px){.layout{grid-template-columns:minmax(0,1fr) 320px}.side{position:sticky;top:84px}}.apps{background:var(--panel);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}@media(min-width:700px){.apps{padding:28px}}.section{margin-top:24px;background:var(--panel);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}@media(min-width:700px){.section{padding:28px}}.section__head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;margin-bottom:18px}.section__title{font-family:var(--font-display);font-size:1.6rem;display:flex;align-items:center;gap:8px}.section__sub{display:flex;align-items:center;gap:8px;color:var(--muted);font-family:var(--font-display);font-size:.95rem}.section__clawd{width:30px;height:auto;image-rendering:pixelated}.section__note-logo{height:20px;width:auto}@media(prefers-color-scheme:dark){.section__note-logo{filter:invert(1)}}.section__more{display:inline-flex;align-items:center;gap:4px;font-size:.9rem;font-weight:600;text-decoration:none}.section__more:hover{text-decoration:underline}.app-grid{display:grid;gap:20px}@media(min-width:700px){.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.app-card{display:flex;flex-direction:column;gap:14px;background:var(--card);border-radius:var(--radius);padding:18px;transition:background-color .2s}.app-card:hover{background:var(--card-hover)}.app-card__head{display:flex;align-items:center;gap:14px}.app-card__icon{width:52px;height:52px;border-radius:12px;flex-shrink:0}.app-card__name{font-family:var(--font-display);font-size:1.3rem;line-height:1.3}.app-card__tagline{color:var(--muted);font-size:.9rem;line-height:1.5}.app-card__shot{display:block;border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:16 / 10;background:#0b0f14;box-shadow:var(--shadow)}.app-card__shot img{width:100%;height:100%;object-fit:cover;object-position:top left;transition:transform .35s ease}.app-card:hover .app-card__shot img{transform:scale(1.03)}.app-card__desc{font-size:.92rem;flex:1}.app-card__meta,.app-card__tech{display:flex;flex-wrap:wrap;gap:6px}.app-card__tech li{font-size:.78rem;color:var(--muted)}.app-card__tech li+li:before{content:"·";margin-right:6px}.app-card__actions{display:flex;flex-wrap:wrap;gap:8px}.side{display:grid;gap:24px}.side-card{background:var(--panel);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.side-card__title{font-family:var(--font-display);font-size:1.25rem;margin-bottom:14px}.about__id{display:flex;align-items:center;gap:14px}.about__avatar{width:72px;height:72px;display:grid;place-items:center;flex-shrink:0}.about__avatar img{width:64px;height:auto}.about__name{font-family:var(--font-display);font-weight:700;font-size:1.15rem}.about__role{color:var(--muted);font-size:.85rem}.about__bio{margin-top:14px;font-size:.9rem}.skills{margin-top:16px;display:grid;gap:10px}.skills__row{display:grid;grid-template-columns:76px 1fr;gap:8px;align-items:start}.skills dt{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-top:4px}.skills dd ul{display:flex;flex-wrap:wrap;gap:5px}.skills dd li{font-size:.78rem;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--text)}.about__sns{display:flex;gap:6px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.about__sns a{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--text);background:var(--bg)}.about__sns a:hover{color:var(--accent)}.work__status{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:700;color:var(--ok);margin-bottom:10px}.work__dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px color-mix(in srgb,var(--ok) 22%,transparent)}.work__list{display:grid;gap:6px;font-size:.88rem}.work__list li{position:relative;padding-left:18px}.work__list li:before{content:"";position:absolute;left:2px;top:.62em;width:7px;height:7px;border-radius:2px;background:var(--accent)}.work__note{font-size:.78rem;color:var(--muted);margin-block:14px 16px}.note-grid{display:grid;gap:18px}@media(min-width:600px){.note-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:960px){.note-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.note-card{display:flex;flex-direction:column;height:100%;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line);background:var(--panel);color:var(--text);text-decoration:none;transition:border-color .15s,transform .15s}.note-card:hover{border-color:var(--accent);transform:translateY(-2px)}.note-card__thumb{aspect-ratio:1.91 / 1;background:var(--card)}.note-card__thumb img{width:100%;height:100%;object-fit:cover}.note-card__body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px;flex:1}.note-card__title{font-weight:700;font-size:.95rem;line-height:1.5;flex:1}.note-card__date{font-size:.8rem;color:var(--muted)}.note-empty{color:var(--muted)}.site-footer{margin-top:48px;background:var(--panel);border-top:1px solid var(--line);padding-top:36px;font-size:.9rem}.site-footer__grid{display:grid;gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__about{grid-column:1 / -1}@media(min-width:800px){.site-footer__grid{grid-template-columns:2fr 1fr 1fr 1fr}.site-footer__about{grid-column:auto}}.site-footer__title{font-family:var(--font-display);font-weight:700;font-size:1.05rem}.site-footer__lead{color:var(--muted);margin-top:4px}.site-footer__heading{font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:8px}.site-footer ul{display:grid;gap:4px}.site-footer a{color:var(--text);text-decoration:none}.site-footer a:hover{color:var(--accent);text-decoration:underline}.site-footer__copy{text-align:center;color:var(--muted);font-size:.8rem;padding:28px 16px 24px}.page{max-width:760px;padding-block:40px 0}.page--center{text-align:center;padding-top:80px}.page__title{font-family:var(--font-display);font-size:1.9rem;margin-bottom:12px}.page__lead{color:var(--muted);margin-bottom:28px}.prose h2{font-size:1.15rem;margin:28px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--line)}.prose ul{list-style:disc;padding-left:1.4em;display:grid;gap:4px}.prose__date{margin-top:32px;color:var(--muted);font-size:.85rem;text-align:right}.contact-form,.contact-mail{background:var(--panel);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}.contact-form{display:grid;gap:18px}.field{display:grid;gap:6px}.field__label{font-weight:600;font-size:.9rem}.req{font-size:.7rem;color:#fff;background:var(--ng);padding:2px 6px;border-radius:4px;margin-left:4px;vertical-align:middle}.field input,.field select,.field textarea{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;width:100%}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.hp{position:absolute;left:-9999px;width:1px;height:1px}.contact-form__privacy{font-size:.82rem;color:var(--muted)}.contact-form .btn{justify-self:start;padding-inline:32px}.contact-form__status:empty{display:none}.contact-form__status.is-ok{color:var(--ok);font-weight:600}.contact-form__status.is-error{color:var(--ng);font-weight:600}.contact-mail__addr{font-size:1.2rem;font-weight:700;margin-top:8px;word-break:break-all}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
