@import url(https://fonts.googleapis.com/css2?family=Cantarell:ital,wght@0,400;0,700;1,400;1,700&family=Oxanium:wght@200..800&display=swap);:root{--bg:#fff;--fg:#222;--muted:#6b6b6b;--line:#111;--accent:#0b57d0}[data-theme="dark"]{--bg:#0f0f10;--fg:#e7e7e7;--muted:#9a9a9a;--line:#e7e7e7;--accent:#7aa2ff}*{box-sizing:border-box}html,body{height:100%}body,h1,h2,h3,p,ul{margin:0;padding:0}button,input{font:inherit}body{background:var(--bg);color:var(--fg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe\ UI,Roboto,Helvetica\ Neue,Arial,Noto\ Sans,"Apple Color Emoji","Segoe UI Emoji";line-height:1.45}.muted{color:var(--muted)}.wrap{max-width:1200px;margin:0 auto;padding:24px 16px}.wrap.timeline-page{max-width:100%}.btn{display:inline-block;padding:10px 16px;border:1px solid var(--line);background:transparent;color:var(--fg);text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.notice{border:1px solid var(--line);padding:8px 10px}.notice.error{color:#b00020;border-color:#b00020}.brand{font-weight:700;text-transform:uppercase;letter-spacing:.06em}.brand-lg{font-size:44px}.main{min-height:calc(100vh - 92px)}.header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--line)}.header__left{justify-self:start}.header__center{justify-self:center}.header__right{justify-self:end;display:flex;gap:16px;align-items:center}.nav a{padding:6px 8px;border-bottom:2px solid transparent}.nav a:hover{border-color:var(--accent)}.logout{border:1px solid var(--line);padding:6px 10px}.theme-toggle{border:1px solid var(--line);background:transparent;padding:6px 10px;cursor:pointer;color:var(--fg)}.footer{border-top:1px solid var(--line);padding:12px 16px;display:flex;justify-content:center}.login{display:grid;place-items:center;padding:48px 16px}.login__box{width:min(480px,92vw);border:1px solid var(--line);padding:24px}.login__head{text-align:center;margin-bottom:16px;border-bottom:1px solid var(--line);padding-bottom:16px}.form{display:grid;gap:12px}.form label{display:grid;gap:6px}.form input{border:1px solid var(--line);background:transparent;color:var(--fg);padding:10px 12px}.form input:focus{outline:none;border-color:var(--accent)}.pagehead{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:16px}.grid-folders{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.folder-card{border:1px solid var(--line);padding:16px;display:grid;gap:6px}.folder-card:hover{outline:2px solid var(--accent)}.folder-card__icon{font-size:24px}.folder-card__title{font-weight:600}.folder-card__meta{justify-self:end}.breadcrumb{display:flex;gap:8px;align-items:center}.breadcrumb a{border-bottom:2px solid transparent}.breadcrumb a:hover{border-color:var(--accent)}.filelist{border:1px solid var(--line)}.filelist .row{display:grid;grid-template-columns:32px 1fr 120px 100px 160px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line)}.filelist .row:last-child{border-bottom:0}.filelist .row:hover{background:#0000000a}[data-theme="dark"] .filelist .row:hover{background:#ffffff0d}.filelist .row.is-folder{background:transparent}.filelist .ico{text-align:center}.empty{border:1px solid var(--line);padding:24px;text-align:center}@media (max-width:760px){.filelist .row{grid-template-columns:28px 1fr 80px auto auto}.filelist .type,.filelist .size,.filelist .date{font-size:12px}}.timeline-page .pagehead{border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:10px}.tl-controls{display:grid;gap:12px;border:1px solid var(--line);padding:12px;margin-bottom:12px}.tl-group{display:grid;gap:6px}.tl-label{font-weight:600}.tl-buttons{display:flex;flex-wrap:wrap;gap:8px}.tl-buttons .btn{border:1px solid var(--line);padding:6px 10px;background:transparent;cursor:pointer;text-transform:uppercase;font-size:12px}.tl-buttons .btn.is-active{outline:2px solid var(--accent)}.tl-container{height:600px;border:1px solid var(--line)}.vis-item[data-tentative="true"]{outline:2px dashed var(--muted);outline-offset:-2px}.tl-details{position:fixed;top:0;left:0;background:#fff0;z-index:999;backdrop-filter:blur(5px);width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;display:none}.tl-details-inner{border:1px solid var(--line);padding:12px;margin-top:12px;background:var(--bg)}.tl-details__head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:8px}.tl-details__title{font-weight:700}.tl-details__body{display:grid;gap:6px}.tl-details .btn-close{border:1px solid var(--line);background:transparent;padding:6px 10px;cursor:pointer;color:var(--fg)}.legend{border:1px solid var(--line);padding:12px;margin-top:12px}.legend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.legend-section{display:grid;gap:6px}.legend-section h5{border-bottom:1px solid var(--line);padding-bottom:6px;margin:0}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px}.legend-swatch{width:14px;height:14px;border:1px solid var(--line);display:inline-block}.legend-milestone{width:14px;height:14px;display:inline-block;background:var(--c-milestone);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.info-panel{border:1px solid var(--line);padding:12px;margin-top:12px;color:var(--muted)}.vis-timeline{border:none!important}.vis-panel.vis-top{border-bottom:1px solid var(--line)!important}.vis-labelset .vis-label{background:transparent!important;border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)!important;color:var(--fg)!important;font-weight:600!important}.vis-item{border:0!important;font-size:12px!important;font-weight:500!important}.vis-item.vis-point{border-radius:0!important;background:var(--c-milestone)!important;width:10px!important;height:10px!important}:root{--c-social:#fff07a;--c-web:#a8e6cf;--c-marketing:#ffd93d;--c-content:#ff8b94;--c-ads:#c7a6ff;--c-analytics:#d3d3d3;--c-ferie:#f78c8e;--c-milestone:#1e40ff}[data-theme="dark"]{--c-social:#b6a900;--c-web:#6abf9f;--c-marketing:#caa400;--c-content:#e06770;--c-ads:#9e80ff;--c-analytics:#7a7a7a;--c-ferie:#d66a6c;--c-milestone:#7aa2ff}.container{width:min(940px,95vw);margin:16px auto;display:grid;gap:16px}.container h1{font-size:clamp(18px,1.8vw,24px);line-height:1.15;margin:0}.container>p{color:var(--muted);margin:0;font-size:13px}.section{border:1px solid var(--line);padding:12px;background:var(--bg)}.content{display:grid;gap:12px}.form-grid{display:grid;gap:10px;grid-template-columns:1fr}@media (min-width:860px){.form-grid{grid-template-columns:1fr 1fr}}.section h2{margin:0 0 8px;font-size:16px}.form-group{display:grid;gap:6px}.form-group label{font-weight:600;font-size:13px;display:flex;align-items:center;gap:6px}.form-group .required{color:var(--accent)}.form-group input[type="text"],.form-group input[type="url"],.form-group select{border:1px solid var(--line);background:transparent;color:var(--fg);padding:8px 10px;border-radius:8px;font-size:13px}.form-group input[type="text"]:focus,.form-group input[type="url"]:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 20%,transparent)}.form-group .help-text,.form-group .examples{font-size:11px;color:var(--muted)}.form-group .examples strong{color:var(--fg)}.preset-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px}.preset-select{max-width:260px}.result-section{display:grid;gap:10px}.result-section .utm-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;border:1px solid var(--line);padding:8px;border-radius:10px}@media (min-width:720px){.result-section .utm-preview{grid-template-columns:repeat(5,minmax(0,1fr))}}.result-section .utm-param{border:1px solid var(--line);border-radius:8px;padding:8px}.result-section .utm-param strong{font-size:11px;color:var(--muted);letter-spacing:.02em}.result-section .utm-param span{display:block;margin-top:2px;font-weight:600;word-break:break-all;font-size:12px}.result-section .result-url{border:1px solid var(--line);padding:8px 10px;border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation\ Mono,Courier\ New,monospace;font-size:13px;line-height:1.35;color:var(--fg);background:color-mix(in oklab,var(--fg) 5%,transparent);word-break:break-all}.button-group{display:flex;flex-wrap:wrap;gap:8px}.button-group .btn{border:1px solid var(--line);background:transparent;color:var(--fg);padding:8px 10px;border-radius:8px;font-size:13px;cursor:pointer;transition:background-color .2s ease , border-color .2s ease , opacity .2s ease}.button-group .btn:hover{border-color:var(--accent)}.button-group .btn:focus{outline:none;box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 20%,transparent)}.button-group .btn:disabled{opacity:.5;cursor:not-allowed}.button-group .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.button-group .btn-primary:hover{background:color-mix(in oklab,var(--accent) 88%,black 12%)}.button-group .btn-secondary{background:transparent}.success-message,#warningMessage{border:1px solid var(--line);padding:8px 10px;border-radius:8px;font-size:13px}.success-message{display:none;background:color-mix(in oklab,#16a34a 12%,transparent);border-color:color-mix(in oklab,#16a34a 50%,var(--line));color:color-mix(in oklab,#16a34a 90%,var(--fg))}#warningMessage{background:color-mix(in oklab,#f59e0b 12%,transparent);border-color:color-mix(in oklab,#f59e0b 50%,var(--line));color:color-mix(in oklab,#f59e0b 90%,var(--fg))}.tips{border:1px solid var(--line);padding:10px;border-radius:10px;background:var(--bg)}.tips h3{margin:0 0 6px;font-size:14px}.tips ul{margin:0;padding-left:16px;color:var(--muted);font-size:12px}.tips strong{color:var(--fg)}button,input,select{font-family:ui-sans-serif,system-ui,-apple-system,Segoe\ UI,Roboto,Helvetica\ Neue,Arial,Noto\ Sans,"Apple Color Emoji","Segoe UI Emoji"}.section-about{text-align:center;margin-bottom:48px;padding:32px 0}.section-about h1{margin-bottom:16px;color:var(--accent)}.section-about p{max-width:600px;margin:0 auto;font-size:18px}.section-portfolio{margin-bottom:48px}.section-portfolio .pagehead p{max-width:66.66%}.section-portfolio .pagehead h2{margin-bottom:10px}.section-contact .contact-info p{margin-bottom:8px}.section-contact .contact-info p a{color:var(--accent);text-decoration:none}.section-contact .contact-info p a:hover{text-decoration:underline}.portfolio-filters{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.portfolio-filters .filter-btn{font-size:14px;padding:8px 12px;transition:all .2s ease}.portfolio-filters .filter-btn:hover{background:var(--accent);color:var(--bg)}.portfolio-filters .filter-btn.active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.project-card{position:relative;transition:all .2s ease}.project-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.project-card .project-description{font-size:14px;line-height:1.4;margin-bottom:8px}.project-card .project-highlight{font-style:italic;font-size:13px;padding:6px 8px;background:rgba(var(--accent-rgb,11,87,208),.1);border-radius:4px;margin-bottom:8px;border-left:3px solid var(--accent)}.project-card .project-tech{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px;align-content:baseline}.project-card .project-tech .tech-tag{font-size:11px;padding:2px 6px;background:var(--muted);color:var(--bg);border-radius:3px;text-transform:uppercase;letter-spacing:.02em;font-weight:500}.project-card .project-status{position:absolute;top:8px;right:8px;font-size:12px;background:#ff9800;color:#fff;padding:2px 6px;border-radius:3px;font-weight:500}[data-theme="dark"] .project-highlight{background:#7aa2ff26}[data-theme="dark"] .project-card:hover{box-shadow:0 4px 12px #ffffff1a}[data-theme="dark"] .tech-tag{background:var(--muted);color:var(--bg)}@media (max-width:768px){.header{grid-template-columns:1fr;gap:8px;text-align:center}.header .header__left,.header .header__center,.header .header__right{justify-self:center}.portfolio-filters{justify-content:center}.section-about h1{font-size:32px}.section-about p{font-size:16px}.grid-folders{grid-template-columns:1fr;gap:16px}}html{scroll-behavior:smooth}.project-card{opacity:0;animation:fadeInUp .5s ease forwards}.project-card:nth-child(1){animation-delay:.1s}.project-card:nth-child(2){animation-delay:.2s}.project-card:nth-child(3){animation-delay:.3s}.project-card:nth-child(4){animation-delay:.4s}.project-card:nth-child(5){animation-delay:.5s}.project-card:nth-child(6){animation-delay:.6s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}*{font-family:Cantarell,sans-serif}