@charset "UTF-8";.contact{padding-bottom:80px}.contact__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start;padding:48px;border-radius:32px;border:1px solid var(--line);background:radial-gradient(500px 240px at 0% 0%,rgba(226,91,69,.16),transparent 60%),var(--surface)}.contact .kicker{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:600}.contact h2{margin-top:12px;font-family:var(--serif);font-weight:400;font-size:clamp(48px,6vw,84px);line-height:.9;letter-spacing:-.03em}.contact h2 em{font-style:italic;color:var(--accent-2)}.contact ul{list-style:none;margin-top:36px;display:flex;flex-direction:column;gap:18px}.contact li span{display:block;margin-bottom:4px;color:var(--muted);font-size:12px;letter-spacing:.12em;text-transform:uppercase}.contact a,.contact p{overflow-wrap:anywhere}.contact a:hover{color:var(--accent-2)}.contact form{display:flex;flex-direction:column;gap:14px}.contact input,.contact textarea{width:100%;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:rgba(12,11,10,.45);color:var(--text);font-size:15px;outline:none;resize:vertical}.contact input:focus,.contact textarea:focus{border-color:var(--accent)}.contact button{align-self:flex-start;margin-top:4px}.contact .formNote{color:var(--accent-2);font-size:14px}.contact .formNote--error{color:#ffb4a8}@media (max-width: 860px){.contact__grid{grid-template-columns:1fr;gap:32px;padding:24px}.contact button{width:100%}}.hero{position:relative;min-height:calc(100vh - var(--nav));display:flex;flex-direction:column;justify-content:flex-end;padding-top:28px}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(246,241,231,.14) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(#000 20%,transparent 78%);mask-image:linear-gradient(#000 20%,transparent 78%);pointer-events:none}.hero__grid{position:relative;flex:1;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;padding:24px 0 48px}.hero__grid>*{min-width:0}.hero__copy{display:flex;flex-direction:column;align-items:flex-start;gap:28px}.hero .eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--accent-2);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:600}.hero .eyebrow span{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px #e25b452e}.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(64px,8vw,112px);line-height:.88;letter-spacing:-.035em}.hero h1 em{font-style:italic;color:var(--accent)}.hero .lede{max-width:460px;color:var(--muted);font-size:18px}.hero__actions{display:flex;flex-wrap:wrap;gap:12px}.portrait{position:relative;height:min(68vh,640px)}.portrait__frame{height:100%;border-radius:28px 28px 140px;overflow:hidden;background:transparent;border:1px solid var(--line);box-shadow:22px 22px #e25b4529}.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.portrait .chip{position:absolute;padding:10px 14px;border-radius:999px;background:rgba(12,11,10,.86);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:13px;font-weight:500}.portrait .chip--place{top:22px;left:-18px}.portrait .chip--status{right:-8px;bottom:36px;display:inline-flex;align-items:center;gap:8px}.portrait .chip--status span{width:8px;height:8px;border-radius:50%;background:#7dcea0}.ticker{position:relative;width:100%;min-width:0;overflow:hidden;border-top:1px solid var(--line);padding:16px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.ticker__track{display:flex;gap:36px;width:max-content;animation:ticker 32s linear infinite}.ticker span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:13px;font-weight:600}.ticker span:before{content:"·";margin-right:36px;color:var(--accent)}@keyframes ticker{to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.ticker__track{animation:none}}@media (max-width: 860px){.hero{min-height:auto}.hero__grid{grid-template-columns:1fr;gap:36px;padding-bottom:36px}.hero h1{font-size:clamp(56px,16vw,84px)}.portrait{height:420px}.portrait .chip--place{left:12px}.portrait .chip--status{right:auto;left:12px;bottom:16px}}.sidebar{display:none;flex-direction:column;align-items:center;justify-content:center;color:#000}@media (max-width: 860px){.sidebar{display:flex}}.sidebar .bg{position:fixed;top:0;left:0;bottom:0;width:200px;background:#1c1412;z-index:999}@media (max-width: 860px){.sidebar .bg{width:200px}}.sidebar .bg .links{position:absolute;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;gap:20px;padding-left:15px}.sidebar .bg .links a{font-size:25px;color:#fff;display:flex;align-items:center;gap:5px;box-sizing:border-box}@media (max-width: 860px){.sidebar .bg .links a{font-size:20px}}.sidebar button{width:50px;height:50px;border-radius:50%;position:fixed;top:13px;left:16px;background-color:transparent;border:none;cursor:pointer;z-index:999}.navbar{position:sticky;top:0;z-index:40;height:var(--nav);background:rgba(12,11,10,.94);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.navbar__inner{height:100%;width:min(var(--max),100% - 48px);margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px}.navbar .logo{font-weight:600;letter-spacing:-.03em;font-size:20px}.navbar .logo em{font-family:var(--serif);font-style:italic;font-weight:400;color:var(--accent-2);margin-left:4px}.navbar nav{display:flex;justify-content:center;gap:8px}.navbar nav a{padding:8px 14px;border-radius:999px;color:var(--muted);font-size:14px;font-weight:500}.navbar nav a:hover{color:var(--text);background:var(--surface)}.navbar .social{display:flex;gap:8px}.navbar .social a{width:36px;height:36px;display:grid;place-items:center;background:#f6f1e7;border-radius:10px}.navbar .social img{width:18px;height:18px}@media (max-width: 860px){.navbar__inner{width:min(var(--max),100% - 32px);padding-left:56px;grid-template-columns:1fr auto}.navbar nav{display:none}}.works{display:flex;flex-direction:column;gap:20px}.project{display:grid;grid-template-columns:1.15fr .85fr;gap:28px;align-items:center;padding:16px;border-radius:28px;border:1px solid var(--line);background:var(--surface)}.project:nth-child(2n){grid-template-columns:.85fr 1.15fr}.project:nth-child(2n) .project__media{order:2}.project__media{border-radius:18px;overflow:hidden;background:#efeae2;aspect-ratio:16/10}.project__media img{width:100%;height:100%;object-fit:cover;object-position:top}.project__media.is-contain{background:#fff}.project__media.is-contain img{object-fit:contain;object-position:center;padding:40px}.project__body{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:12px 18px 12px 8px}.project .index{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:20px;line-height:1.2}.project h3{font-family:var(--serif);font-weight:400;font-size:clamp(36px,4vw,56px);letter-spacing:-.03em;line-height:.95}.project p{color:var(--muted);font-size:16px;max-width:42ch}.project ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.project li{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-2)}@media (max-width: 860px){.project,.project:nth-child(2n){grid-template-columns:1fr}.project .project__media,.project:nth-child(2n) .project__media{order:0}.project__body{padding:8px 8px 16px}}:root{--bg: #0c0b0a;--surface: rgba(246, 241, 231, .045);--line: rgba(246, 241, 231, .12);--text: #f6f1e7;--muted: #a89f93;--accent: #e25b45;--accent-2: #f0c9a0;--sans: "DM Sans", sans-serif;--serif: "Instrument Serif", Georgia, serif;--max: 1120px;--nav: 76px}html{scroll-behavior:smooth}*{padding:0;margin:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.5}a{text-decoration:none;color:inherit}button,input,textarea{font-family:inherit}img{max-width:100%;display:block}section[id]{scroll-margin-top:var(--nav)}.app{min-height:100vh;overflow-x:clip;background:radial-gradient(900px 480px at 100% -10%,rgba(226,91,69,.16),transparent 55%),radial-gradient(640px 420px at -10% 8%,rgba(240,201,160,.08),transparent 50%),var(--bg)}.wrap{width:min(var(--max),100% - 48px);margin:0 auto}.section{padding:108px 0 32px}.sectionHead{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:40px}.sectionHead .kicker{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:600}.sectionHead h2{margin-top:10px;font-family:var(--serif);font-weight:400;font-size:clamp(42px,6vw,76px);line-height:.92;letter-spacing:-.03em}.sectionHead .aside{max-width:280px;color:var(--muted);text-align:right;font-size:15px}.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 22px;border-radius:999px;border:1px solid transparent;font-size:15px;font-weight:600;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.btn--solid{background:var(--accent);color:#1a0d0a}.btn--ghost{background:transparent;color:var(--text);border-color:var(--line)}.btn:hover{transform:translateY(-2px)}@media (max-width: 860px){.wrap{width:min(var(--max),100% - 32px)}.section{padding:72px 0 16px}.sectionHead{flex-direction:column;align-items:flex-start}.sectionHead .aside{text-align:left}}.bento{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.card{min-width:0;min-height:240px;padding:28px;border-radius:24px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(246,241,231,.055),rgba(246,241,231,.02));display:flex;flex-direction:column;justify-content:space-between;gap:28px;transition:transform .25s ease,border-color .25s ease,background .25s ease}.card:hover{transform:translateY(-3px);border-color:#e25b4573;background:linear-gradient(180deg,rgba(226,91,69,.08),rgba(246,241,231,.03))}.card--lang{grid-column:span 4}.card--back{grid-column:span 5}.card--db{grid-column:span 3}.card--front{grid-column:span 5}.card--mobile{grid-column:span 3}.card--arch{grid-column:span 4}.card--devops{grid-column:span 7}.card--tools{grid-column:span 5}.card--back,.card--devops{background:linear-gradient(180deg,rgba(246,241,231,.075),rgba(246,241,231,.02))}.card h3{font-family:var(--serif);font-size:clamp(28px,2.4vw,40px);font-weight:400;letter-spacing:-.03em;line-height:1.05}.card p{margin-top:8px;color:var(--muted);font-size:15px;max-width:36ch}.card ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin-top:auto}.card li{padding:7px 12px;border-radius:999px;border:1px solid var(--line);color:var(--accent-2);font-size:13px;line-height:1.3}.exploring{margin-top:36px;padding-top:28px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(220px,280px) 1fr;gap:28px;align-items:center}.exploring h3{font-family:var(--serif);font-size:28px;font-weight:400;letter-spacing:-.03em}.exploring p{margin-top:6px;color:var(--muted);font-size:14px;max-width:32ch}.exploring ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.exploring li{padding:6px 11px;border-radius:999px;border:1px solid var(--line);color:var(--muted);font-size:13px}@media (max-width: 900px){.bento{grid-template-columns:1fr 1fr}.card--lang,.card--back,.card--db,.card--front,.card--mobile,.card--arch,.card--devops,.card--tools{grid-column:auto}.card{min-height:0}.exploring{grid-template-columns:1fr;gap:16px}}@media (max-width: 640px){.bento{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.card{transition:none}.card:hover{transform:none}}
