:root{color:#f0f0f0;background:#383838;font-family:Arial,Helvetica,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #383838;--panel: #343434;--panel-dark: #303030;--text: #f0f0f0;--muted: #d2d2d2;--line: #616161;--chip: #505050;--accent: #ff5949}*{box-sizing:border-box}html{background:var(--bg)}body{min-width:320px;margin:0;color:var(--text);background:var(--bg)}body.case-open{overflow:hidden}button,a{font:inherit}button{color:inherit}.portfolio{width:min(100% - 36px,760px);margin:0 auto;padding:76px 0 70px}.intro{display:grid;grid-template-columns:154px minmax(0,1fr);gap:28px;align-items:center}.portrait{display:grid;place-items:center;width:154px;aspect-ratio:1;overflow:hidden;border:2px solid #777;border-radius:50%;color:#fff;font-size:38px;font-weight:700;background:radial-gradient(circle at 62% 35%,#efc5b5 0 15%,transparent 16%),radial-gradient(circle at 58% 38%,#b78c7c 0 24%,transparent 25%),linear-gradient(145deg,#c7d7e2 0 48%,#dc4ea0 49% 100%);box-shadow:0 5px 14px #00000052}.portrait span{opacity:0}.role-badge,.resume-section summary{display:inline-flex;align-items:center;min-height:28px;padding:3px 13px;border:1px solid #b9b9b9;border-radius:999px;font-size:16px;line-height:1}h1,h2,h3,h4,p{margin-top:0}h1{margin:8px 0 12px;font-size:clamp(35px,5vw,48px);line-height:.98;letter-spacing:0}h2{margin-bottom:12px;font-size:25px;line-height:1.1}h3{margin-bottom:7px;font-size:18px}h4{margin-bottom:8px;font-size:14px}p,li{font-size:17px;line-height:1.24}.intro__lead{max-width:520px;margin-bottom:10px;color:var(--muted);font-size:19px}.intro__meta{margin-bottom:12px;color:var(--muted);font-size:17px}.contact-list{display:flex;flex-wrap:wrap;gap:8px}.contact-list button,.contact-list a{min-height:30px;padding:4px 13px;border:0;border-radius:999px;color:var(--text);cursor:pointer;text-decoration:none;background:var(--chip)}.contact-list button:hover,.contact-list a:hover,.project-tile:hover{background:#5e5e5e}.contact-list button:focus-visible,.contact-list a:focus-visible,.project-tile:focus-visible,.case-close:focus-visible,summary:focus-visible{outline:2px solid #fff;outline-offset:3px}.content-section{margin-top:112px}.content-section p{margin-bottom:0;color:var(--muted)}.resume-section{margin-top:44px}.resume-section summary{cursor:pointer;list-style:none}.resume-section summary::-webkit-details-marker{display:none}.resume-section summary:after{width:8px;height:8px;margin-left:10px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;content:"";transform:rotate(45deg) translateY(-2px)}.resume-section:not([open]) summary:after{transform:rotate(-45deg)}.experience-list{display:grid;gap:4px;margin-top:18px}.experience-card{display:grid;grid-template-columns:245px 1fr;gap:22px;padding:14px;border-radius:8px;background:var(--panel)}.experience-card__heading{display:flex;flex-direction:column;align-items:flex-start;color:var(--muted);font-size:16px}.experience-card__heading strong{margin-top:8px;color:var(--text);font-size:16px}.experience-card__heading small{color:var(--text);font-size:15px}.experience-card ul{margin:0;padding-left:21px;color:var(--muted)}.experience-card li+li{margin-top:4px}.skills-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:4px;margin-top:18px}.skill-panel{min-height:150px;padding:14px;border-radius:8px;background:var(--panel)}.tag-list{display:flex;flex-wrap:wrap;gap:6px}.tag-list span{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:7px;color:#ededed;font-size:14px;line-height:1.1;background:var(--chip)}.portfolio-section{margin-top:50px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.project-tile{overflow:hidden;padding:0;border:0;border-radius:9px;cursor:pointer;background:#474747}.project-tile__preview{position:relative;display:grid;place-items:center;height:184px;overflow:hidden;color:#222;background:#ddd}.project-tile__preview:before,.project-tile__preview:after{position:absolute;border-radius:6px;content:""}.project-tile__preview:before{width:45%;height:70%;background:#ffffffbf;transform:translate(-25%) rotate(-4deg)}.project-tile__preview:after{width:34%;height:58%;background:#ffffffe6;transform:translate(42%) rotate(5deg)}.project-tile__preview--red{background:#ddd1cf}.project-tile__preview--blue{background:#ced8de}.project-tile__preview--green{background:#d2ddd7}.project-tile__preview--violet{background:#d9d2de}.project-tile__preview>span{z-index:1;padding:5px 8px;border-radius:5px;font-size:14px;background:#ffffffe6}.project-tile__title{display:block;padding:10px 12px;color:var(--muted);font-size:16px;text-align:center}.copy-toast{position:fixed;right:24px;bottom:24px;z-index:100;padding:12px 16px;border:1px solid #696969;border-radius:8px;color:#222;font-weight:700;background:#f0f0f0;box-shadow:0 12px 40px #00000059}.toast-enter-active,.toast-leave-active{transition:opacity .16s ease,transform .16s ease}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(8px)}.case-page{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:28px;color:#f1f1f1;background:#0f0f0fd1}.case-modal{position:relative;width:min(100%,820px);max-height:calc(100vh - 56px);overflow-y:auto;border:1px solid #555;border-radius:8px;background:#383838;box-shadow:0 24px 90px #0000008f}.case-close{position:sticky;top:14px;z-index:3;display:grid;place-items:center;width:38px;height:38px;margin:14px 14px -52px auto;padding:0;border:1px solid #777;border-radius:50%;color:#fff;font-size:28px;line-height:1;cursor:pointer;background:#232323e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.case-study{width:min(100% - 48px,720px);margin:0 auto;padding:52px 0 76px}.figma-embed{display:block;width:100%;height:min(72vh,620px);min-height:420px;border:1px solid #555;border-radius:6px;background:#252525}.case-hero h2{max-width:520px;margin-bottom:10px;font-size:34px}.case-hero>p,.case-section>p{max-width:700px;margin-bottom:12px;color:var(--muted);font-size:15px}.case-hero h3{margin-top:7px}.case-section{margin-top:46px}.case-section--spaced{margin-top:62px}.tag-list--wide span{padding:6px 10px;background:#343434}.screen-board,.diagram-board{display:flex;gap:5px;width:100%;min-height:214px;overflow:hidden;padding:10px;background:#c9c9c9}.phone-mock{flex:1;min-width:0;padding:8px 5px;background:#f3f3f3}.phone-mock span{display:block;height:23px;margin-bottom:6px;border-radius:3px;background:#c5251f}.phone-mock span:nth-child(2){height:82px;background:#71231f}.phone-mock span:nth-child(3){height:36px;background:#e94b3f}.phone-mock span:nth-child(4){height:16px}.problem-list{display:grid;gap:4px}.problem-row{display:grid;grid-template-columns:190px 1fr;gap:16px;padding:10px;border-radius:7px;background:#343434}.problem-row strong,.problem-row p{margin:0;font-size:14px;line-height:1.2}.problem-row p{color:var(--muted)}.flow-board{align-items:flex-start;justify-content:space-around;min-height:202px;padding:24px 18px}.flow-column{display:flex;flex:1;flex-direction:column;align-items:center;gap:10px}.flow-column i,.flow-column span,.flow-column b{display:block;width:42px;height:18px;border:1px solid #777;background:#eee}.flow-column i{background:var(--accent)}.flow-column b{width:16px;height:16px;transform:rotate(45deg)}.wireframe-board,.final-board{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;min-height:360px;align-content:start}.wireframe-phone,.final-phone{min-height:150px;padding:6px;background:#f3f3f3}.wireframe-phone i,.wireframe-phone span,.final-phone i,.final-phone span,.final-phone b{display:block;height:12px;margin-bottom:6px;background:#bdbdbd}.wireframe-phone span:nth-child(3),.final-phone span:nth-child(3){height:55px}.wireframe-phone span:last-child,.final-phone b{background:var(--accent)}.kit-board{position:relative;display:grid;grid-template-columns:1fr 1fr 70px;gap:24px;min-height:310px;padding:32px}.kit-group{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;align-content:start}.kit-group i{height:30px;border:1px solid #999;border-radius:4px;background:#f2f2f2}.kit-group--accent i{border-color:#cc807a;background:#f5dbd8}.kit-sidebar{background:#303030}.final-phone i{height:50px;background:#d0b39b}.final-phone b{height:14px}@media(max-width:680px){.portfolio{width:min(100% - 28px,540px);padding-top:38px}.intro{grid-template-columns:92px minmax(0,1fr);gap:16px}.portrait{width:92px}h1{font-size:clamp(28px,9vw,39px)}.role-badge{min-height:24px;font-size:13px}.intro__lead,.intro__meta,p,li{font-size:15px}.content-section{margin-top:76px}.experience-card{grid-template-columns:1fr;gap:12px}.skills-grid,.project-grid{grid-template-columns:1fr}.skill-panel{min-height:0}.project-tile__preview{height:210px}.problem-row{grid-template-columns:1fr;gap:5px}.wireframe-board,.final-board{grid-template-columns:repeat(4,1fr)}.kit-board{grid-template-columns:1fr 1fr;padding:18px}.kit-sidebar{display:none}.copy-toast{right:14px;bottom:14px;left:14px;text-align:center}.case-page{padding:10px}.case-modal{max-height:calc(100vh - 20px)}.case-study{width:min(100% - 28px,720px);padding-top:58px}.figma-embed{height:70vh;min-height:360px}}@media(max-width:420px){.intro{grid-template-columns:1fr}.portrait{width:108px}.contact-list{gap:6px}.screen-board{overflow-x:auto}.phone-mock{flex:0 0 62px}}
