:root{--bg:#EFEEF7;--surface:#F7F9FB;--surface-2:#E5ECF2;--ink:#3B3B3B;--muted:#5E6B7D;--line:#C5CFDA;--pink:#E9CBD6;--blue:#C9DCED;--mint:#CFE4D8;--yellow:#EAD9A9;--lav:#DDD8EA;--peach:#EAD0BD;--accent:#E9CBD6;--radius:10px;--max:1320px;--shadow:14px 16px 28px rgba(66,86,108,0.14), -6px -6px 16px rgba(255,255,255,.55);--shadow-sm:5px 6px 14px rgba(66,86,108,.10), -4px -4px 10px rgba(255,255,255,.50)}body{font-family:yu gothic;font-size:15px;line-height:1.7}.dc-shell{width:min(calc(100% - 32px),var(--max))}h1{font-family:inherit;font-size:22px;font-weight:800;line-height:1.1}h2{font-family:inherit;font-size:20px;font-weight:750;line-height:1.25}h3{font-family:inherit;font-size:18px;font-weight:700;line-height:1.3}h4{font-family:inherit;font-size:16px;font-weight:700;line-height:1.35}h5{font-family:inherit;font-size:15px;font-weight:700;line-height:1.4}h6{font-family:inherit;font-size:14px;font-weight:700;line-height:1.45}.dc-article-head h1{font-family:inherit;font-size:26px;font-weight:700}.dc-grid{gap:20px}.dc-card{height:300px;border-radius:30px}.dc-card-cover{height:215px;flex-basis:215px}.dc-card h3{font-size:20px}.dc-card h3 a{-webkit-line-clamp:1}.dc-card p{font-size:15px;-webkit-line-clamp:2}.dc-article-layout{max-width:1280px;grid-template-columns:minmax(210px,236px)minmax(0,1fr)}.dc-prose{padding:48px;border-radius:32px}.dc-article-aside{min-width:236px}.dc-toc{top:104px;max-height:calc(78vh - 12px);width:100%}.dc-toc a{font-size:13px}.dc-toc a.is-active{color:#304052;background:#eadde5}.dc-about-portrait img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.dc-post-translate{margin-top:14px}@media(max-width:900px){.dc-article-aside{display:none}}.sooreer-timeline-section{margin-top:70px}.sooreer-timeline{position:relative;margin:24px 4px 0;padding:8px 0}.sooreer-timeline:before{content:"";position:absolute;left:128px;top:0;bottom:0;width:3px;border-radius:999px;background:var(--line)}.sooreer-timeline-item{display:grid;grid-template-columns:104px 24px minmax(0,1fr);column-gap:12px;align-items:start;position:relative;padding:0 0 26px}.sooreer-timeline-date{font-weight:900;color:var(--muted);text-align:right;padding-top:14px}.sooreer-timeline-dot{width:14px;height:14px;margin:15px 0 0 4px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb,var(--surface) 80%,transparent),var(--shadow-sm);z-index:1}.sooreer-timeline-card{padding:18px 20px;border-radius:22px;background:var(--surface);box-shadow:var(--shadow-sm)}.sooreer-timeline-company{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:900}.sooreer-timeline-card h3{margin:.3em 0 .25em}.sooreer-timeline-card p{margin:0;color:var(--muted)}.sooreer-resume{max-width:960px;margin:0 auto;padding:8px 0 20px}.sooreer-resume-head{display:flex;align-items:end;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:18px 0;margin-bottom:16px}.sooreer-resume-head h1{max-width:none;margin:.15em 0 0;font-size:clamp(2.2rem,5vw,4.2rem)}.sooreer-resume-note{padding:10px 14px;border-radius:14px;background:var(--surface-2);color:var(--muted);font-size:.83rem;margin-bottom:20px}.sooreer-resume-content{font-size:15px}.sooreer-resume-content>h1{display:none}.sooreer-resume-content h2{font-size:1.15rem;margin-top:1.5em;padding-bottom:5px;border-bottom:1px solid var(--line)}.sooreer-resume-content h3{font-size:1rem;margin-top:1.05em}.sooreer-resume-content p,.sooreer-resume-content li{font-size:.93rem}.sooreer-resume-content ul{margin:.4em 0 .7em;padding-left:1.15em}.sooreer-resume-content table{font-size:.88rem}.sooreer-resume-content blockquote{font-size:.9rem}@media(max-width:900px){.dc-nav-group{display:block}.dc-nav-dropdown{position:static;margin:6px 0 8px;box-shadow:none;border:1px solid var(--line)}.sooreer-timeline:before{left:96px}.sooreer-timeline-item{grid-template-columns:76px 24px minmax(0,1fr)}.sooreer-timeline-date{font-size:.8rem}}@media print{@page{size:A4;margin:10mm 11mm}html,body{background:#fff!important;color:#111!important}.dc-shell{width:100%!important;max-width:none!important}.dc-header-wrap,.dc-footer,.dc-progress,.dc-related,.dc-article-aside,.dc-reactions,.dc-comments,.sooreer-print-button,.sooreer-resume-note{display:none!important}.dc-main{padding:0!important}.sooreer-resume{max-width:none;margin:0;padding:0}.sooreer-resume-head{padding:0 0 5mm;margin-bottom:4mm;border-bottom:1px solid #aaa}.sooreer-resume-head h1{font-size:23pt!important}.sooreer-resume-content{font-size:9.2pt!important;line-height:1.3!important}.sooreer-resume-content h2{font-size:11pt!important;margin:3.5mm 0 1.2mm!important;padding-bottom:1mm}.sooreer-resume-content h3{font-size:9.8pt!important;margin:2mm 0 .7mm!important}.sooreer-resume-content p,.sooreer-resume-content li{font-size:8.9pt!important;margin:.9mm 0!important}.sooreer-resume-content ul{margin:0 0 1.2mm!important}.sooreer-resume-content table{font-size:8.4pt!important}.sooreer-resume-content a{color:#111!important;text-decoration:none!important}.sooreer-resume-content h2,.sooreer-resume-content h3{break-after:avoid}.sooreer-resume-content p,.sooreer-resume-content li{break-inside:avoid}}.dc-nav-group.dc-nav-category-hover{position:relative;display:flex;align-items:center}.dc-nav-category-hover .dc-nav-root{display:inline-flex;align-items:center;padding:8px 12px;border-radius:14px;color:var(--muted);font-weight:700}.dc-nav-category-hover:hover .dc-nav-root,.dc-nav-category-hover:focus-within .dc-nav-root{background:var(--surface-2);color:var(--ink)}.dc-nav-category-hover .dc-nav-dropdown{position:absolute;top:calc(100% + 6px);left:50%;right:auto;min-width:220px;padding:10px;border-radius:18px;background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--line);z-index:60;opacity:0;visibility:hidden;transform:translate(-50%,-5px);pointer-events:none;transition:opacity .16s ease,transform .16s ease,visibility .16s ease}.dc-nav-category-hover:hover .dc-nav-dropdown,.dc-nav-category-hover:focus-within .dc-nav-dropdown{opacity:1;visibility:visible;transform:translate(-50%,0);pointer-events:auto}.dc-nav-category-hover .dc-nav-dropdown:before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}.dc-nav-category-hover .dc-nav-dropdown-title{padding:7px 10px 9px;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:900}.dc-nav-category-hover .dc-nav-dropdown a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 10px;border-radius:12px;color:var(--ink);font-weight:800}.dc-nav-category-hover .dc-nav-dropdown a:hover,.dc-nav-category-hover .dc-nav-dropdown a:focus-visible{background:var(--surface-2);outline:none}.dc-nav-category-hover .dc-nav-dropdown b,.dc-mobile-category-items b{display:grid;place-items:center;min-width:26px;height:24px;padding:0 6px;border-radius:10px;background:var(--blue);font-size:.72rem}.dc-mobile-categories summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:14px;color:var(--muted);font-weight:800}.dc-mobile-categories summary::-webkit-details-marker{display:none}.dc-mobile-categories summary:after{content:"⌄";font-size:1rem;line-height:1;transition:transform .16s ease}.dc-mobile-categories[open] summary:after{transform:rotate(180deg)}.dc-mobile-categories[open] summary{background:var(--surface-2);color:var(--ink)}.dc-mobile-category-items{display:grid;gap:4px;padding:6px 0 10px 10px}.dc-mobile-category-items a{display:flex!important;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:12px}.dc-mobile-category-items a:hover,.dc-mobile-category-items a:focus-visible{background:var(--surface-2)}.sooreer-life-chart{margin:24px 4px 0;padding:18px 0 8px}.sooreer-life-axis-row{display:grid;grid-template-columns:minmax(110px,18%)minmax(0,1fr);margin-bottom:8px}.sooreer-life-axis-spacer{min-height:26px}.sooreer-life-axis{position:relative;height:34px;border-bottom:1px solid var(--line)}.sooreer-life-axis:before,.sooreer-life-axis:after{content:"";position:absolute;top:0;bottom:-2e3px;width:1px;background:var(--line);opacity:.5;pointer-events:none}.sooreer-life-axis:before{left:0}.sooreer-life-axis:after{right:0}.sooreer-life-axis-tick{position:absolute;top:2px;transform:translateX(-50%);font-size:.72rem;color:var(--muted);white-space:nowrap;font-weight:800}.sooreer-life-lane-row{display:grid;grid-template-columns:minmax(110px,18%)minmax(0,1fr);min-height:76px}.sooreer-life-lane-label{padding:16px 12px 16px 0;font-weight:900;color:var(--muted);text-align:right;white-space:nowrap}.sooreer-life-track{position:relative;margin:0 0 8px;border-bottom:1px solid var(--line);background:linear-gradient(to right,transparent 0,transparent calc(100% - 1px),var(--line) calc(100% - 1px),var(--line) 100%)}.sooreer-life-track:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to right,transparent 0,transparent calc(12.5% - .5px),rgba(120,120,120,6%) 12.5%,rgba(120,120,120,6%) calc(12.5% + .5px));pointer-events:none}.sooreer-life-bar{position:absolute;top:12px;min-width:28px;height:48px;padding:7px 10px;border-radius:15px;box-shadow:var(--shadow-sm);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:900;color:var(--ink);z-index:1}.sooreer-life-bar small{display:block;font-size:.68rem;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sooreer-life-bar[data-color=pink]{background:var(--pink)}.sooreer-life-bar[data-color=blue]{background:var(--blue)}.sooreer-life-bar[data-color=mint]{background:var(--mint)}.sooreer-life-bar[data-color=yellow]{background:var(--yellow)}.sooreer-life-bar[data-color=lav]{background:var(--lav)}.sooreer-life-bar[data-color=peach]{background:var(--peach)}.sooreer-life-bar[data-color=accent]{background:var(--accent)}.sooreer-life-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;color:var(--muted);font-size:.78rem}.sooreer-life-help{margin:8px 0 0;color:var(--muted);font-size:.82rem}@media(max-width:900px){.sooreer-life-axis-row,.sooreer-life-lane-row{grid-template-columns:86px minmax(0,1fr)}.sooreer-life-lane-label{font-size:.78rem;padding-right:8px}.sooreer-life-axis-tick{font-size:.65rem}.sooreer-life-bar{height:44px;top:10px;padding:6px 8px;border-radius:13px;font-size:.78rem}}@media(max-width:650px){.sooreer-life-axis-row,.sooreer-life-lane-row{grid-template-columns:72px minmax(0,1fr)}.sooreer-life-lane-row{min-height:66px}.sooreer-life-bar{min-width:22px;font-size:.7rem}.sooreer-life-bar small{display:none}}.sooreer-vertical-timeline{position:relative;margin:28px 4px 0;padding:4px 0}.sooreer-vertical-timeline:before{content:"";position:absolute;left:178px;top:0;bottom:0;width:2px;background:var(--line);pointer-events:none}.sooreer-vertical-timeline-item{position:relative;display:grid;grid-template-columns:150px 56px minmax(0,1fr);gap:0;min-height:122px}.sooreer-vertical-timeline-date{padding:18px 18px 28px 0;text-align:right;color:var(--muted);font-size:.78rem;font-weight:800;line-height:1.5}.sooreer-vertical-timeline-date strong{display:block;color:var(--ink);font-size:.86rem}.sooreer-vertical-timeline-date span{display:block;line-height:1;margin:3px 0;color:var(--muted)}.sooreer-vertical-timeline-marker{position:relative;z-index:1;display:flex;justify-content:center;padding-top:20px}.sooreer-vertical-timeline-marker span{display:block;width:16px;height:16px;border:4px solid var(--surface);border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--line),var(--shadow-sm)}.sooreer-vertical-timeline-card{margin:0 0 22px;padding:18px 20px;border-radius:20px;background:var(--surface);box-shadow:var(--shadow-sm);border:1px solid var(--line);position:relative}.sooreer-vertical-timeline-card:before{content:"";position:absolute;left:-8px;top:24px;width:14px;height:14px;background:var(--surface);border-left:1px solid var(--line);border-bottom:1px solid var(--line);transform:rotate(45deg)}.sooreer-vertical-timeline-lane{display:inline-flex;align-items:center;padding:5px 9px;border-radius:10px;background:var(--accent);font-size:.7rem;font-weight:900;margin-bottom:8px}.sooreer-vertical-timeline-card h3{margin:.15em 0 .35em}.sooreer-vertical-timeline-card p{margin:0;color:var(--muted)}.sooreer-vertical-timeline-item[data-color=pink]{--accent:var(--pink)}.sooreer-vertical-timeline-item[data-color=blue]{--accent:var(--blue)}.sooreer-vertical-timeline-item[data-color=mint]{--accent:var(--mint)}.sooreer-vertical-timeline-item[data-color=yellow]{--accent:var(--yellow)}.sooreer-vertical-timeline-item[data-color=lav]{--accent:var(--lav)}.sooreer-vertical-timeline-item[data-color=peach]{--accent:var(--peach)}.sooreer-vertical-timeline-item[data-color=accent]{--accent:var(--accent)}@media(max-width:900px){.sooreer-vertical-timeline:before{left:103px}.sooreer-vertical-timeline-item{grid-template-columns:78px 48px minmax(0,1fr)}.sooreer-vertical-timeline-date{padding-right:12px;font-size:.7rem}.sooreer-vertical-timeline-date strong{font-size:.76rem}.sooreer-vertical-timeline-card{padding:16px 17px}}@media(max-width:650px){.sooreer-vertical-timeline{margin-left:0}.sooreer-vertical-timeline:before{left:18px}.sooreer-vertical-timeline-item{grid-template-columns:38px minmax(0,1fr);min-height:0}.sooreer-vertical-timeline-date{grid-column:2;grid-row:1;padding:0 0 8px;text-align:left;display:flex;align-items:center;gap:6px;font-size:.72rem}.sooreer-vertical-timeline-date strong{display:inline;font-size:.76rem}.sooreer-vertical-timeline-date span{display:inline;margin:0}.sooreer-vertical-timeline-marker{grid-column:1;grid-row:1/span 2;padding-top:4px}.sooreer-vertical-timeline-card{grid-column:2;grid-row:2;margin-bottom:20px}.sooreer-vertical-timeline-card:before{left:-8px;top:8px}}.dc-about-profile-column{min-width:0;display:flex;flex-direction:column;align-items:center}.dc-about-socials{display:flex;align-items:center;justify-content:center;gap:10px;margin:18px auto 0}.dc-about-social{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);color:var(--ink);text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.dc-about-social svg{width:20px;height:20px;fill:currentColor}.dc-about-social img.dc-about-github-icon{width:20px;height:20px;display:block;object-fit:contain}.dc-about-social:hover,.dc-about-social:focus-visible{transform:translateY(-2px);background:var(--surface-2);box-shadow:var(--shadow);outline:none}.dc-about-social:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 45%,transparent),var(--shadow-sm)}.dc-about-page--sooreer{padding-bottom:12px!important;margin-bottom:0!important}.sooreer-timeline-section{margin-top:24px!important}.sooreer-vertical-timeline{margin-top:18px}@media(max-width:900px){.dc-about-socials{margin-top:14px}.dc-about-social{width:42px;height:42px}.dc-about-page--sooreer{padding-bottom:8px!important}.sooreer-timeline-section{margin-top:20px!important}}@media(max-width:650px){.dc-about-social{width:40px;height:40px;border-radius:13px}}