@font-face{font-family:"et-book";src:url("/fonts/et-book-roman-line-figures.eot");src:url("/fonts/et-book-roman-line-figures.eot?#iefix") format("embedded-opentype"),url("/fonts/et-book-roman-line-figures.woff") format("woff"),url("/fonts/et-book-roman-line-figures.ttf") format("truetype"),url("/fonts/et-book-roman-line-figures.svg#etbookromanosf") format("svg");font-weight:normal;font-style:normal;font-display:swap}@font-face{font-family:"et-book";src:url("/fonts/et-book-bold-line-figures.eot");src:url("/fonts/et-book-bold-line-figures.eot?#iefix") format("embedded-opentype"),url("/fonts/et-book-bold-line-figures.woff") format("woff"),url("/fonts/et-book-bold-line-figures.ttf") format("truetype"),url("/fonts/et-book-bold-line-figures.svg#etbookromanosf") format("svg");font-weight:600;font-style:normal;font-display:swap}:root{--hacker-font: "Roboto Mono", "Hack Nerd Font Mono", "JetBrainsMono Nerd Font Mono", "JetBrains Mono", "FiraCode Nerd Font", "CaskaydiaCove Nerd Font", "Noto Sans Mono CJK SC", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}*{text-rendering:optimizeLegibility;font-kerning:auto}*,*::before,*::after{box-sizing:border-box}html{font-family:var(--hacker-font);-webkit-text-size-adjust:100%;height:100%;background:transparent}#diffusion-bg{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;pointer-events:none;opacity:0.9}.gradient-word{color:#7b88c7}@supports (-webkit-background-clip: text) or (background-clip: text){.gradient-word{background:linear-gradient(90deg, #ffb3b3, #b3c7ff, #ffb3b3);background-size:300% 100%;background-position:0% 50%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradient-sweep 3.5s linear infinite}}@keyframes gradient-sweep{0%{background-position:0%   50%}100%{background-position:100% 50%}}body{-webkit-font-smoothing:antialiased;background:transparent;color:#111;counter-reset:sidenote-counter;font-family:var(--hacker-font);display:grid;grid-template-rows:minmax(0, 1fr) auto;height:100%;min-height:100vh;margin:0 auto;max-width:1440px;padding:5rem 6% 0;width:100%;position:relative;z-index:0;isolation:isolate}body::before{content:"";position:fixed;inset:0;background:radial-gradient(circle at 16% 18%, rgba(112,131,190,0.18) 0%, rgba(112,131,190,0) 34%),radial-gradient(circle at 78% 16%, rgba(187,133,82,0.16) 0%, rgba(187,133,82,0) 30%),radial-gradient(circle at 68% 76%, rgba(101,143,117,0.14) 0%, rgba(101,143,117,0) 28%),radial-gradient(circle at 24% 78%, rgba(174,118,132,0.12) 0%, rgba(174,118,132,0) 26%),#fffff8;z-index:-1;pointer-events:none}h1,h2,h3,h4,h5,h6{font-family:var(--hacker-font);font-style:normal;font-weight:bold;line-height:1.2;margin-top:1rem;margin-bottom:1rem}h1{font-size:2.25rem;margin-bottom:2rem}@media screen and (min-width: 48em){h1{font-size:2.75rem;margin-bottom:2.5rem}}h2{font-size:2rem;margin-top:1rem}h3{font-size:1.5rem;margin-top:1rem}p,table,blockquote,pre,img,hr,.mini-note,ul li,ol li{max-width:70%;line-height:1.6;font-size:12px}.MathJax_SVG_Display{max-width:55% !important}li ul li,li ol li{max-width:100%}p{position:relative}a,a:visited{color:#111;font-size:12px;transition:color 0.2s ease}a:hover,a:visited:hover{color:#dc2828}blockquote{font-style:italic;margin:0;padding:2rem 0 2rem 4rem}blockquote footer{font-style:normal;font-size:1.1rem;text-align:right}figure{align-items:flex-start;display:flex;margin:0;padding:0;position:relative}hr{background:#111;border:0;height:1px;margin:4rem 0;width:100%}pre{font-size:80%;margin:0;padding:1rem;overflow-x:auto}code{font-family:var(--hacker-font);font-size:80%}img{display:block;width:100%;max-width:100%;height:auto;margin:0}table th,table td{padding:0}table th:not(:first-child),table td:not(:first-child){text-align:right}table th{font-weight:bold}table td{font-weight:normal}table thead th{border-bottom:1px solid #111}.subtitle{font-size:1.8rem;font-style:italic}.sans{font-family:var(--hacker-font);letter-spacing:0.03em}.caps{font-variant:small-caps}.italics{font-style:italic}.mini-note{display:block;font-size:80%;font-style:italic}.visually-hidden{position:absolute !important;width:1px !important;height:1px !important;padding:0 !important;margin:-1px !important;overflow:hidden !important;clip:rect(0, 0, 0, 0) !important;white-space:nowrap !important;border:0 !important}.marginnote,.sidenote,figcaption{font-size:80%;left:calc(100% + 4rem);line-height:1.3rem;max-width:400px;padding-top:1rem;position:absolute;top:0;width:50%}.sidenote:before{content:counter(sidenote-counter) " ";font-family:var(--hacker-font);position:relative;top:-0.5rem;vertical-align:baseline}.sidenote-number{counter-increment:sidenote-counter}.sidenote-number:after{content:counter(sidenote-counter);font-family:var(--hacker-font);font-size:80%;left:0.1rem;position:relative;top:-0.5rem;vertical-align:baseline}figure .marginnote,figure .sidenote,figure figcaption{left:auto;position:relative}nav{margin-bottom:1rem;margin-top:1rem;display:flex;justify-content:flex-end;align-items:flex-start;width:100%}nav .menu-icon{cursor:pointer;display:none;text-decoration:underline}nav .menu-btn{display:none}nav .menu-btn:checked ~ .site-nav{display:block}nav ul.site-nav{list-style:none;margin:0;padding:0;display:inline-flex;justify-content:flex-end;align-items:center;gap:2rem;flex-wrap:wrap}nav ul.site-nav li{display:inline-flex;margin:0}nav ul.site-nav a,nav ul.site-nav a:visited{text-decoration:none;font-size:1.4rem;letter-spacing:0.06em}.home-stack{display:flex;flex-direction:column;gap:3rem;margin:0 auto 3rem;width:100%;max-width:1240px;padding:0 2.5rem;position:relative}.home-stack.edge-blur::before,.home-stack.edge-blur::after{content:"";position:fixed;left:0;right:0;pointer-events:none;z-index:40;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.home-stack.edge-blur::before{top:0;height:min(10vh, 84px);background:linear-gradient(to bottom, rgba(255,255,248,0.56) 0%, rgba(255,255,248,0.18) 44%, rgba(255,255,248,0) 100%);-webkit-mask-image:linear-gradient(to bottom, rgba(0,0,0,0.94) 0%, rgba(0,0,0,0.52) 38%, rgba(0,0,0,0.14) 70%, transparent 100%);mask-image:linear-gradient(to bottom, rgba(0,0,0,0.94) 0%, rgba(0,0,0,0.52) 38%, rgba(0,0,0,0.14) 70%, transparent 100%)}.home-stack.edge-blur::after{bottom:0;height:min(10vh, 84px);background:linear-gradient(to top, rgba(255,255,248,0.56) 0%, rgba(255,255,248,0.18) 44%, rgba(255,255,248,0) 100%);-webkit-mask-image:linear-gradient(to top, rgba(0,0,0,0.94) 0%, rgba(0,0,0,0.52) 38%, rgba(0,0,0,0.14) 70%, transparent 100%);mask-image:linear-gradient(to top, rgba(0,0,0,0.94) 0%, rgba(0,0,0,0.52) 38%, rgba(0,0,0,0.14) 70%, transparent 100%)}.home-stack.edge-blur .home-layer{--layer-text-overlay-opacity: 0;--layer-media-overlay-opacity: 0;opacity:1;transition:opacity 260ms cubic-bezier(0.22, 1, 0.36, 1);will-change:opacity}.home-stack.edge-blur .layer-text{position:relative;opacity:1;filter:none;-webkit-filter:none;transition:opacity 260ms cubic-bezier(0.22, 1, 0.36, 1),filter 260ms cubic-bezier(0.22, 1, 0.36, 1);will-change:opacity, filter}.home-stack.edge-blur .layer-text::after{content:"";position:absolute;inset:-0.35rem;background:rgba(255,255,248,0.2);opacity:var(--layer-text-overlay-opacity);pointer-events:none;transition:opacity 260ms cubic-bezier(0.22, 1, 0.36, 1)}.home-stack.edge-blur .layer-media,.home-stack.edge-blur .image-layer .image-block{position:relative;overflow:hidden}.home-stack.edge-blur .layer-media img,.home-stack.edge-blur .image-layer .image-block img{filter:none;-webkit-filter:none;transform:none;transition:filter 260ms cubic-bezier(0.22, 1, 0.36, 1),transform 260ms cubic-bezier(0.22, 1, 0.36, 1);will-change:filter, transform}.home-stack.edge-blur .layer-media::after,.home-stack.edge-blur .image-layer .image-block::after{content:"";position:absolute;inset:0;background:rgba(255,255,248,0.18);opacity:var(--layer-media-overlay-opacity);pointer-events:none;transition:opacity 260ms cubic-bezier(0.22, 1, 0.36, 1)}.home-layer{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:2.5rem;align-items:stretch;justify-items:stretch}@media (prefers-reduced-motion: reduce){.home-stack.edge-blur::before,.home-stack.edge-blur::after{display:none}.home-stack.edge-blur .home-layer{opacity:1;transition:none}.home-stack.edge-blur .layer-text,.home-stack.edge-blur .layer-media img,.home-stack.edge-blur .image-layer .image-block img{opacity:1;filter:none;-webkit-filter:none;transform:none;transition:none}.home-stack.edge-blur .layer-text::after,.home-stack.edge-blur .layer-media::after,.home-stack.edge-blur .image-layer .image-block::after{display:none}}.layer-text{grid-area:text}.layer-text{grid-area:text;width:100%;text-align:left}.layer-media{grid-area:media}.layer-media,.image-layer .image-block{width:100%;justify-self:stretch;display:block;height:auto;aspect-ratio:4 / 3;overflow:hidden}.home-layer.layer-left{grid-template-areas:"text media"}.home-layer.layer-right{grid-template-areas:"media text"}.layer-text h2{margin:0 0 0.75rem;font-size:2.2rem}.layer-text p{margin:0;font-size:20px;line-height:1.6;max-width:100%}.layer-text a,.layer-text a:visited{font-size:20px}.center-text{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:100%}.center-text p{max-width:100%}.layer-media img,.image-layer .image-block img{width:100%;height:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:0;box-shadow:0 20px 45px rgba(0,0,0,0.2);display:block}.layer-gallery{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px;width:100%;height:auto}.layer-gallery img{width:100%;height:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:0;box-shadow:0 14px 32px rgba(0,0,0,0.18)}.contact-layer{grid-template-columns:1fr;grid-template-areas:"text";justify-items:stretch}.contact-layer .layer-text{grid-area:text;justify-self:stretch;width:100%;max-width:none;grid-column:1 / -1}.spacer-layer{grid-template-columns:1fr;grid-template-areas:"spacer"}.spacer-layer .spacer-block{grid-area:spacer;height:clamp(3rem, 6vw, 7rem);width:100%}.image-layer{grid-template-columns:repeat(2, minmax(0, 1fr))}.image-layer .image-block{text-align:left}.home-layer.text-layer{grid-template-areas:"text-a text-b"}.text-layer .layer-text:first-child{grid-area:text-a}.text-layer .layer-text:last-child{grid-area:text-b}@media (max-width: 850px){.home-layer.text-layer{grid-template-areas:"text-a" "text-b"}}.home-layer.text-layer{align-items:start;column-gap:clamp(2rem, 4vw, 3.5rem)}.text-layer .note-label{color:#111;font-size:1.15rem;font-weight:600;letter-spacing:0.01em;margin:0 0 1rem}.text-layer .note-list{display:grid;gap:0.65rem;list-style:none;margin:0;padding:0}.text-layer .note-list li{max-width:none;color:#1d1d1d;font-size:1.02rem;line-height:1.6;margin:0;padding-left:1.15rem;position:relative}.text-layer .note-list li::before{background:rgba(17,17,17,0.45);border-radius:50%;content:"";height:5px;left:0.15rem;position:absolute;top:0.7em;width:5px}.text-layer .note-sublist{display:grid;gap:0.3rem;list-style:none;margin:0.4rem 0 0;padding:0}.text-layer .note-sublist li::before{background:transparent;border:1px solid rgba(17,17,17,0.45);height:4px;width:4px}.text-layer .note-role+.note-role{margin-top:1.75rem}.text-layer .note-role h4{font-size:1.05rem;font-weight:600;letter-spacing:0;margin:0 0 0.6rem}.text-layer .note-list+.note-label{margin-top:1.9rem}.text-layer .note-list a,.text-layer .note-list a:visited{font-size:inherit;text-decoration:underline;text-decoration-color:rgba(17,17,17,0.3);text-decoration-thickness:1px;text-underline-offset:3px}.text-layer .note-list a:hover{text-decoration-color:currentColor}.home-stack .intro-layer .layer-text{align-items:center;justify-self:center;text-align:center}.intro-copy:not(:has(p)){display:none}.intro-layer .layer-text{align-items:flex-start;align-self:center;display:flex;flex-direction:column;grid-column:1;justify-content:center;max-width:680px;text-align:left;width:100%}.intro-layer .layer-text h2{margin:0 0 0.45rem;font-family:var(--hacker-font);font-size:3rem;font-weight:600;letter-spacing:0;line-height:1.08}.intro-layer .hello-zh{margin:0;color:rgba(17,17,17,0.68);font-family:var(--hacker-font);font-size:2.0rem;letter-spacing:0;line-height:1.35;max-width:100%}.intro-copy{display:grid;gap:0.45rem;justify-items:start;margin-top:1.45rem;max-width:none;width:100%}.intro-copy p{color:#111;font-size:1.25rem;line-height:1.55;margin:0;max-width:100%}.intro-layer{align-items:center;gap:clamp(1.75rem, 4vw, 4.5rem);grid-template-areas:"text media";grid-template-columns:minmax(0, 0.95fr) minmax(360px, 1.05fr);padding-top:0.5rem}.intro-layer .intro-art{align-self:center;aspect-ratio:auto;display:flex;justify-content:center;justify-self:center;max-width:min(48vw, 540px);overflow:visible}.intro-layer .intro-art img{aspect-ratio:auto;box-shadow:none;filter:drop-shadow(0 22px 34px rgba(0,0,0,0.16));height:auto;object-fit:contain;transform:rotate(-4deg);transform-origin:center}.top-section{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));grid-template-rows:auto auto auto auto;grid-template-areas:"about photo" "build photo" "ascii photo" "contact contact";column-gap:3rem;row-gap:2.5rem;margin:0 auto 3rem;width:100%;max-width:1100px;padding:0 1.5rem}.grid-about{grid-area:about}.grid-hello{grid-area:hello;align-self:flex-start;display:none}.grid-contact{grid-area:contact}.grid-build{grid-area:build}.build-section{max-width:520px}.grid-photo{grid-area:photo;align-self:flex-start}.grid-ascii{grid-area:ascii;align-self:flex-start;width:100%;display:flex;justify-content:center;padding-top:0.5rem;overflow:hidden}.grid-ascii-image{width:min(100%, 560px);height:auto;border-radius:4px;box-shadow:0 15px 40px rgba(0,0,0,0.18)}.hello-card{width:min(100%, 480px);margin:0 auto;align-self:center;background:transparent;border:none;padding:0;box-shadow:none;text-transform:none;letter-spacing:normal;text-align:center;display:flex;flex-direction:column;align-items:center;gap:0.35rem}.hello-card p{max-width:100%;width:100%;margin:0}.hello-card .hello-en{font-size:2rem;margin:0 0 0.5rem 0}.hello-card .hello-zh{font-size:2rem;margin:0}.build-section h2{margin-top:0;font-size:2rem}.build-section p{margin:0 0 0.75rem;font-size:20px;line-height:1.6}.build-section a,.build-section a:visited{font-size:20px}.build-gallery{margin-top:1rem;display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:12px}.build-gallery img{width:100%;height:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:10px;box-shadow:0 16px 35px rgba(0,0,0,0.18)}.right-gallery{width:100%;max-width:100%;height:100%}.contact-section{margin-bottom:0;margin-top:2rem;flex:0 0 auto;text-align:left;width:auto;max-width:520px;margin-left:0;margin-right:0;align-self:stretch}.contact-section h2{font-size:2rem}.contact-section p{font-size:20px;max-width:100%;white-space:normal;margin:10px 0;text-align:left}.contact-section a{font-size:20px}.contact-links{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:0.35rem}.contact-icons{display:none}.at-icon{display:inline-block;padding:0 0.2rem;font-size:0.95em}.home-photo{width:100%;margin:0;text-align:center;display:flex;flex-direction:column;gap:1rem;align-items:center}.home-photo img{width:100%;max-width:480px;aspect-ratio:4 / 5;object-fit:cover;border-radius:12px;border:none;box-shadow:0 25px 55px rgba(0,0,0,0.2)}.gallery-top{display:grid;grid-template-columns:repeat(3, 1fr);gap:8px;width:100%}.gallery-top .gallery-item{aspect-ratio:3/4;background-size:cover;background-position:center center;background-repeat:no-repeat;border-radius:0;transition:transform 0.3s ease, box-shadow 0.3s ease;cursor:pointer;position:relative;overflow:hidden;min-height:180px}.gallery-top .gallery-item:hover{transform:scale(1.05);box-shadow:0 8px 25px rgba(0,0,0,0.15);z-index:10}.gallery-top .gallery-item video{width:100%;height:100%;object-fit:cover;object-position:center center;position:absolute;top:0;left:0}.gallery-fullwidth{display:grid;grid-template-columns:repeat(4, 1fr);gap:12px;margin:2rem auto;width:min(100%, 1240px);align-self:center;padding:0}.gallery-fullwidth .gallery-item{aspect-ratio:4/3;background-size:cover;background-position:center center;background-repeat:no-repeat;border-radius:0;transition:transform 0.3s ease, box-shadow 0.3s ease;cursor:pointer;position:relative;overflow:hidden;min-height:200px}.gallery-fullwidth .gallery-item:hover{transform:scale(1.05);box-shadow:0 8px 25px rgba(0,0,0,0.15);z-index:10}.gallery-fullwidth .gallery-item video{width:100%;height:100%;object-fit:cover;object-position:center center;position:absolute;top:0;left:0}.reads-shell{display:flex;flex-direction:column;gap:1.5rem;margin:2rem auto;width:min(100%, 1240px)}.reads-intro{max-width:min(100%, 760px);margin:0;font-size:20px;line-height:1.7}.thought-list{list-style:none;margin:0;padding:0;width:100%;border-top:1px solid rgba(17,17,17,0.12)}.thought-item{padding:1.1rem 0;border-bottom:1px solid rgba(17,17,17,0.12)}.thought-entry{display:flex;flex-direction:column;gap:0.35rem;max-width:min(100%, 860px)}.writing-shell .thought-entry{max-width:none;width:100%}.thought-link,.thought-link:visited{color:#111;display:inline-block;font-size:clamp(1.15rem, 1.8vw, 1.6rem);line-height:1.35;text-decoration:none;text-underline-offset:0.16em}.writing-shell .thought-link,.writing-shell .thought-link:visited{display:block;font-size:clamp(0.9rem, 1.25vw, 1.2rem);overflow:visible;white-space:nowrap;width:100%}.thought-link:hover,.thought-link:focus-visible{color:#111;text-decoration:underline}.thought-source{margin:0;color:rgba(17,17,17,0.62);font-size:0.98rem;line-height:1.5}.thought-note{margin:0.35rem 0 0;color:rgba(17,17,17,0.84);font-size:1rem;line-height:1.7}.thought-note-placeholder{color:rgba(17,17,17,0.46);font-style:italic}.intro{margin-bottom:1.5rem}.intro p{max-width:100%;line-height:1.7;font-size:20px;text-align:left}.ascii-art{font-family:var(--hacker-font);white-space:pre;line-height:1;background:transparent;border:none;margin:0;padding:0;width:100%;max-width:100%;font-size:clamp(8px, 1.15vw, 14px);overflow:hidden;display:inline-block;transform-origin:top left}.image-gallery{display:grid;grid-template-columns:repeat(3, 1fr);gap:15px;margin:20px 0;width:100%;justify-self:start}.image-gallery img,.image-gallery video{display:block;width:100%;max-width:none;aspect-ratio:16/9;object-fit:cover;object-position:center;border-radius:0px;transition:all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);cursor:pointer;box-shadow:0 4px 15px rgba(0,0,0,0.1);border:1px solid rgba(0,0,0,0.05);position:relative}.image-gallery video::after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center, transparent 60%, rgba(0,0,0,0.1) 100%);pointer-events:none;border-radius:4px}.image-gallery img:hover,.image-gallery video:hover{transform:scale(1.08) translateY(-2px);box-shadow:0 12px 35px rgba(0,0,0,0.25);z-index:10;border:1px solid rgba(255,255,255,0.1)}.origami-page{display:flex;flex-direction:column;align-items:center;gap:2rem;padding-bottom:5rem}.origami-header{margin-bottom:2rem}.origami-content{margin-bottom:3rem;width:100%;display:flex;justify-content:center}.origami-gallery{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;margin:20px auto;width:min(100%, 1100px);height:clamp(420px, 70vh, 760px);background:#f3efe6;padding:12px;border-radius:12px}.origami-gallery img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border-radius:0;margin:0;padding:0;border:none;transition:transform 0.3s ease, box-shadow 0.3s ease;cursor:pointer}.origami-gallery img:hover{transform:scale(1.02);box-shadow:0 8px 25px rgba(0,0,0,0.15);z-index:10}.origami-gallery img:nth-child(3){grid-column:2;grid-row:1 / 3}.modal{display:none !important;position:fixed !important;z-index:1000 !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;background-color:rgba(0,0,0,0.9) !important;animation:fadeIn 0.3s ease}.modal[style*="display: block"]{display:block !important}.modal-content{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);max-width:90vw;max-height:90vh;width:auto;height:auto;border-radius:0;box-shadow:0 20px 60px rgba(0,0,0,0.5);animation:scaleIn 0.3s ease}.modal-content img,.modal-content video{width:100%;height:auto;max-width:90vw;max-height:90vh;object-fit:contain;border-radius:0}.modal-close{position:absolute;top:20px;right:30px;color:white;font-size:40px;font-weight:bold;cursor:pointer;z-index:1001;transition:opacity 0.3s ease}.modal-close:hover{opacity:0.7}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes scaleIn{from{opacity:0;transform:translate(-50%, -50%) scale(0.8)}to{opacity:1;transform:translate(-50%, -50%) scale(1)}}main{text-align:left;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;flex:1 1 auto;max-width:none;margin:0 20px;padding:20px;width:100%;position:relative;z-index:1}.project{width:70%;text-align:left;margin-bottom:30px}.project ul{width:100%;padding-left:20px;margin:20px 0}.grid-container{display:grid;grid-template-columns:repeat(2, 1fr);gap:30px}.grid-item{padding:0}.bottom-footer{margin:2rem 0;width:100%}.epigraph{margin:4rem 0}.epigraph blockquote{font-style:italic;margin:2rem 0}.epigraph blockquote footer{font-style:normal}pre{background-color:#f5f5f5;color:#000000;padding:1em;overflow-x:auto;border-radius:4px;font-size:14px;line-height:1.5}.highlight{background-color:#fdf5e4;color:#000000;padding:1em;overflow-x:auto;border-radius:4px;width:100%}.highlight .c{color:#6a737d}.highlight .k{color:#d73a49}.highlight .n{color:#333333}.highlight .o{color:#005cc5}.highlight .p{color:#333333}.highlight .s{color:#22863a}.highlight .mi{color:#005cc5}.highlight .mf{color:#005cc5}.highlight .mh{color:#005cc5}.highlight .s2{color:#22863a}.highlight .se{color:#22863a}.highlight .si{color:#22863a}.highlight .err{color:#d73a49;background-color:#f8d7da}.highlight .gd{color:#d73a49}.highlight .ge{font-style:italic}.highlight .gr{color:#d73a49}.highlight .gh{color:#6a737d}.highlight .gi{color:#22863a}.highlight .go{color:#6a737d}.highlight .gp{color:#6a737d}.highlight .gs{font-weight:bold}.highlight .gu{color:#6a737d}.highlight .gt{color:#d73a49}.highlight .kc{color:#d73a49}.highlight .kd{color:#d73a49}.highlight .kn{color:#d73a49}.highlight .kp{color:#d73a49}.highlight .kr{color:#d73a49}.highlight .kt{color:#d73a49}.highlight .na{color:#6f42c1}.highlight .nb{color:#333333}.highlight .nc{color:#6f42c1}.highlight .no{color:#005cc5}.highlight .nd{color:#6f42c1}.highlight .ni{color:#333333}.highlight .ne{color:#6f42c1}.highlight .nf{color:#6f42c1}.highlight .nl{color:#333333}.highlight .nn{color:#333333}.highlight .nx{color:#6f42c1}.highlight .py{color:#333333}.highlight .nt{color:#d73a49}.highlight .nv{color:#333333}.highlight .ow{color:#d73a49}.highlight .w{color:#333333}.highlight .bp{color:#333333}.highlight .vc{color:#333333}.highlight .vg{color:#333333}.highlight .vi{color:#333333}.highlight .il{color:#005cc5}@media (max-width: 850px){html,body{overflow-x:hidden}body{padding:1rem 1rem 0;width:100%;box-sizing:border-box}h1.title{margin-top:2rem;font-size:2rem}p,table,blockquote,pre,img,hr,.mini-note,ul li,ol li{max-width:100%}.MathJax_SVG_Display{max-width:100% !important}.intro p{max-width:100%}.top-section{grid-template-columns:1fr;grid-template-areas:"about" "build" "photo" "ascii" "contact";column-gap:0;row-gap:2rem}main{margin:0;padding:0;width:100%;max-width:100%}article,.home-stack,.home-layer,.layer-text,.layer-media,.image-layer .image-block{width:100%;max-width:100%;min-width:0}.home-stack{gap:2rem;padding:0}.home-stack.edge-blur::before,.home-stack.edge-blur::after{display:none}.home-stack.edge-blur .home-layer,.home-stack.edge-blur .layer-text,.home-stack.edge-blur .layer-media img,.home-stack.edge-blur .image-layer .image-block img{opacity:1;filter:none;-webkit-filter:none;transform:none;transition:none}.home-stack.edge-blur .layer-text::after,.home-stack.edge-blur .layer-media::after,.home-stack.edge-blur .image-layer .image-block::after{display:none}.home-layer{grid-template-columns:1fr;gap:1.25rem}.home-layer.layer-left,.home-layer.layer-right{grid-template-areas:"text" "media"}.home-layer.image-layer{grid-template-areas:"media" "text"}.home-layer.contact-layer{grid-template-areas:"text"}.home-layer.spacer-layer{grid-template-areas:"spacer"}.home-layer.intro-layer{grid-template-areas:"text" "media"}.intro-layer .layer-text{grid-column:1;align-items:center;max-width:100%;text-align:center}.intro-layer .layer-text h2{font-size:2.65rem}.intro-layer .hello-zh{font-size:1.4rem}.intro-copy{justify-items:center;margin-top:1.25rem;max-width:100%}.intro-copy p{font-size:1.06rem}.intro-layer .intro-art{max-width:min(88vw, 480px)}.layer-gallery{grid-template-columns:1fr}.column-right,.home-photo{grid-column:1 / -1;padding-right:0;justify-self:stretch}.home-photo img{max-width:100%}.right-gallery{float:none;width:100%;margin:2rem 0}.gallery-top{grid-template-columns:1fr;grid-template-rows:none}.gallery-fullwidth{grid-template-columns:1fr}.contact-section{clear:both}nav{flex-direction:column;align-items:flex-end;gap:0.75rem}nav .menu-icon{display:inline-flex;align-items:center;justify-content:center;padding:0.45rem 0.95rem;border:1px solid rgba(17,17,17,0.14);border-radius:999px;background:rgba(255,255,248,0.92);box-shadow:0 8px 22px rgba(0,0,0,0.08);font-size:1rem;letter-spacing:0.04em;text-decoration:none}nav .menu-btn:checked ~ .site-nav{display:flex}nav ul.site-nav{display:none;width:min(100%, 12rem);flex-direction:column;align-items:stretch;gap:0.35rem;padding:0.4rem;background:rgba(255,255,248,0.96);border:1px solid rgba(17,17,17,0.12);border-radius:14px;box-shadow:0 14px 30px rgba(0,0,0,0.08)}nav ul.site-nav li{display:block;margin:0;width:100%}nav ul.site-nav li a,nav ul.site-nav li a:visited{display:block;width:100%;padding:0.7rem 0.85rem;border-radius:10px;font-size:1.05rem;letter-spacing:0.04em}nav ul.site-nav li a:hover,nav ul.site-nav li a:focus-visible{background:rgba(17,17,17,0.06);outline:none}figure{flex-direction:column}.marginnote,.sidenote,figcaption{display:block;left:auto;margin-top:1rem;position:relative;top:auto;width:100%}.contact-section p{white-space:normal}.ascii-art{font-size:12px;overflow:visible}.image-gallery{width:100%;grid-template-columns:1fr;gap:10px}.origami-gallery{grid-template-columns:1fr;grid-template-rows:auto auto auto;height:auto}.origami-gallery img:nth-child(3){grid-column:1;grid-row:3}.project{width:100%}.grid-container,.build-gallery{grid-template-columns:1fr}}@media (max-width: 480px){body{padding:0.75rem 0.75rem 0}h1{font-size:2.4rem;margin-top:1.5rem}h2{font-size:1.8rem;margin-top:2rem}.intro p{max-width:100%}.intro-layer .layer-text h2{font-size:2.3rem}.container{margin-top:20px;gap:15px}.ascii-art{font-size:10px;overflow:visible}.image-gallery{width:100%;grid-template-columns:1fr;gap:10px}nav ul.site-nav li{margin:0.5rem 0}.gallery-fullwidth{grid-template-columns:1fr}.reads-shell{margin-top:1.5rem}.thought-item{padding:0.95rem 0}.thought-link,.thought-link:visited{font-size:1.12rem}}@media (hover: hover) and (pointer: fine){.home-stack .layer-media:not(.intro-art),.home-stack .image-layer .image-block{transition:opacity 260ms cubic-bezier(0.22, 1, 0.36, 1),filter 260ms cubic-bezier(0.22, 1, 0.36, 1),transform 450ms cubic-bezier(0.22, 1, 0.36, 1),box-shadow 450ms cubic-bezier(0.22, 1, 0.36, 1)}.home-stack .layer-media:not(.intro-art) img,.home-stack .image-layer .image-block img{transition:filter 260ms cubic-bezier(0.22, 1, 0.36, 1),transform 260ms cubic-bezier(0.22, 1, 0.36, 1),scale 700ms cubic-bezier(0.22, 1, 0.36, 1)}.home-stack .layer-media:not(.intro-art):hover,.home-stack .image-layer .image-block:hover{transform:translateY(-4px);box-shadow:0 18px 36px rgba(0,0,0,0.14)}.home-stack .layer-media:not(.intro-art):hover img,.home-stack .image-layer .image-block:hover img{scale:1.035}.home-stack .intro-art img{transition:filter 260ms cubic-bezier(0.22, 1, 0.36, 1),transform 260ms cubic-bezier(0.22, 1, 0.36, 1),rotate 520ms cubic-bezier(0.34, 1.56, 0.64, 1),scale 520ms cubic-bezier(0.34, 1.56, 0.64, 1)}.home-stack .intro-art:hover img{rotate:3deg;scale:1.02}}@media (prefers-reduced-motion: reduce){.home-stack .layer-media:hover,.home-stack .image-layer .image-block:hover{transform:none}.home-stack .layer-media:hover img,.home-stack .image-layer .image-block:hover img{scale:none;rotate:none}}.home-stack .layer-text:not(.image-block),.home-stack .intro-art,.reads-shell,article>h1,ul.site-nav{--halo-out: 2.25rem;--halo-feather: 2.25rem;position:relative;isolation:isolate}.home-stack .intro-art{--halo-out: 0px;--halo-feather: 4rem}ul.site-nav{--halo-out: 1.25rem;--halo-feather: 1.25rem}article>h1{width:fit-content;max-width:100%}.home-stack .layer-text:not(.image-block)::before,.home-stack .intro-art::before,.reads-shell::before,article>h1::before,ul.site-nav::before{content:"";position:absolute;inset:calc(-1 * var(--halo-out));z-index:-1;pointer-events:none;background:rgba(255,255,248,0.45);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);-webkit-mask-image:linear-gradient(to right, transparent, #000 var(--halo-feather), #000 calc(100% - var(--halo-feather)), transparent),linear-gradient(to bottom, transparent, #000 var(--halo-feather), #000 calc(100% - var(--halo-feather)), transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right, transparent, #000 var(--halo-feather), #000 calc(100% - var(--halo-feather)), transparent),linear-gradient(to bottom, transparent, #000 var(--halo-feather), #000 calc(100% - var(--halo-feather)), transparent);mask-composite:intersect}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.home-stack .layer-text:not(.image-block)::before,.home-stack .intro-art::before,.reads-shell::before,article>h1::before,ul.site-nav::before{background:rgba(255,255,248,0.7)}}.home-layer.scroll-cue-layer{grid-template-columns:1fr;grid-template-areas:"cue";justify-items:center;padding:1.5rem 0 0.5rem}.scroll-cue{color:rgba(17,17,17,0.38);display:inline-flex;grid-area:cue;padding:0.75rem;text-decoration:none;transition:color 300ms ease}.scroll-cue:hover,.scroll-cue:focus-visible{color:rgba(17,17,17,0.75)}.scroll-cue-arrow{animation:cue-drift 2.6s ease-in-out infinite;display:block}@keyframes cue-drift{0%, 100%{transform:translateY(0);opacity:0.7}50%{transform:translateY(5px);opacity:1}}@media (prefers-reduced-motion: reduce){.scroll-cue-arrow{animation:none}}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}
