:root{--bg: #0f1115;--bg-elev: #151823;--text: #e6e9ef;--muted: #a9b1bd;--accent: #7c5cff;--accent-2: #00d4ff;--green: #00e38b;--card: #292a2d;--card-hover: #222941;--border: #2a3249;--border-dimmed: color-mix(in oklab, var(--border) 60%, transparent);--focus: #ffd166;--social-btn-bg: color-mix(in oklab, var(--card) 40%, transparent)}html{box-sizing:border-box;height:100%;background:var(--bg)}*,*:before,*:after{box-sizing:inherit}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Arial,sans-serif;color:var(--text);line-height:1.6;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:block;place-items:initial;min-height:100vh}body:before{content:"";position:fixed;inset:0;background:radial-gradient(1200px 600px at 10% 10%,#121625 0%,var(--bg) 60%);z-index:-1}body.flashcards-page{background:#0f1115}body.flashcards-page:before{display:none}.name-and-surname{font-weight:500;font-size:24px}#home-link{--home-light-x: 50%;--home-light-y: 50%;position:relative;display:inline-block;padding:8px 0;border-radius:8px;overflow:visible;cursor:pointer;isolation:isolate;transition:color .25s ease,text-shadow .25s ease,transform .25s ease;animation:homeLinkTextRest .25s ease forwards}#home-link:after{content:"";position:absolute;top:0;left:0;width:130px;height:130px;background:radial-gradient(circle,color-mix(in oklab,var(--accent-2) 36%,transparent) 0%,color-mix(in oklab,var(--accent) 24%,transparent) 36%,transparent 72%);filter:blur(16px);opacity:0;transform:translate3d(var(--home-light-x),var(--home-light-y),0) translate(-50%,-50%);pointer-events:none;z-index:-1;transition:transform .12s ease-out,opacity .22s ease}#home-link:hover:after,#home-link:focus-visible:after{opacity:1}#home-link:hover,#home-link:focus-visible{animation:homeLinkTextHover .28s ease forwards}@keyframes homeLinkTextHover{0%{text-shadow:0 0 0 rgba(0,212,255,0)}to{text-shadow:0 0 10px color-mix(in oklab,var(--accent-2) 34%,transparent)}}@keyframes homeLinkTextRest{0%{text-shadow:0 0 10px color-mix(in oklab,var(--accent-2) 34%,transparent)}to{text-shadow:0 0 0 rgba(0,212,255,0)}}#lights{position:fixed;inset:0;z-index:0;pointer-events:none}#lights canvas{width:100%;height:100%;display:block}header,main{position:relative;z-index:1}main{margin-top:24px;display:flex;gap:20px;flex-direction:column}.container{max-width:1080px;margin:0 auto;padding:24px}header{position:sticky;top:0;-webkit-backdrop-filter:saturate(1.2) blur(8px);backdrop-filter:saturate(1.2) blur(8px);background:color-mix(in oklab,var(--bg) 85%,transparent);border-bottom:1px solid var(--border);z-index:10}.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:.2px}.brand .logo{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 8px 24px color-mix(in oklab,var(--accent) 30%,black);color:#0e0f14;font-weight:700}nav{display:flex;gap:16px;align-items:center}nav a{color:var(--muted);text-decoration:none;padding:10px 12px;border-radius:8px}nav a:hover,nav a:focus-visible{color:var(--text);background:color-mix(in oklab,var(--bg-elev) 60%,transparent);outline:none}.language-switch{background:none;border:1px solid var(--border);color:var(--muted);padding:4px 12px!important;min-width:50px;border-radius:8px;cursor:pointer;font:inherit;transition:all .2s ease}.language-switch:hover,.language-switch:focus-visible{color:var(--text);background:color-mix(in oklab,var(--bg-elev) 60%,transparent);outline:none}.social{position:relative;display:flex;gap:12px;align-items:center}.social .social-btn{display:inline-flex;width:60px;height:60px;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--border);background:var(--social-btn-bg)}.social .social-btn:hover,.social .social-btn:focus-visible{background:var(--card-hover);outline:none}.social .social-btn{cursor:pointer;color:var(--text);font:inherit;padding:0}.social svg{width:28px;height:28px;filter:grayscale(100%) contrast(1.05) brightness(1.1);transition:filter .2s ease,transform .2s ease}.social .social-btn:hover svg,.social .social-btn:focus-visible svg{filter:none;transform:translateY(-1px)}.social .social-icon-at,.social .social-icon-cv{width:30px;height:30px}.social-bar{margin-top:16px}@media(max-width:720px){.social .social-icon-at{width:26px;height:26px}.social .social-icon-at-text{font-size:19px}.social .social-icon-cv{width:30px;height:30px}.social .social-icon-cv-text{font-size:20px}}.email-popover{position:absolute;left:0;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:color-mix(in oklab,var(--bg-elev) 92%,transparent);box-shadow:0 10px 24px #00000059;opacity:1;transform:translateY(0) scale(1);transform-origin:left top;transition:opacity .18s ease,transform .18s ease;will-change:transform,opacity;pointer-events:auto}.email-popover[hidden]{opacity:0;transform:translateY(-8px) scale(.96);visibility:hidden;pointer-events:none}.email-text{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:14px;color:var(--text)}.email-text{user-select:text;-webkit-user-select:text}.icon-btn{display:inline-flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--border);background:color-mix(in oklab,var(--bg-elev) 40%,transparent);color:var(--text);cursor:pointer;text-decoration:none}.icon-btn:hover,.icon-btn:focus-visible{background:var(--card-hover);outline:none}.icon-btn.copied{animation:fadeBack 2s ease forwards}@keyframes fadeBack{0%{background:#00e38bcc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-color:var(--green)}to{background:color-mix(in oklab,var(--bg-elev) 40%,transparent);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--border)}}.header-bar{display:flex;justify-content:space-between;align-items:center;padding:0 24px;height:60px}.language-switch{background:color-mix(in oklab,var(--bg-elev) 40%,transparent);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 12px;cursor:pointer}.language-switch:hover,.language-switch:focus-visible{background:var(--card-hover);outline:none}.hero{margin:0 0 24px}.hero h1{font-size:clamp(28px,5vw,48px);line-height:1.1;font-weight:400;background:linear-gradient(135deg,var(--text),color-mix(in oklab,var(--accent-2) 30%,var(--text)));-webkit-background-clip:text;background-clip:text;color:#ddd}.hero p{color:var(--muted);max-width:65ch;margin:0}.actions{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:10px;padding:5px 14px;border-radius:10px;text-decoration:none;color:var(--text);background:linear-gradient(180deg,color-mix(in oklab,var(--accent) 20%,var(--card)) 0%,var(--card) 100%);border:1px solid var(--border)}.btn:hover,.btn:focus-visible{background:var(--card-hover);outline:none}.section-title{margin:10px 0;font-size:18px;font-weight:500;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;align-items:start}#projekty .grid{display:block;column-count:2;column-gap:20px}#projekty .grid>*{display:inline-block;width:100%;margin:0 0 20px;break-inside:avoid;-webkit-column-break-inside:avoid}@media(max-width:900px){#projekty .grid{column-count:1}}.card{display:flex;flex-direction:column;gap:12px;position:relative;overflow:hidden;border-radius:16px;padding:18px;text-decoration:none;color:var(--text);background:linear-gradient(145deg,color-mix(in oklab,#ffffff 12%,transparent),color-mix(in oklab,var(--bg-elev) 48%,transparent) 38%,color-mix(in oklab,var(--card) 68%,transparent));-webkit-backdrop-filter:blur(24px) saturate(1.25);backdrop-filter:blur(24px) saturate(1.25);transition:transform .2s ease,background .2s ease,box-shadow .2s ease,border-color .2s ease}.showcaseable-project-card{box-shadow:inset 0 1px color-mix(in oklab,#ffffff 38%,transparent),0 10px 30px #00000054;border:1px solid color-mix(in oklab,#ffffff 22%,var(--border))}.showcaseable-project-card:hover,.showcaseable-project-card:focus-visible{background:linear-gradient(145deg,color-mix(in oklab,#ffffff 14%,transparent),color-mix(in oklab,var(--card-hover) 56%,transparent) 40%,color-mix(in oklab,var(--card-hover) 72%,transparent));border-color:color-mix(in oklab,#ffffff 32%,var(--border));box-shadow:inset 0 1px color-mix(in oklab,#ffffff 45%,transparent),0 14px 34px #0006;transform:translateY(-2px);outline:2px solid color-mix(in oklab,var(--accent) 40%,var(--focus))}.under-construction-card{border:2px dashed color-mix(in oklab,var(--border) 75%,var(--muted))}.under-construction-card:hover,.under-construction-card:focus-visible{transform:none;background:linear-gradient(145deg,color-mix(in oklab,#ffffff 12%,transparent),color-mix(in oklab,var(--bg-elev) 48%,transparent) 38%,color-mix(in oklab,var(--card) 68%,transparent));outline:none;border-color:color-mix(in oklab,var(--border) 75%,var(--muted))}.tag{font-size:12px;color:var(--muted);border:1px solid color-mix(in oklab,var(--accent) 15%,var(--border-dimmed));padding:2px 8px;border-radius:999px}.card-wip-badge{position:absolute;top:14px;right:14px;font-size:11px;font-weight:600;letter-spacing:.4px;padding:3px 10px;border-radius:999px;color:#b8860b;background:color-mix(in oklab,#f5c842 18%,transparent);border:1px solid color-mix(in oklab,#f5c842 55%,transparent);box-shadow:0 0 0 1px color-mix(in oklab,#f5c842 20%,transparent);pointer-events:none}.tag.wip{color:color-mix(in oklab,var(--accent) 35%,#ffffff);background:linear-gradient(135deg,color-mix(in oklab,var(--accent) 26%,transparent),color-mix(in oklab,var(--accent-2) 18%,transparent));border:1px solid color-mix(in oklab,var(--accent) 55%,var(--border));letter-spacing:.2px;box-shadow:0 0 0 1px color-mix(in oklab,var(--accent) 20%,transparent),0 6px 14px #00000040}.card-title{margin:0;font-size:20px;line-height:1.3;font-weight:600}.card-description{margin:0 0 10px;color:var(--muted);min-height:52px}.card-stack{display:flex;gap:8px;row-gap:10px;flex-wrap:wrap;margin:8px 0 10px}.card-image{width:100%;height:180px;object-fit:cover;border-radius:12px;border:1px solid var(--border);background:color-mix(in oklab,var(--bg-elev) 45%,transparent)}.card-actions{margin-top:auto;display:flex;gap:10px}.card-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-align:center;border-radius:10px;border:1px solid var(--border);background:color-mix(in oklab,var(--bg-elev) 55%,transparent);color:var(--text);text-decoration:none;padding:10px 12px;font-weight:500;transition:background .2s ease,transform .2s ease,border-color .2s ease}.card-btn:hover,.card-btn:focus-visible{background:var(--card-hover);border-color:color-mix(in oklab,var(--accent) 45%,var(--border));transform:translateY(-1px);outline:none}.card-btn-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.under-construction-card .card-image,.under-construction-card .card-actions{display:none}.tippy-box[data-theme~=custom]{background-color:var(--green);color:#0f1115;border-radius:6px;font-size:12px;font-weight:400;box-shadow:0 4px 12px #00000026}.tippy-box[data-theme~=custom] .tippy-arrow{color:var(--green)}.tippy-box[data-theme~=custom] .tippy-content{padding:6px 10px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.flashcards-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}.flashcards-header h1{margin:0}.flashcards-controls{display:flex;align-items:center;gap:12px;flex:1;min-width:0;flex-wrap:nowrap;justify-content:center}.flashcards-random{background:var(--accent);color:#fff;border:none;padding:10px 16px;border-radius:12px;cursor:pointer;font:inherit;white-space:nowrap}.flashcards-random:hover{background:var(--accent-2)}@media(max-width:720px){.flashcards-header{flex-direction:column;align-items:stretch}.flashcards-header h1{order:1}.flashcards-controls{order:2;max-width:none}.switch{order:3;align-self:flex-start}}.flashcards-search{flex:1;min-width:0;max-width:420px;display:flex;align-items:center;gap:8px;padding:0 12px;background:color-mix(in oklab,var(--bg-elev) 40%,transparent);border:1px solid var(--border);border-radius:14px}.flashcards-search input{width:100%;background:transparent;border:none;color:var(--text);padding:10px 0;font:inherit;outline:none}.flashcards-search input::placeholder{color:var(--muted)}.flashcards-search:focus-within{outline:2px solid var(--accent);outline-offset:2px}.search-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}.search-icon svg{width:18px;height:18px;fill:currentColor}.flashcards-empty{color:var(--muted);text-align:center;padding:16px 0}.flashcards-show-all{align-self:center;background:transparent;color:var(--muted);border:1px solid var(--border);padding:10px 16px;border-radius:12px;cursor:pointer}.flashcards-show-all:hover{color:var(--text);background:var(--card-hover)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;color:var(--muted);font-size:14px}.switch input{position:absolute;opacity:0;width:1px;height:1px}.switch-slider{width:46px;height:26px;background:color-mix(in oklab,var(--border) 80%,var(--bg));border-radius:999px;position:relative;transition:background .2s ease}.switch-slider:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;background:var(--text);top:4px;left:4px;transition:transform .2s ease}.switch input:checked+.switch-slider{background:color-mix(in oklab,var(--accent) 70%,var(--bg))}.switch input:checked+.switch-slider:after{transform:translate(20px)}.flashcards{display:flex;flex-direction:column;gap:20px;align-items:center}.flashcards-page .flashcards,.flashcards-page .flashcard,.flashcards-page .flashcard h3,.flashcards-page .flashcard p{user-select:text;-webkit-user-select:text}.flashcard{background:var(--card);padding:20px;border-radius:18px;border:1px solid var(--border);position:relative;width:min(100%,720px)}.flashcard h3{margin-top:0;font-size:20px;line-height:1.5;font-weight:500;color:var(--muted);padding-right:48px}.flashcard p{margin:12px 0 0;font-size:20px;line-height:1.5;color:var(--text)}.flashcard button{background:var(--accent);color:#fff;border:none;padding:10px 15px;border-radius:12px;cursor:pointer;margin-top:6px}.flashcard button:hover{background:var(--accent-2)}.flashcard-actions{position:absolute;top:12px;right:12px;display:flex;gap:8px}.google-btn,.chatgpt-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--border);background:transparent;box-shadow:none;text-decoration:none}.google-btn:hover,.google-btn:focus-visible,.chatgpt-btn:hover,.chatgpt-btn:focus-visible{background:color-mix(in oklab,var(--bg-elev) 45%,transparent);outline:none}.google-icon,.chatgpt-icon{width:20px;height:20px;fill:var(--muted)}.nav-link{color:var(--muted);text-decoration:none;padding:10px 12px;border-radius:8px}.nav-link:hover{color:var(--text);background:color-mix(in oklab,var(--bg-elev) 60%,transparent)}.cv-page{margin-top:32px}.cv-topbar{margin-bottom:20px}.cv-header h1{margin:0;font-weight:600}.cv-header p{margin-top:8px;color:var(--muted)}.cv-card h2{margin:0;font-weight:400;white-space:nowrap;word-break:keep-all}.cv-card{position:relative;overflow:hidden;border-radius:16px;padding:18px;border:1px solid color-mix(in oklab,#ffffff 22%,var(--border));background:color-mix(in oklab,var(--border-dimmed) 95%,transparent);transition:transform .4s ease,background .4s ease,box-shadow .4s ease,border-color .4s ease;display:flex;align-items:center;justify-content:space-between;gap:16px}.cv-card-content{min-width:0}.cv-card-content p{margin-top:6px}.cv-actions{margin-top:0;margin-left:auto;gap:10px;flex-wrap:nowrap;align-items:center}.cv-card-clickable{cursor:pointer}.cv-card-clickable:hover,.cv-card-clickable:focus-visible{background:linear-gradient(145deg,color-mix(in oklab,#ffffff 14%,transparent),color-mix(in oklab,var(--card-hover) 56%,transparent) 40%,color-mix(in oklab,var(--card-hover) 72%,transparent));border-color:color-mix(in oklab,#ffffff 32%,var(--border));box-shadow:inset 0 1px color-mix(in oklab,#ffffff 45%,transparent),0 14px 34px #0006;transform:translateY(-2px);outline:2px solid color-mix(in oklab,var(--accent) 40%,var(--focus))}.cv-open-btn,.cv-download-btn{margin-top:0;width:44px;height:44px}.cv-open-btn svg,.cv-download-btn svg{width:24px;height:24px}.cv-download-icon{font-size:24px;line-height:1;text-decoration:none}.site-footer{text-align:center;padding:24px;color:var(--muted);font-size:.8rem;border-top:1px solid var(--border-dimmed);margin-top:48px;-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);background:color-mix(in oklab,var(--bg) 60%,transparent);font-family:Consolas,Cascadia Code,Fira Code,monospace}.site-footer span[aria-label=love]{color:var(--accent)}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}
