.back-to-top[data-v-5344b5e7]{bottom:calc(30px + env(safe-area-inset-bottom,0px));right:max(30px, env(safe-area-inset-right,0px));background-color:var(--color-primary);width:50px;height:50px;color:var(--color-white);cursor:pointer;transition:background-color var(--transition-duration) ease, box-shadow var(--transition-duration) ease, transform var(--transition-duration) ease;z-index:1000;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:20px;font-weight:600;display:flex;position:fixed;box-shadow:0 4px 12px #5f294a26}@media (hover:hover) and (pointer:fine){.back-to-top[data-v-5344b5e7]:hover{background-color:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 6px 16px #5f294a33}}.back-to-top[data-v-5344b5e7]:focus-visible{outline:2px solid var(--color-primary-light);outline-offset:2px}.fade-enter-active[data-v-5344b5e7],.fade-leave-active[data-v-5344b5e7]{transition:opacity .4s,transform .4s}.fade-enter-from[data-v-5344b5e7],.fade-leave-to[data-v-5344b5e7]{opacity:0;transform:translateY(20px)scale(.8)}@media (max-width:768px){.back-to-top[data-v-5344b5e7]{bottom:calc(20px + env(safe-area-inset-bottom,0px));right:max(20px, env(safe-area-inset-right,0px));width:45px;height:45px;font-size:18px}}@media (max-width:568px){.back-to-top[data-v-5344b5e7]{bottom:calc(15px + env(safe-area-inset-bottom,0px));right:max(10px, env(safe-area-inset-right,0px));width:44px;height:44px;font-size:16px}}@media (prefers-reduced-motion:reduce){.back-to-top[data-v-5344b5e7]{transition:none}.fade-enter-active[data-v-5344b5e7],.fade-leave-active[data-v-5344b5e7]{transition:opacity .1s}.fade-enter-from[data-v-5344b5e7],.fade-leave-to[data-v-5344b5e7]{transform:none}}footer{width:100%;color:var(--color-text);text-align:center;background:linear-gradient(to right, transparent, var(--color-primary-light), transparent) top center / min(420px, 70%) 1px no-repeat;margin-top:max(24px,min(4vw,40px));padding:20px 15px 24px;font-size:.9rem}footer:before{content:"♡  " / "";color:var(--color-primary)}@media (max-width:568px){footer{padding:18px 5px 20px;font-size:.8rem}}.header-pic{background-image:url(/assets/profile/sakurabanner.webp);background-position:50%;background-size:cover;height:max(110px,min(16vw,170px));position:relative}.header-pic:before{content:"";background:linear-gradient(#fffafd66,#fffafd33 45%,#f1c7e873);position:absolute;top:0;bottom:0;left:0;right:0}.visually-hidden-focusable[data-v-9cbeafc6]{color:var(--color-primary);margin-left:max(10px, env(safe-area-inset-left,0px));border:none}.visually-hidden-focusable[data-v-9cbeafc6]:focus,.visually-hidden-focusable[data-v-9cbeafc6]:active{outline:2px solid var(--color-primary);clip:auto;white-space:normal;z-index:1050;background:var(--color-nav-bg);border-radius:4px;width:auto;height:auto;padding:5px 10px;position:absolute;overflow:visible}nav[data-v-9cbeafc6]{background:var(--color-nav-bg);box-shadow:var(--shadow-sm);margin-bottom:max(28px,min(4vw,44px));padding:6px 0}.nav-link[data-v-9cbeafc6]{color:var(--color-primary);transition:color var(--transition-fast) ease-in-out;position:relative}.nav-link[data-v-9cbeafc6]:after{content:"";border-radius:var(--radius-pill);background:linear-gradient(to right, transparent, var(--color-primary), transparent);width:min(100%,3.5em);height:2px;transition:transform var(--transition-fast) ease;position:absolute;bottom:.2em;left:50%;transform:translate(-50%)scaleX(0)}.nav-link[data-v-9cbeafc6]:hover:after,.nav-link.router-link-active[data-v-9cbeafc6]:after{transform:translate(-50%)scaleX(1)}.nav-link[data-v-9cbeafc6]:focus-visible:after{transform:translate(-50%)scaleX(1)}.nav-link[data-v-9cbeafc6]:hover{color:var(--color-primary-dark)}.nav-link.router-link-active[data-v-9cbeafc6]{color:var(--color-accent);font-weight:600}.nav-item[data-v-9cbeafc6]{padding:0 6px;font-size:1.3rem;font-weight:600}.navbar-light .navbar-toggler-icon[data-v-9cbeafc6]{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'><path stroke='rgb(178, 77, 137)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/></svg>")}.navbar-light .navbar-toggler[data-v-9cbeafc6]{border-color:#0000}.navbar-light .navbar-toggler[data-v-9cbeafc6]:hover,.navbar-light .navbar-toggler[data-v-9cbeafc6]:focus{box-shadow:none}.nav-link[data-v-9cbeafc6]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.navbar-toggler[data-v-9cbeafc6]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}@media (min-width:768px){.navbar-nav[data-v-9cbeafc6]{justify-content:center;width:100%}.nav-item[data-v-9cbeafc6]{margin:0 max(3px,min(1vw,7px));font-size:max(1rem,min(2vw,1.25rem))}}@media (max-width:767.98px){.navbar-light .navbar-toggler[data-v-9cbeafc6]{min-width:var(--tap-target-size);min-height:var(--tap-target-size);touch-action:manipulation;justify-content:center;align-items:center;display:inline-flex}.nav-link[data-v-9cbeafc6]{color:var(--color-primary-dark);min-height:var(--tap-target-size);justify-content:center;align-items:center;padding:.25rem 1rem;display:flex}.nav-link.router-link-active[data-v-9cbeafc6]{color:var(--color-primary-dark)}.navbar-collapse[data-v-9cbeafc6]{top:calc(100% + 12px);right:max(10px, env(safe-area-inset-right,0px));left:max(10px, env(safe-area-inset-left,0px));overscroll-behavior:contain;background-color:var(--color-nav-bg);border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);width:auto;max-width:none;max-height:calc(100vh - 160px);max-height:calc(100dvh - 160px);box-shadow:var(--shadow-lg);z-index:1000;padding:14px 22px;position:absolute;overflow-y:auto;transform:none}.navbar-collapse.show-animate[data-v-9cbeafc6]{animation:nav-menu-in-9cbeafc6 var(--transition-fast) ease;transform-origin:100% 0}.nav-item[data-v-9cbeafc6]{text-align:center;width:100%;padding:0;font-size:1rem}.navbar-nav[data-v-9cbeafc6]{flex-direction:column}nav[data-v-9cbeafc6]{position:relative}}@keyframes nav-menu-in-9cbeafc6{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}body{overflow-x:hidden}.app-shell{flex-direction:column;min-height:100vh;display:flex}@supports (height:100svh){.app-shell{min-height:100svh}}.custom-container{min-width:0;max-width:1400px;margin:0 auto;padding:0 max(10px,min(3vw,25px))}main{flex:1 0 auto;min-width:0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.text-highlight[data-v-a582b7a3]{color:var(--color-primary-dark);font-weight:600}.devicon-wrapper[data-v-a582b7a3]{background-color:var(--color-card-bg);border:1px solid var(--color-border-soft);border-radius:var(--radius-md);transition:transform var(--transition-fast) ease, box-shadow var(--transition-fast) ease;padding:8px;display:inline-block;position:relative}@media (hover:hover) and (pointer:fine){.devicon-wrapper[data-v-a582b7a3]:hover{box-shadow:var(--shadow-sm);transform:translateY(-3px)}}.devicon[data-v-a582b7a3]{border-radius:5px;width:48px;max-width:48px;display:block}.devicon-tooltip[data-v-a582b7a3]{visibility:hidden;opacity:0;background-color:var(--color-card-bg);color:var(--color-text);overflow-wrap:break-word;white-space:normal;pointer-events:none;width:max-content;max-width:min(220px,100vw - 32px);box-shadow:var(--shadow-md);border-radius:4px;margin-bottom:4px;padding:4px 8px;font-size:.75rem;transition:opacity .15s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.devicon-wrapper:hover .devicon-tooltip[data-v-a582b7a3]{visibility:visible;opacity:1}.contact-image[data-v-a582b7a3]{border-radius:var(--radius-md);width:320px;max-width:90%;height:auto;box-shadow:var(--shadow-sm)}.contact-buttons[data-v-a582b7a3]{flex-wrap:wrap;gap:12px;margin-bottom:25px;display:flex}.contact-button[data-v-a582b7a3]{min-width:150px;min-height:48px;color:var(--color-white);background-color:var(--color-button);border-radius:var(--radius-pill);touch-action:manipulation;transition:background-color var(--transition-fast) ease, box-shadow var(--transition-fast) ease;justify-content:center;align-items:center;gap:10px;padding:10px 24px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.contact-button[data-v-a582b7a3]:hover{background-color:var(--color-button-hover);box-shadow:var(--shadow-md)}.contact-button[data-v-a582b7a3]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;background-color:var(--color-button-hover)}.contact-button-icon[data-v-a582b7a3]{flex-shrink:0;width:20px;height:20px}.profile-col[data-v-a582b7a3]{align-self:center}.profilepic[data-v-a582b7a3]{border:2px solid var(--color-primary-light);border-radius:var(--radius-md);width:100%;max-width:300px;height:auto;box-shadow:var(--shadow-sm);margin:10px 0 20px 35px;display:block}@media (max-width:991px){.profilepic[data-v-a582b7a3]{max-width:260px;margin:15px auto 28px}}.heartlist ul[data-v-a582b7a3]{list-style:none}.heartlist ul li[data-v-a582b7a3]:before{content:"♡";color:var(--color-primary);margin-left:-1.1em;font-size:1.1rem;position:absolute}.heartlist li[data-v-a582b7a3]{padding:3px 0;font-size:max(.95rem,min(.9rem + .3vw,1.1rem));position:relative}.introduction-highlights-paragraph[data-v-a582b7a3]{margin-bottom:20px}.tech-category .introduction-highlights-paragraph[data-v-a582b7a3]{flex-wrap:wrap;align-items:center;gap:15px;display:flex}.tooltip-container[data-v-a582b7a3]{cursor:pointer;border-bottom:1px dashed var(--color-primary);padding-bottom:2px;display:inline-block;position:relative}.tooltip-text[data-v-a582b7a3]{visibility:hidden;opacity:0;width:auto;color:var(--color-primary);text-align:center;border-radius:var(--radius-sm);background-color:var(--color-background);box-shadow:var(--shadow-lg);overflow-wrap:break-word;z-index:1;white-space:normal;max-width:min(280px,100vw - 32px);padding:5px 10px;font-size:22px;transition:opacity .4s,visibility .4s;position:absolute;bottom:0;left:110%;transform:translateY(-50%)}.tooltip-text.visible[data-v-a582b7a3],.tooltip-container:hover .tooltip-text[data-v-a582b7a3]{visibility:visible;opacity:1}.styled-link[data-v-a582b7a3]{color:var(--color-primary);border-bottom:1px solid var(--color-primary);transition:color var(--transition-fast) ease, border-bottom-color var(--transition-fast) ease;text-decoration:none}.styled-link[data-v-a582b7a3]:hover{color:var(--color-primary-dark);border-bottom-color:#0000}@media (max-width:568px){.devicon[data-v-a582b7a3]{width:36px;max-width:36px}.devicon-wrapper[data-v-a582b7a3]{border-radius:var(--radius-sm);padding:6px}.tech-category .introduction-highlights-paragraph[data-v-a582b7a3]{gap:10px}.contact-image[data-v-a582b7a3]{max-width:85%}.contact-button[data-v-a582b7a3]{width:100%;max-width:320px}.heartlist ul li[data-v-a582b7a3]:before{font-size:.95rem}.profilepic[data-v-a582b7a3]{max-width:220px}.tooltip-text[data-v-a582b7a3]{visibility:hidden;opacity:0;font-size:16px;position:absolute;bottom:25px;left:auto;right:0;transform:translate(0)}.tooltip-container:hover .tooltip-text[data-v-a582b7a3]{visibility:visible;opacity:1}}.tooltip-container:focus-visible .tooltip-text[data-v-a582b7a3]{visibility:visible;opacity:1}:root{--color-white:#fff;--color-primary:#b24d89;--color-primary-light:#f1c7e8;--color-primary-dark:#5f294a;--color-background:#fffafd;--color-text:#212121;--color-heading:var(--color-primary);--color-accent:#a54f90;--color-nav-bg:var(--color-primary-light);--color-card-bg:#feeff9;--color-card-heading:#91346c;--color-button:#944b76;--color-button-hover:#823e64;--color-primary-soft:#f1c7e859;--color-border-soft:#f1c7e8a6;--color-surface-pink:#fdf4fb;--color-surface-lilac:#f7f0fc;--shadow-sm:0 1px 2px #5f294a14, 0 2px 8px #5f294a14;--shadow-md:0 2px 4px #5f294a1a, 0 6px 16px #5f294a1f;--shadow-lg:0 4px 8px #5f294a1a, 0 12px 28px #5f294a29;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-pill:999px;--tap-target-size:44px;--transition-duration:.6s;--transition-fast:.2s;--transition-medium:.35s}*,:before,:after{box-sizing:border-box;margin:0;font-family:Comfortaa,sans-serif;font-weight:400}@font-face{font-family:Comfortaa;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/comfortaa-latin-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Comfortaa;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/comfortaa-latin-ext-400.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Comfortaa;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/comfortaa-latin-600.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Comfortaa;font-style:normal;font-display:swap;font-weight:600;src:url(/fonts/comfortaa-latin-ext-600.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Comfortaa;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/comfortaa-latin-700.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Comfortaa;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/comfortaa-latin-ext-700.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}body{margin:0}h1,h2,h3,h4,h5,h6{margin-top:0;line-height:1.2}h1{font-size:max(1.7rem,min(1.25rem + 1.8vw,2.5rem))}h2{font-size:max(1.4rem,min(1.1rem + 1.2vw,2rem))}h3{font-size:max(1.2rem,min(1rem + .8vw,1.6rem))}h4{font-size:max(1.1rem,min(.95rem + .6vw,1.4rem))}h5{font-size:max(1rem,min(.9rem + .4vw,1.2rem))}h6{font-size:1rem}ol,ul{padding-left:1rem}ol,ul,dl{margin-top:0;margin-bottom:1rem}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button{text-transform:none}[role=button]{cursor:pointer}.container-fluid{--bs-gutter-x:1.5rem;--bs-gutter-y:0;width:100%;padding-right:max(calc(var(--bs-gutter-x) * .5), env(safe-area-inset-right,0px));padding-left:max(calc(var(--bs-gutter-x) * .5), env(safe-area-inset-left,0px));margin-left:auto;margin-right:auto}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-top:calc(-1 * var(--bs-gutter-y));margin-right:calc(-.5 * var(--bs-gutter-x));margin-left:calc(-.5 * var(--bs-gutter-x));flex-wrap:wrap;display:flex}.row>*{box-sizing:border-box;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y);flex-shrink:0}@media (min-width:768px){.col-md-auto{flex:none;width:auto}}@media (min-width:992px){.col-lg-7{flex:none;width:58.3333%}}.text-center{text-align:center}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important}.visually-hidden:not(caption),.visually-hidden-focusable:not(:focus):not(:focus-within):not(caption){position:absolute!important}.ms-auto{margin-left:auto!important}.me-auto{margin-right:auto!important}.navbar{flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex;position:relative}.navbar>.container-fluid{flex-wrap:inherit;justify-content:space-between;align-items:center;display:flex}.navbar-nav{flex-direction:column;margin-bottom:0;padding-left:0;list-style:none;display:flex}.nav-link{background:0 0;border:0;padding:.5rem 1rem;text-decoration:none;display:block}.navbar-nav .nav-link{padding-left:0;padding-right:0}.navbar-collapse{flex-grow:1;flex-basis:100%;align-items:center}.collapse:not(.show){display:none}.collapse.show{display:block}.navbar-toggler{color:var(--color-primary);background-color:#0000;border:1px solid #0000;border-radius:.375rem;padding:.25rem .75rem;font-size:1.25rem;line-height:1;transition:box-shadow .15s ease-in-out}.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{vertical-align:middle;background-position:50%;background-repeat:no-repeat;background-size:100%;width:1.5em;height:1.5em;display:inline-block}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .nav-link{padding-left:.5rem;padding-right:.5rem}.navbar-expand-md .navbar-collapse{flex-basis:auto;display:flex!important}.navbar-expand-md .navbar-toggler{display:none}}html{scroll-behavior:smooth}body{background-color:var(--color-background);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Comfortaa,sans-serif;font-size:1rem;font-weight:400;line-height:1.75}#app{max-width:100%;min-height:100vh;margin:0 auto}@supports (height:100svh){body,#app{min-height:100svh}}button,a[href]{touch-action:manipulation}h1,h2,h3,h4,h5{color:var(--color-heading);letter-spacing:.015em;margin-bottom:1.5rem;font-weight:700}label{font-weight:600}strong,b{font-weight:700}h1{text-align:center;padding:10px 0 25px}h2{text-align:left;padding:10px 0 15px}section{margin-top:max(1.75rem,min(4vw,2.75rem))}h3,h4,h5{padding:10px 0}img{border-radius:var(--radius-sm)}p{color:var(--color-text);margin-bottom:25px;font-size:max(.95rem,min(.9rem + .3vw,1.1rem))}a{color:var(--color-primary)}li{color:var(--color-text)}.heartbefore{margin-right:25px}.heartbefore:before{content:"♡";color:var(--color-primary)}.error-message{color:#c62828;border-radius:var(--radius-md);text-align:center;background-color:#ffebee;margin-bottom:20px;padding:15px}.section-divider{background:linear-gradient(to right, transparent, var(--color-primary-light), transparent);max-width:min(420px,70%);height:1px;margin:max(1.75rem,min(4vw,2.75rem)) auto;position:relative}.section-divider:before{content:"♡";background-color:var(--color-background);color:var(--color-primary);padding:0 14px;font-size:1.05rem;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.section-wash{background:linear-gradient(165deg, var(--color-primary-soft), #f1c7e81f 55%, transparent);border-radius:var(--radius-lg);padding:max(16px,min(3.5vw,32px))}
